Zabbix 1.8の概要・開発状況とZabbixで使える便利ツール、Zabbix APIの紹介

7,363
views

Published on

2010年9月18日 hbstudy#15

2010年9月18日 hbstudy#15

Published in: Technology

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

No Downloads
Views
Total Views
7,363
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
49
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.  2010/09/18 @ hbstudy#15  ZABBIX-JP 代表 寺島広大 (TwitterID: kodai74) http://www.zabbix.jp 1 Zabbix 1.8の概要・開発状況と Zabbixで使える便利ツール、Zabbix APIの紹介
  • 2. アジェンダ • Zabbixの概要と機能 • Zabbix で使える便利なツール • Zabbix API使ってみました • Zabbix 2.0のロードマップ 2
  • 3. Zabbixの概要と機能 3
  • 4. Zabbix = 統合監視ソフトウェア • ステータス情報収集機能 ✓ 監視対象サーバ、ネットワーク機器からステータス情報を取得 ✓ 取得した情報をデータベースに保存、蓄積 • 障害検知、通知機能 ✓ 障害を検知する閾値設定 ✓ 障害発生時にメール通知やスクリプト実行 • グラフィカル表示機能 ✓ マップ、グラフのリアルタイム表示 ✓ 障害状況の確認や複数グラフの表示 4
  • 5. Zabbixの主な特徴 • 主な特徴 ✓ オープンソースソフトウェア ✓ Webインターフェースから設定・情報表示が可能 ✓ リアルタイムなグラフ表示 ✓ 監視データをデータベースに長期間蓄積 ✓ 監視テンプレートによる設定のテンプレート化 ✓ マルチプラットフォーム対応 ✓ 豊富な監視機能 • Zabbixを使うメリット ✓ 障害検知 + グラフ表示 + αの監視機能 ✓ 設定・操作がWebから簡単にできる 5
  • 6. 監視サーバ 監視対象 Zabbixの動作環境 Zabbixサーバ データベース MySQL PostgreSQL SQLite Oracle 監視データ保存 障害通知 Webインターフェース (Apache + PHP) 表示・設定 管理者 Zabbixエージェント SNMPエージェント 6
  • 7. Zabbixの対応OS OS Zabbixサーバ Zabbixエージェント Linux ○ ○ Windows - ○ Solaris ○ ○ AIX ○ ○ HP-UX ○ ○ Mac OS X ○ ○ FreeBSD ○ ○ OpenBSD ○ ○ Novell Netware - ○ SCO Open Server ○ ○ Tru64/OSF ○ ○ 7
  • 8. Zabbixエージェントの監視項目 • Zabbixエージェントの標準的な監視機能 ✓ リソース監視 (CPU、メモリ、ディスク、ネットワーク) ✓ プロセス監視 (プロセス数、プロセスのメモリ使用量) ✓ ポート監視 (コネクション、レスポンス) ✓ ファイル監視 (チェックサム、容量、存在確認、文字列監視) ✓ ログ監視 ✓ Windowsサービス、イベントログ • Zabbixエージェントの拡張 ✓ コマンドやスクリプトを登録して拡張可能 8
  • 9. その他の監視機能 • Zabbixサーバのその他の監視機能 ✓ Ping監視/ポート監視 (エージェントレス) ✓ SNMP v1/v2/v3エージェント ✓ IPMIエージェント ✓ ODBCを利用したSQL監視 ✓ Web(URL)監視 ✓ スクリプトの実行による監視 9
  • 10. 障害検知・通知とグラフィカル表示機能 • 障害検知・通知機能 ✓ 障害発生状況一覧画面 ✓ 障害履歴の保存と参照 ✓ メール送信、Jabberチャット、スクリプト実行が可能 ✓ Zabbixエージェントでコマンド/スクリプト実行が可能 • グラフィカル表示機能 ✓ グラフ、マップ、複数グラフ表示 ✓ リアルタイムに表示 ✓ 動的に表示期間を変更可能 10
  • 11. Zabbix 1.8のリリース • Zabbix 1.8のリリース履歴 • 現在の状況 ✓ 1.8.3で大きな新機能の追加は落ち着いたように見える ✓ 1.8.4に向けてバグフィックス修正が行われている 11 日付 バージョン 主な機能追加 バグフィックス数 2009/12/08 1.8 - - 2010/01/28 1.8.1 2個 fix 165個 2010/03/30 1.8.2 17個 fix 166個 2010/08/16 1.8.3 3個 fix 315個 現在 (2010/09/10) 1.8.4 (開発中) - open 362個
  • 12. Zabbixで使える便利なツール 12
  • 13. Zabbix SIAサイトの情報 • Zabbix SIAサイトのWikiページ ✓ 色々な監視スクリプトやツールが紹介されている ✓ 監視のHow-toなど 13 http://www.zabbix.com/wiki/
  • 14. 監視対象 Zabbixエージェントの監視機能の拡張 Zabbixサーバ データベース データ保存 Zabbixエージェント 14 コマンド実行 エージェントにコマンドを 実行させた結果を監視 • ユーザパラメータの機能 ✓ Zabbixエージェントにコマンド実行させて結果を監視 ✓ 簡単に監視機能を拡張可能
  • 15. Zabbixの機能拡張 - MySQLの監視 • Heavy MySQL monitoring solution  ✓ MySQLの内部ステータスを取得するphpスクリプト ✓ MySQL_Server, Replication_Master, Replication_SlaveのXMLテ ンプレートが配布されている ✓ 100を超えるアイテムとトリガーが標準で利用できる 15 http://www.zabbix.com/wiki/howto/monitor/db/mysql/ extensive_mysql_monitoring_including_replication
  • 16. Zabbixの機能拡張 - PostgreSQLの監視 • PostgreSQL UserParameters  ✓ PostgreSQL用のUserParameter設定例が紹介されている ✓ コミット数、ロールバック数、コネクション数など ✓ 10個ほどのスクリプト例が紹介 16 http://www.zabbix.com/wiki/howto/monitor/db/postgresql
  • 17. Zabbixの機能拡張 - Oracleの監視 • Zabora  ✓ Oracle監視用バイナリ ✓ コミット数、コネクション数、キャッシュヒット率など ✓ SIDごとに監視が可能 ✓ 他にもOrabbitという実装もある 17 http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle
  • 18. Zabbixの機能拡張 - JavaVMの監視 • Zapcat  ✓ ZabbixエージェントのJava実装 ✓ JMXを利用したJavaVMの内部ステータスが監視可能 ✓ JavaVMのメモリの状態、GC、Tomcatのコネクション数など ✓ Zabbixに標準でJava, Tomcat, Hibernateテンプレートが付属 ✓ 他にもZabbix tools for Javaという実装もある 18 http://www.kjkoster.org/zapcat/Zapcat_JMX_Zabbix_Bridge.html
  • 19. 監視対象 zabbix senderを使った監視 Zabbixサーバ データベース データ保存 Zabbixエージェント 19 zabbix_sender コマンドを実行 zabbix_senderでデータ送信 Zabbixサーバでデータ保存 • zabbix_senderを使った監視 ✓ zabbix_senderコマンドでデータをプッシュ型で送信 ✓ Zabbixサーバは受け取ったデータをDBに保存&監視
  • 20. Zabbix senderの活用例 - Postfixの監視 • Postfix statistics with Zabbix  ✓ pflogsummとlogtailを利用 ✓ cronでPostfixのログを処理してzabbix_senderでデータ送付 ✓ メール送受信数、送受信バイト数 ✓ forward, reject, bounced数の監視など 20 http://www.zabbix.com/wiki/howto/monitor/mail/postfix/ monitoringpostfix
  • 21. 監視対象 SNMPトラップの監視 Zabbixサーバ データベース データ保存 21 SNMPトラップの送信 • ZabbixサーバでSNMPトラップの受信 ✓ snmptrapdを経由してzabbix_senderを利用する ✓ snmptrapd スクリプト実行 zabbix_sender Zabbixサーバ ✓ スクリプトの作成が になる(&処理が大変) SNMPエージェント snmptrapd スクリプト (内部でzabbix_senderを実行) スクリプトの実行
  • 22. snmpトラップ処理用のスクリプト • いくつかの実装が存在する ✓ snmptraphandler, SNMP Trap - a new solution  ✓ いずれも受け取ったトラップを元に保存先のホストを振り分け ✓ 除外する送信元ホストやOIDを指定できるものもある 22 http://www.zabbix.com/wiki/howto/monitor/snmp/snmp_traps_- _a_new_solution
  • 23. SNMP監視テンプレートの作成 23 • ZabbixのSNMP監視設定 ✓ OID指定で1つ1つ設定する必要がある ✓ ポート数が多い機器だと設定が大変 ✓ XML形式のテンプレートで一括インポート/エクスポートが可能
  • 24. SNMPテンプレート作成スクリプト 24 • SNMP template generator  ✓ snmpwalkした結果を元にXMLテンプレートを自動生成 ✓ MIB2に加えて、いくつかの機器ではプライベートMIBに対応 ✓ perlスクリプトで簡単に使える $ snmpwalk -v2c -c public -On network-hostname 1.3.6.1.2.1 > snmpwalk.txt $ ./gentemplate snmpwalk.txt http://www.zabbix.com/wiki/scripts/gentemplate.pl
  • 25. Zabbix API使ってみました 25
  • 26. API機能 • JSON-RPCを利用した監視設定・データ取得API機能 ✓ インターフェースは別途開発する必要がある ✓ Rubyを利用したAPI用コマンドラインツール ”Zabcon” が開発中 ✓ その他にもphpやpythonを利用したライブラリの実装がある +> get host Host result set +--------+---------------+ | hostid | host | +--------+---------------+ | 10017 | Zabbix Server | +--------+---------------+ 1 rows total +> get user User result set +--------+-------+ | userid | alias | +--------+-------+ | 1 | Admin | | 2 | guest | +--------+-------+ 2 rows total 26 Zabcon : http://trac.red-tux.net/wiki/zbx_api/interactive
  • 27. Zabbix API使ってみました • Zabbix APIの調査/デバッグ用ツールとして ✓ JavaScript + jQueryを利用して作成 ✓ ブラウザ経由でZabbix APIにアクセス ✓ 取得したデータを表形式で表示 ✓ 調査/デバッグ用ツールなので、あまり細かいことは気にせず 27 +
  • 28. Zabbix API - JSONデータの作成 • JavaScriptのJSON.stringifyを利用すれば簡単 ✓ Zabbix APIはJSON-RPC 2.0を利用 ✓ rpcidはリクエストごとにインクリメント ✓ authidは認証済みかどうかをチェックする文字列 ✓ methodには送信するメソッドを、paramsにはパラメータを指定 function createJsonObject(rpcid, authid, method, params) { var parameter = {}; parameter.jsonrpc = '2.0'; parameter.id = rpcid; parameter.auth = authid; parameter.method = method; parameter.params = params; return JSON.stringify(parameter); }; 28
  • 29. Zabbix API - JSONデータの送信 • jQueryの.ajax()を利用 ✓ createJsonObjectで作成したJSONデータを.ajax()でPOST送信 ✓ 成功するとJSONオブジェクトが返ってくる ✓ あとはeachやfor文でデータ取出、HTML作成 function sendJSONRequest(jsonobject) { $.ajax({ url: 'http://zabbix-server/zabbix/api_jsonrpc.php', contentType: 'application/json-rpc', dataType: 'json', type: 'POST', processData: false, data: jsonobject, success: function(response) {<成功時の処理>}, error: function(response) {<失敗時の処理>} }); }; 29
  • 30. Zabbix 2.0のロードマップ -OSC2010 Tokyo/Fall Alexei氏の講演より- 30
  • 31. 2010/9/10-11 OSC2010 Tokyo/Fall • Alexei Vladishev氏の来日公演 ✓ Zabbixの創始者、Zabbix SIAの代表 ✓ Zabbix 2.0のロードマップについて講演していただきました ✓ 資料はこちら: http://www.zabbix.jp DOCUMENTS セミナー資料 31
  • 32. Zabbix 2.0 ? • Zabbix 1.8の次期バージョン ✓ Zabbix 1.10になるかも? ✓ 2010年末にリリースしたいけど...信用しないでね • Zabbix 2.0で実現したいこと ✓ すべてのプラットフォーム向けにオフィシャルパッケージ (RPM, Deb, バイナリ)を提供 ✓ アプライアンスイメージ(VMware, ISO)の提供 ✓ パフォーマンスとクオリティの改善 ✓ 機能追加 ✓ 機能追加要望からアイデアの精査と実装 32
  • 33. Zabbix 2.0の追加機能と改善 (予定) • 追加/改善予定の機能 ✓ ローレベルディスカバリ ✓ スクリーン設定をテンプレートに含める ✓ ホストに複数IPを設定可能に ✓ JMX監視を標準機能に取り込む ✓ Zabbixエージェントの設定をZabbixインターフェースから管理 ✓ ハードウェアプロファイルの自動収集機能 33
  • 34. Zabbix 2.0の追加機能のアイデア • Zabbix SIAのfeature requestページからの主な案 ✓ NoSQLストレージの採用によるパフォーマンス改善 ✓ 翻訳フレームワークの利用 ✓ クラウドAPIを利用したAmazon EC2, Rackspaceの監視機能 ✓ 仮想環境(VMware, Xen, KVM)の監視機能 ✓ タスクスケジューラ ✓ SSH/Telnetを利用したリモートコマンド ✓ 通信の暗号化と認証 ✓ より簡単に利用できる監視拡張機能 ✓ Webインターフェースの改善 34