40
自自自自自自自自 2.2 Zabbix 自自自自 自自自自 ~~

自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Embed Size (px)

DESCRIPTION

Zabbix_SIAの公式rpmとMySQL5.6によるZabbix-Serverのインストール手順です。

Citation preview

Page 1: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

自宅ラック勉強会 2.2夏の Zabbix 特別教室~構築編~

Page 2: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

2

CN:九龍真乙(くりゅうまおと) 所属:自宅ラック勉強会 Twitter @qryuu

2013/8/24

自己紹介

Page 3: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

システム要素

2013/8/243

• php  による実装WEB

• MySQL• PostgreSQL• Oracle  等

データベース• C 言語による実装Serv

er• Zabbix_agent• SNMP• IPMI など

Agent

各要素は IP ネットワーク的に接続されます。 このため各コンポーネントが異なるサーバにインストールされていてもかまいません。 同一のサーバ内にインストールすることももちろん可能です。

Page 4: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

監視通信

2013/8/244

Zabbix-server→Zabbix-Agentパッシブ監視: Server が Agent に対してポーリングを行うIP アドレス( DNS 名)の一致が必要

Zabbix-Agent→Zabbix-Serverアクティブ監視: Agent が Server に対してアイテムリストを要求し、リストに従って値を Agent が値を送信ホスト名の一致が必要 Zabbix-Server→SNMP-Agent

SNMP ポーリング: OID による値取得 SNMP-Agent→Zabbix-Server

SNMPTrap : SNMPTT の設定が必要 Zabbix-Server→IPMI-Agentセンサー名による値取得 ほかにも、ポート監視や web 監視、 Ping監視、 Agent レス監視が可能

Zabbix-

Server

Zabbix-

Server

Zabbix-AgentZabbix

-AgentSNMP-AgentSNMP-

AgentIPMI-Agent

Page 5: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

公式パッケージの内容解説については、パッケージ名および、展開内容に基づく筆者の推測です。Zabbix_SIA および Zabbix_Japan の公式見解ではありません。

2013/8/245

注意

Page 6: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

2013/8/246

Zabbix_SIA 公式パッケージRPM 内容zabbix ドキュメント&インストールディレクトリzabbix-agent zabbix-agent zabbix-get zabbix-getzabbix-java-gateway zabbix-java-gatewayzabbix-proxy zabbix-proxy 用ディレクトリzabbix-proxy-mysql MySQL 用 zabbix_proxyzabbix-proxy-pgsql PostgreSQL 用 zabbix-proxyzabbix-proxy-sqlite3 SQLite 用 zabbix-proxyzabbix-release yum install のためのリポジトリ RPMzabbix-sender zabbix-senderzabbix-server zabbix-server 用ディレクトリzabbix-server-mysql MySQL 用 zabbix-serverzabbix-server-pgsql PostgreSQL 用 zabbix-serverzabbix-web zabbix-web フロントエンドの本体zabbix-web-japanese フロントエンドのグラフ日本語対応用パッチzabbix-web-mysql フロントエンドの MySQL 接続用パッチzabbix-web-pgsql フロントエンドの PostgreSQL 接続用パッチ

Page 7: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

公式パッケージが用意されてるのは、システム構成で示した「 WEB 」「 Server 」「 Agent 」の部分です。 データベース部分は含まれていないので、 MySQL や

PostgreSQL,Sqlite は別途構築しておく必要があります。 構築したデータベースに対応するパッケージ選択しインストールしてください。 ※Zabbix は ORACLE DB にも対応していますが、対応パッケージは配布されていないため、データベースに Oracle を利用する場合はソースからコンパイルする必要があります。

2013/8/247

公式パッケージの範囲

Page 8: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix の公式パッケージは以下のプラットフォームに対応しています。 RHEL5.x-x86_64/RHEL6.x-x86_64 CentOS5.x-x86-64/CentOS6.x-x86_6x

Debian6/Debian7 Ubuntu10.04 LTS/Ubuntu12.04 LTS

2013/8/248

公式パッケージの対応 OS

Page 9: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

CentOS 6.4 x86_64 インストールタイプ: Basic Server 追加パッケージ: X Windows System, デスクトップ , 汎用デスクトップ tigervnc-server 構築済み SELinux=disabled ( 石川さんごめんなさい ) ディスク構成: sda (/)40GB+sdb(/data) 60GB FW 設定済み(詳細は login して確認) user:zabbix,pw:zabbix user:root,pw: jitakurack

2013/8/249

今回の勉強会環境

Page 10: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

1. Oracle 版 MySQL5.6 のインストール /Zabbix用DB の作成

2. yum による Zabbix の構築および、自己監視設定3. Windows 版 Zabbix-agent のインストールおよび監視設定

