Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

12,023 views

Published on

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

  • Be the first to comment

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

×