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

10,063 views
9,871 views

Published on

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

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,063
On SlideShare
0
From Embeds
0
Number of Embeds
228
Actions
Shares
0
Downloads
74
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

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

  1. 1. 自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
  2. 2. CN:九龍真乙(くりゅうまおと) 所属:自宅ラック勉強会 Twitter @qryuu 2013/8/242 自己紹介
  3. 3. システム要素 2013/8/243 •php による実装WEB •MySQL •PostgreSQL •Oracle 等 データ ベース •C言語による実装Server •Zabbix_agent •SNMP •IPMI など Agent 各要素はIPネットワーク 的に接続されます。 このため各コンポーネン トが異なるサーバにイン ストールされていてもか まいません。 同一のサーバ内にインス トールすることももちろ ん可能です。
  4. 4. 監視通信 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- Agent SNMP- AgentSNMP- Agent IPMI- Agent
  5. 5. 公式パッケージの内容解説については、パッケー ジ名および、展開内容に基づく筆者の推測です。 Zabbix_SIAおよびZabbix_Japanの公式見解ではあり ません。 2013/8/245 注意
  6. 6. 2013/8/246 Zabbix_SIA公式パッケージ RPM 内容 zabbix ドキュメント&インストールディレクトリ zabbix-agent zabbix-agent zabbix-get zabbix-get zabbix-java-gateway zabbix-java-gateway zabbix-proxy zabbix-proxy用ディレクトリ zabbix-proxy-mysql MySQL用zabbix_proxy zabbix-proxy-pgsql PostgreSQL用zabbix-proxy zabbix-proxy-sqlite3 SQLite用zabbix-proxy zabbix-release yum install のためのリポジトリRPM zabbix-sender zabbix-sender zabbix-server zabbix-server用ディレクトリ zabbix-server-mysql MySQL用zabbix-server zabbix-server-pgsql PostgreSQL用zabbix-server zabbix-web zabbix-webフロントエンドの本体 zabbix-web-japanese フロントエンドのグラフ日本語対応用パッチ zabbix-web-mysql フロントエンドのMySQL接続用パッチ zabbix-web-pgsql フロントエンドのPostgreSQL接続用パッチ
  7. 7. 公式パッケージが用意されてるのは、システム構 成で示した「WEB」「Server」「Agent」の部分で す。 データベース部分は含まれていないので、MySQL やPostgreSQL,Sqliteは別途構築しておく必要があり ます。 構築したデータベースに対応するパッケージ選択 しインストールしてください。 ※ZabbixはORACLE DBにも対応していますが、対応 パッケージは配布されていないため、データベー スにOracleを利用する場合はソースからコンパイル する必要があります。 2013/8/247 公式パッケージの範囲
  8. 8. 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
  9. 9. 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 今回の勉強会環境
  10. 10. 1. Oracle版MySQL5.6のインストール/Zabbix 用DB の作成 2. yumによるZabbixの構築および、自己監視設定 3. Windows版Zabbix-agentのインストールおよび監 視設定 2013/8/2410 今回の作業予定
  11. 11. 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/
  12. 12. 始めに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
  13. 13. my.cnfを編集します。(画面の都合で2枠に分けて記載していま す。) 2013/8/2413 MySQLの簡易チューニング vi /usr/my.cnf [mysqld] user=mysql datadir=/data socket=/var/lib/mysql/mysql.sock character-set-server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 ### Tuning Setting innodb_file_per_table =1 innodb_autoextend_increment = 1 innodb_file_format=Barracuda innodb_buffer_pool_size = 2G innodb_thread_concurrency = 20 innodb_flush_log_at_trx_commit=2 innodb_log_buffer_size=32M innodb_log_file_size = 256M innodb_support_xa = 0 innodb_checksums = 0 innodb_doublewrite = 0
  14. 14. MySQLのディレクトリを変更して起動します。 MySQLのrootユーザのパスワードを変更します。 MySQLのセキュアインストールを実行します。 2013/8/2414 MySQLの初期設定 mysql_install_db --datadir=/data --user=mysql service mysql start mysqladmin -u root password 'jitakurack' mysql_secure_installation Enter current password for root (enter for none):jitakurack Change 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 #権限テーブルをリロードするか
  15. 15. Zabbixのリポジトリを登録します。 公式手順が見たい方はZabbix_SIAのドキュメントを 参照してください。 https://www.zabbix.com/documentation/2.0/manual/i nstallation/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
  16. 16. 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
  17. 17. MySQLへのログイン Zabbix DBの作成、権限設定 スキーマファイルの流し込み 2013/8/2417 Zabbix_DBの作成 mysql -uroot -p Enter 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 -p Enter password:zabbix cat images.sql |mysql -uzabbix zabbix -p cat data.sql |mysql -uzabbix zabbix -p
  18. 18. 肥大化しやすい、ヒストリテーブルとイベント テーブルを圧縮しておきます。 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
  19. 19. 変更ポイント、解説ポイントを抜粋しています。 2013/8/2419 Zabbix_Serverの初期設定 vi /etc/zabbix/zabbix_server.conf LogFileSize=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系プロセスのタイムアウト(秒)
  20. 20. 2013/8/2420 Zabbix_Agentの初期設定 vi /etc/zabbix/zabbix_agentd.conf LogFileSize=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で指定したホスト名と一致する必要がある。
  21. 21. 変更ポイント、解説ポイントを抜粋しています。 (続き) 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の場合、ユーザパラメータやリモートコマンド で 以下の文字を使うことができません。 ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
  22. 22. 自動起動設定 サービス起動 2013/8/2422 サービス起動 chkconfig zabbix-server on chkconfig zabbix-agent on chkconfig httpd on service zabbix-server start service zabbix-agent start service httpd start
  23. 23. ブラウザでzabbix-webパッケージをインストール したサーバにアクセスします。 http://<ipアドレス>/zabbix 2013/8/2423 Zabbix_WEBの初期設定
  24. 24. Zabbix_WEBの初期設定 2013/8/2424 初期セットアップ画面が 表示されます。 [Next]をクリックします。
  25. 25. Zabbix_WEBの動作環境確認 2013/8/2425 Zabbix-webの動作環境が チェックされます。 [Fail]となっている項目 があれば、パッケージの 追加やphp.iniの編集を行 い、httpdの再起動を行 い、[Retry]をクリックし ます。 右の図ではPHP time zoneが設定されていな いというエラーが表示さ れています。
  26. 26. 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
  27. 27. Zabbix_WEBの動作環境確認 2013/8/2427 問題が無くなると、 [Retry]ボタンが消え、 [OK]と表示されます。 [Next>>]をクリックしま す。
  28. 28. Zabbix_WEBのDB接続 2013/8/2428 DBへの接続設定を行いま す。 表示されるDatabase type はインストールしたパッ ケージにより異なります。 今回はzabbix-web-mysqlを インストールしているので MySQLが選択されます。 接続情報を入力します。 接続情報を入力したら [Test connection]をクリッ クし接続テストをします。 [OK]と表示されれば、 [Next>>]がクリックできる ようになります。
  29. 29. Zabbix_WEBのZabbix-Server接続 2013/8/2429 Zabbix-serverへの接続情 報を入力します。 Host:Zabbix-serverのIPア ドレスまたはFQDN Port:Zabbix-serverの Listenポート Name:Zabbix-WEBに表示 する識別名(任意) 入力したら[Next>>]をク リックします。
  30. 30. Zabbix_WEBの設定確認 2013/8/2430 これまでの設定情報が表 示されます。 修正する場合は [<<Previous] 問題ない場合は [Ntxt>>]をクリックしま す。
  31. 31. Zabbix_WEBの設定書込 2013/8/2431 設定内容が /etc/zabbix/web/zabbix.c onf.phpに記録されます。 権限不足などにより書込 めなかった場合は、設定 ファイルのダウンロード 画面になります。 この場合設定ファイルを 指定されたディレクトリ に配置することで設定を 完了する事も可能です。 [Finish]をクリックしま す。
  32. 32. Zabbixへのログイン 2013/8/2432 Zabbix-WEBの初期設定 が完了するとログイン画 面が表示されます。 以下の初期ユーザでログ インします。 Username:admin Password:zabbix
  33. 33. 表示の日本語化 2013/8/2433 言語設定は、ユーザアカ ウント毎に変更する事が できます。 画面右上の[profile]をク リックし、[Language]で japaneseを選択すれば、 日本語表示になります。
  34. 34. 設定項目の関連 一度、自分で登録して関連を覚えることをおすす めします 2013/8/2434 Zabbix監視設定の基本のキ ホスト • 対象機器 の名前 • 接続情報 • インベン トリ情報 アイテ ム • 収集デー タ トリ ガー • 閾値 • 条件判定 アク ション • 通知 • コマンド 実行
  35. 35. ホスト設定:ホスト 2013/8/2435 ホスト設定:監視対象機器を 登録します ホスト名:ホストを識別する キーになります。Agentの設定 と一致している必要がありま す。(Zabbix-Agentを使わない 監視対象では一意であればか まいません) 表示名:画面上で表示させる 名称 グループ:グループ毎にアク セス権を制御します。管理に 合わせて随時設定します。 インターフェイス:エージェ ント、SNMP、JMX,IPMI毎にイ ンターフェイスを登録できま す。[追加]を押すことで複数の インターフェイスを登録する こともできます。
  36. 36. ホスト設定:テンプレート 2013/8/2436 テンプレートをリンクさ せることで、事前に設定 されている複数のアイテ ム・トリガー・グラフを まとめて設定することが できます。
  37. 37. ホスト設定:ホストインベント リ 2013/8/2437 機器の構成情報を登録す ることができます。 [マニュアル]では手動で 登録 [自動]では項目と関連づ けられたアイテムの値が 自動的に登録されます。
  38. 38. アイテム設定: 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の設定が必要) 計算 取得済みアイテムの任意の集計
  39. 39. トリガー設定 2013/8/2439 アイテムで収集した値に 対して閾値やキーワード を設定 計算式は、自分で打ち込 んでもいいですし、機能 から選択することも可能 (その方がおすすめ)
  40. 40. アクション 2013/8/2440 トリガー条件がヒットし た場合に指定された対象 (ホスト・ホストグルー プ・ユーザー)に対して メッセージ送信・コマン ド実行を行う エスカレーション設定を 行うことで、指定時間 (分)後に繰り返しや、 別の処理を行うことが可 能

×