2013/8/2410

今回の作業予定

Page 11: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

1. http://dev.mysql.com/downloads/mysql/ を確認し、最新の rpm バージョンを確認します。

2. rpm パッケージをダウンロードします。

2013/8/2411

MySQL のインストール

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.13-1.el6.x86_64.rpm/from/http://cdn.mysql.com/ \http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.13-1.el6.x86_64.rpm/from/http://cdn.mysql.com/ \http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.13-1.el6.x86_64.rpm/from/http://cdn.mysql.com/ \http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.13-1.el6.x86_64.rpm/from/http://cdn.mysql.com/ \http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.13-1.el6.x86_64.rpm/from/http://cdn.mysql.com/

Page 12: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

始めに shared 以外のパッケージをインストールします。(依存関係のため) 次に shared パッケージをインストールします。 MySQL5.6 では my.cnf のパスが変わりました。

/etc 配下ではなく /usr 配下です古い my.cnf を削除(リネーム)します。

2013/8/2412

MySQL のインストールyum install MySQL-{client,devel,server,shared-compat}-5.6.13-1.el6.x86_64.rpm

yum install MySQL-shared-5.6.13-1.el6.x86_64.rpm

mv /etc/my.cnf /etc/my.cnf.old

Page 13: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

my.cnf を編集します。(画面の都合で 2 枠に分けて記載しています。)

2013/8/2413

MySQL の簡易チューニングvi /usr/my.cnf

[mysqld]user=mysql

datadir=/datasocket=/var/lib/mysql/mysql.sockcharacter-set-server=utf8

[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

[mysql]default-character-set=utf8

### Tuning Settinginnodb_file_per_table =1innodb_autoextend_increment = 1innodb_file_format=Barracudainnodb_buffer_pool_size = 2Ginnodb_thread_concurrency = 20innodb_flush_log_at_trx_commit=2innodb_log_buffer_size=32Minnodb_log_file_size = 256Minnodb_support_xa = 0innodb_checksums = 0innodb_doublewrite = 0

Page 14: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

MySQL のディレクトリを変更して起動します。 MySQL の root ユーザのパスワードを変更します。 MySQL のセキュアインストールを実行します。

2013/8/2414

MySQL の初期設定mysql_install_db --datadir=/data --user=mysqlservice mysql start

mysqladmin -u root password 'jitakurack'

mysql_secure_installationEnter current password for root (enter for none):jitakurackChange the root password? [Y/n] n #root パスワードを変更するかRemove anonymous users? [Y/n]Y # 匿名ユーザを削除するかDisallow root login remotely? [Y/n] Y # リモート root ログインを許可するかRemove test database and access to it? [Y/n] Y #test DB を削除するかReload privilege tables now? [Y/n] Y # 権限テーブルをリロードするか

Page 15: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix のリポジトリを登録します。

公式手順が見たい方は Zabbix_SIA のドキュメントを参照してください。 https://

www.zabbix.com/documentation/2.0/manual/installation/install_from_packages

2013/8/2415

Zabbix リポジトリの登録rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm

Page 16: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

server,agent,frontend をインストールします。

このとき、依存関係にある php やOpenIPMI 、 fping 、 net-snmp 、 unixODBC等 も同時にインストールされます。

※将来的には SNMPTT もパッケージに含まれる可能性がありますが、現時点では含まれていません。SNMPTrap 監視のためには別途インストールする必要があります。

SNMPTT については 2 日目で扱います。 2013/8/2416

Zabbix インストールyum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-web-japanese zabbix-java-gateway zabbix-sender zabbix-get

Page 17: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

MySQLへのログイン

Zabbix DB の作成、権限設定

スキーマファイルの流し込み

2013/8/2417

Zabbix_DB の作成mysql -uroot -pEnter password:jitakurack

mysql> create database zabbix character set utf8;mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';mysql> FLUSH PRIVILEGES;mysql> exit

cd /usr/share/doc/zabbix-server-mysql-2.0.7/create/ # バージョンによりパスは違いますcat schema.sql |mysql -uzabbix zabbix -pEnter password:zabbix

cat images.sql |mysql -uzabbix zabbix -pcat data.sql |mysql -uzabbix zabbix -p

Page 18: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

肥大化しやすい、ヒストリテーブルとイベントテーブルを圧縮しておきます。

2013/8/2418

Zabbix_DB の圧縮設定mysql> ALTER TABLE history ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;mysql> ALTER TABLE history_log ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;mysql> ALTER TABLE history_str ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;mysql> ALTER TABLE history_text ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;mysql> ALTER TABLE history_uint ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;mysql> ALTER TABLE events ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;

mysql> SHOW TABLE STATUS LIKE 'history' \G

Page 19: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

変更ポイント、解説ポイントを抜粋しています。

2013/8/2419

Zabbix_Server の初期設定vi /etc/zabbix/zabbix_server.confLogFileSize=20 # 初期値の1MB では小さすぎるので増やします。DBHost=localhost #DB のアドレス、今回は変更しませんDBName=zabbix #DB 名、今回は変更しませんDBUser=zabbix #DB ユーザ、今回は変更しませんDBPassword=zabbix #DB パスワードを入力します。StartPollers=10 # エージェント監視や SNMP 監視を行うプロセス数StartIPMIPollers=5 #IPMI 監視を行うプロセス数StartPollersUnreachable=3 # 取得不可アイテムの再確認を受け持つプロセス数StartTrappers=5 #受信型アイテムを取り扱うプロセス数StartPingers=5 #Ping を行うプロセス数StartDiscoverers=5 # ディスカバリーを行うプロセス数StartHTTPPollers=3 #WEB 監視を行うプロセス数SNMPTrapperFile=/var/log/snmptt/snmptt.log #SNMPTT のログファイルパスStartSNMPTrapper=1 #SNMPTT のログ確認を行うプロセス数SenderFrequency=30 # アクションの実行判定を行う周期(秒)# StartDBSyncers=4 #DBへの書き込みを行うプロセス数Timeout=5 #poller系プロセスのタイムアウト(秒)

Page 20: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

2013/8/2420

Zabbix_Agent の初期設定vi /etc/zabbix/zabbix_agentd.confLogFileSize=5 # 初期値の 0MB では log が出力されません。#SourceIP= #マルチ IP 構成の場合、応答時の IPを指定できます。EnableRemoteCommands=1 #Zabbix サーバからのコマンド実行を許可します。

system.run アイテムやリモートコマンドに必要です。LogRemoteCommands=1 # 実行したリモートコマンドを agentd.log に記録します。Server=127.0.0.1 # パッシブ型監視を許可するサーバ IP を指定します。

[,]区切りでマルチサーバからの監視を許可できます。# ListenIP=0.0.0.0 # 特定の IP アで Listen したい場合に設定します。設定しない場合、ホストが持つ全 IP で Listen します。ServerActive=127.0.0.1 # アクティブ型監視でアイテムリストを取得に行く サーバ IP を指定します。

[,]区切りで複数のサーバを指定出来ます。#Hostname=Zabbix server #Agent のホスト名、

WEB で指定したホスト名と一致する必要がある。

Page 21: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

変更ポイント、解説ポイントを抜粋しています。(続き)

2013/8/2421

Zabbix_Agent の初期設定HostnameItem=system.hostname #Agent のホスト名を OS のホストネームから 自動的に設定する 

Hostname か HostnameItem いずれかを設定する 必要がある。RefreshActiveChecks=60 # アクティブ型監視のアイテムリスト更新周期(秒)# BufferSend=5 # データの保持秒数# BufferSize=100 # データの保持個数# MaxLinesPerSecond=100 #1秒あたりの最大送信 log 行数(アイテム設定で上書きされます。 )# AllowRoot=0 #1 にした場合 root ユーザ権限で動作します。

0 の場合は zabbix ユーザ権限で動作します。Timeout=5 #agent でのコマンドタイムアウト実際の動作は server側タイムアウトにも影響されますUnsafeUserParameters=1 #0 の場合、ユーザパラメータやリモートコマンドで 以下の文字を使うことができません。

\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

Page 22: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

自動起動設定

サービス起動

2013/8/2422

サービス起動chkconfig zabbix-server onchkconfig zabbix-agent onchkconfig httpd on

service zabbix-server startservice zabbix-agent startservice httpd start

Page 23: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

ブラウザで zabbix-web パッケージをインストールしたサーバにアクセスします。 http://<ip アドレス >/zabbix

2013/8/2423

Zabbix_WEB の初期設定

Page 24: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の初期設定

2013/8/2424

初期セットアップ画面が表示されます。 [Next] をクリックします。

Page 25: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の動作環境確認

2013/8/2425

Zabbix-web の動作環境がチェックされます。[Fail] となっている項目があれば、パッケージの追加や php.ini の編集を行い、 httpd の再起動を行い、 [Retry] をクリックします。

右の図では PHP time zone が設定されていないというエラーが表示されています。

Page 26: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

PHP time zone を設定します。 不足していた PHP time zone の設定を行います。 php.ini を編集した場合、 httpd を再起動します。

2013/8/2426

Zabbix_WEB の初期設定vi /etc/php.ini

date.timezone = Asia/Tokyo

service httpd restart

Page 27: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の動作環境確認

2013/8/2427

問題が無くなると、 [Retry]ボタンが消え、[OK] と表示されます。

[Next>>] をクリックします。

Page 28: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の DB 接続

2013/8/2428

DBへの接続設定を行います。 表示される Database type はインストールしたパッケージにより異なります。 今回は zabbix-web-mysql をインストールしているので

MySQL が選択されます。 接続情報を入力します。 接続情報を入力したら [Test

connection] をクリックし接続テストをします。 [OK] と表示されれば、

[Next>>] がクリックできるようになります。

Page 29: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の Zabbix-Server 接続

2013/8/2429

Zabbix-serverへの接続情報を入力します。 Host:Zabbix-server の

IP アドレスまたはFQDN

Port:Zabbix-server のListen ポート

Name:Zabbix-WEB に表示する識別名(任意) 入力したら [Next>>]をクリックします。

Page 30: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の設定確認

2013/8/2430

これまでの設定情報が表示されます。 修正する場合は

[<<Previous] 問題ない場合は

[Ntxt>>] をクリックします。

Page 31: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbix_WEB の設定書込

2013/8/2431

設定内容が /etc/zabbix/web/zabbix.conf.php に記録されます。

権限不足などにより書込めなかった場合は、設定ファイルのダウンロード画面になります。この場合設定ファイルを指定されたディレクトリに配置することで設定を完了する事も可能です。 [Finish] をクリックします。

Page 32: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

Zabbixへのログイン

2013/8/2432

Zabbix-WEB の初期設定が完了するとログイン画面が表示されます。 以下の初期ユーザでログインします。 Username:admin Password:zabbix

Page 33: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

表示の日本語化

2013/8/2433

言語設定は、ユーザアカウント毎に変更する事ができます。 画面右上の [profile] をクリックし、

[Language] でjapanese を選択すれば、日本語表示になります。

Page 34: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

設定項目の関連

一度、自分で登録して関連を覚えることをおすすめします2013/8/2434

Zabbix 監視設定の基本のキホスト

• 対象機器の名前• 接続情報• インベントリ情報

アイテム• 収集データ

トリガー• 閾値• 条件判定

アクション• 通知• コマンド実行

Page 35: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

ホスト設定:ホスト

2013/8/2435

ホスト設定:監視対象機器を登録します ホスト名:ホストを識別するキーになります。 Agent の設定と一致している必要があります。( Zabbix-

Agent を使わない監視対象では一意であればかまいません) 表示名:画面上で表示させる名称 グループ:グループ毎にアクセス権を制御します。管理に合わせて随時設定します。 インターフェイス:エージェント、

SNMP 、 JMX,IPMI毎にインターフェイスを登録できます。 [ 追加 ]を押すことで複数のインターフェイスを登録することもできます。

Page 36: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

ホスト設定:テンプレート

2013/8/2436

テンプレートをリンクさせることで、事前に設定されている複数のアイテム・トリガー・グラフをまとめて設定することができます。

Page 37: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

ホスト設定:ホストインベントリ

2013/8/2437

機器の構成情報を登録することができます。 [マニュアル ] では手動で登録 [ 自動 ] では項目と関連づけられたアイテムの値が自動的に登録されます。

Page 38: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

アイテム設定:

2013/8/2438

タイプ 内容Zabbix エージェント Zabbix-server→Zabbix-agent

Zabbix エージェント(アクティブ) Zabbix-agent→Zabbix-server(ログ監視では必須)シンプルチェック Ping 、ポートチェックSNMP[v1|v2|v3] エージェント SNMP ポーリングSNMP トラップ SNMP トラップの受信

( SNMPTT の設定が必要)Zabbix インターナル Zabbix-Server の内部状態

( 2.2 では Proxy にも対応予定)Zabbix トラッパー Zabbix-Sender からのデータ受信Zabbix アグリゲート ホストグループ単位での

同一アイテム集計外部チェック Server の指定ディレクトリに置かれ

た任意のスクリプトを実行データベースモニタ ODBC 接続したデータベース上で

SQL を実行IPMI エージェント IPMI のセンサー値を取得SSL エージェント SSL 接続して任意コマンドを実行TELNET エージェント TELNET 接続して任意のコマンドを

実行JMX エージェント JAVA-VM の監視

( Zabbix-java-gateway の設定が必要)

計算 取得済みアイテムの任意の集計

Page 39: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

トリガー設定

2013/8/2439

アイテムで収集した値に対して閾値やキーワードを設定 計算式は、自分で打ち込んでもいいですし、機能から選択することも可能(その方がおすすめ)

Page 40: 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~

アクション

2013/8/2440

トリガー条件がヒットした場合に指定された対象(ホスト・ホストグループ・ユーザー)に対してメッセージ送信・コマンド実行を行う エスカレーション設定を行うことで、指定時間(分)後に繰り返しや、別の処理を行うことが可能