2010/09/18 @ hbstudy#15 
ZABBIX-JP 代表 寺島広大 (TwitterID: kodai74)
http://www.zabbix.jp
1
Zabbix 1.8の概要・開発状況と
Zabbixで使える便利ツー...
アジェンダ
• Zabbixの概要と機能
• Zabbix で使える便利なツール
• Zabbix API使ってみました
• Zabbix 2.0のロードマップ
2
Zabbixの概要と機能
3
Zabbix = 統合監視ソフトウェア
• ステータス情報収集機能
✓ 監視対象サーバ、ネットワーク機器からステータス情報を取得
✓ 取得した情報をデータベースに保存、蓄積
• 障害検知、通知機能
✓ 障害を検知する閾値設定
✓ 障害発生時にメ...
Zabbixの主な特徴
• 主な特徴
✓ オープンソースソフトウェア
✓ Webインターフェースから設定・情報表示が可能
✓ リアルタイムなグラフ表示
✓ 監視データをデータベースに長期間蓄積
✓ 監視テンプレートによる設定のテンプレート化
✓...
監視サーバ 監視対象
Zabbixの動作環境
Zabbixサーバ
データベース
MySQL
PostgreSQL
SQLite
Oracle
監視データ保存
障害通知
Webインターフェース
(Apache + PHP)
表示・設定
管理者
Z...
Zabbixの対応OS
OS Zabbixサーバ Zabbixエージェント
Linux ○ ○
Windows - ○
Solaris ○ ○
AIX ○ ○
HP-UX ○ ○
Mac OS X ○ ○
FreeBSD ○ ○
OpenBSD...
Zabbixエージェントの監視項目
• Zabbixエージェントの標準的な監視機能
✓ リソース監視 (CPU、メモリ、ディスク、ネットワーク)
✓ プロセス監視 (プロセス数、プロセスのメモリ使用量)
✓ ポート監視 (コネクション、レスポン...
その他の監視機能
• Zabbixサーバのその他の監視機能
✓ Ping監視/ポート監視 (エージェントレス)
✓ SNMP v1/v2/v3エージェント
✓ IPMIエージェント
✓ ODBCを利用したSQL監視
✓ Web(URL)監視
✓...
障害検知・通知とグラフィカル表示機能
• 障害検知・通知機能
✓ 障害発生状況一覧画面
✓ 障害履歴の保存と参照
✓ メール送信、Jabberチャット、スクリプト実行が可能
✓ Zabbixエージェントでコマンド/スクリプト実行が可能
• グラ...
Zabbix 1.8のリリース
• Zabbix 1.8のリリース履歴
• 現在の状況
✓ 1.8.3で大きな新機能の追加は落ち着いたように見える
✓ 1.8.4に向けてバグフィックス修正が行われている
11
日付 バージョン 主な機能追加 バ...
Zabbixで使える便利なツール
12
Zabbix SIAサイトの情報
• Zabbix SIAサイトのWikiページ
✓ 色々な監視スクリプトやツールが紹介されている
✓ 監視のHow-toなど
13
http://www.zabbix.com/wiki/
監視対象
Zabbixエージェントの監視機能の拡張
Zabbixサーバ
データベース
データ保存
Zabbixエージェント
14
コマンド実行
エージェントにコマンドを
実行させた結果を監視
• ユーザパラメータの機能
✓ Zabbixエージェ...
Zabbixの機能拡張 - MySQLの監視
• Heavy MySQL monitoring solution 
✓ MySQLの内部ステータスを取得するphpスクリプト
✓ MySQL_Server, Replication_Master,...
Zabbixの機能拡張 - PostgreSQLの監視
• PostgreSQL UserParameters 
✓ PostgreSQL用のUserParameter設定例が紹介されている
✓ コミット数、ロールバック数、コネクション数など
...
Zabbixの機能拡張 - Oracleの監視
• Zabora 
✓ Oracle監視用バイナリ
✓ コミット数、コネクション数、キャッシュヒット率など
✓ SIDごとに監視が可能
✓ 他にもOrabbitという実装もある
17
http:/...
Zabbixの機能拡張 - JavaVMの監視
• Zapcat 
✓ ZabbixエージェントのJava実装
✓ JMXを利用したJavaVMの内部ステータスが監視可能
✓ JavaVMのメモリの状態、GC、Tomcatのコネクション数など
...
監視対象
zabbix senderを使った監視
Zabbixサーバ
データベース
データ保存
Zabbixエージェント
19
zabbix_sender
コマンドを実行
zabbix_senderでデータ送信
Zabbixサーバでデータ保存
...
Zabbix senderの活用例 - Postfixの監視
• Postfix statistics with Zabbix 
✓ pflogsummとlogtailを利用
✓ cronでPostfixのログを処理してzabbix_senderでデー...
監視対象
SNMPトラップの監視
Zabbixサーバ
データベース
データ保存
21
SNMPトラップの送信
• ZabbixサーバでSNMPトラップの受信
✓ snmptrapdを経由してzabbix_senderを利用する
✓ snmptr...
snmpトラップ処理用のスクリプト
• いくつかの実装が存在する
✓ snmptraphandler, SNMP Trap - a new solution 
✓ いずれも受け取ったトラップを元に保存先のホストを振り分け
✓ 除外する送信元ホス...
SNMP監視テンプレートの作成
23
• ZabbixのSNMP監視設定
✓ OID指定で1つ1つ設定する必要がある
✓ ポート数が多い機器だと設定が大変
✓ XML形式のテンプレートで一括インポート/エクスポートが可能
SNMPテンプレート作成スクリプト
24
• SNMP template generator 
✓ snmpwalkした結果を元にXMLテンプレートを自動生成
✓ MIB2に加えて、いくつかの機器ではプライベートMIBに対応
✓ perlスクリ...
Zabbix API使ってみました
25
API機能
• JSON-RPCを利用した監視設定・データ取得API機能
✓ インターフェースは別途開発する必要がある
✓ Rubyを利用したAPI用コマンドラインツール ”Zabcon” が開発中
✓ その他にもphpやpythonを利用した...
Zabbix API使ってみました
• Zabbix APIの調査/デバッグ用ツールとして
✓ JavaScript + jQueryを利用して作成
✓ ブラウザ経由でZabbix APIにアクセス
✓ 取得したデータを表形式で表示
✓ 調査/...
Zabbix API - JSONデータの作成
• JavaScriptのJSON.stringifyを利用すれば簡単
✓ Zabbix APIはJSON-RPC 2.0を利用
✓ rpcidはリクエストごとにインクリメント
✓ authidは...
Zabbix API - JSONデータの送信
• jQueryの.ajax()を利用
✓ createJsonObjectで作成したJSONデータを.ajax()でPOST送信
✓ 成功するとJSONオブジェクトが返ってくる
✓ あとはeac...
Zabbix 2.0のロードマップ
-OSC2010 Tokyo/Fall Alexei氏の講演より-
30
2010/9/10-11 OSC2010 Tokyo/Fall
• Alexei Vladishev氏の来日公演
✓ Zabbixの創始者、Zabbix SIAの代表
✓ Zabbix 2.0のロードマップについて講演していただきました
✓ 資...
Zabbix 2.0 ?
• Zabbix 1.8の次期バージョン
✓ Zabbix 1.10になるかも?
✓ 2010年末にリリースしたいけど...信用しないでね
• Zabbix 2.0で実現したいこと
✓ すべてのプラットフォーム向けにオ...
Zabbix 2.0の追加機能と改善 (予定)
• 追加/改善予定の機能
✓ ローレベルディスカバリ
✓ スクリーン設定をテンプレートに含める
✓ ホストに複数IPを設定可能に
✓ JMX監視を標準機能に取り込む
✓ Zabbixエージェントの...
Zabbix 2.0の追加機能のアイデア
• Zabbix SIAのfeature requestページからの主な案
✓ NoSQLストレージの採用によるパフォーマンス改善
✓ 翻訳フレームワークの利用
✓ クラウドAPIを利用したAmazon...
Upcoming SlideShare
Loading in …5
×

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

9,128 views

Published on

2010年9月18日 hbstudy#15

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,128
On SlideShare
0
From Embeds
0
Number of Embeds
118
Actions
Shares
0
Downloads
53
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

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

  1. 1.  2010/09/18 @ hbstudy#15  ZABBIX-JP 代表 寺島広大 (TwitterID: kodai74) http://www.zabbix.jp 1 Zabbix 1.8の概要・開発状況と Zabbixで使える便利ツール、Zabbix APIの紹介
  2. 2. アジェンダ • Zabbixの概要と機能 • Zabbix で使える便利なツール • Zabbix API使ってみました • Zabbix 2.0のロードマップ 2
  3. 3. Zabbixの概要と機能 3
  4. 4. Zabbix = 統合監視ソフトウェア • ステータス情報収集機能 ✓ 監視対象サーバ、ネットワーク機器からステータス情報を取得 ✓ 取得した情報をデータベースに保存、蓄積 • 障害検知、通知機能 ✓ 障害を検知する閾値設定 ✓ 障害発生時にメール通知やスクリプト実行 • グラフィカル表示機能 ✓ マップ、グラフのリアルタイム表示 ✓ 障害状況の確認や複数グラフの表示 4
  5. 5. Zabbixの主な特徴 • 主な特徴 ✓ オープンソースソフトウェア ✓ Webインターフェースから設定・情報表示が可能 ✓ リアルタイムなグラフ表示 ✓ 監視データをデータベースに長期間蓄積 ✓ 監視テンプレートによる設定のテンプレート化 ✓ マルチプラットフォーム対応 ✓ 豊富な監視機能 • Zabbixを使うメリット ✓ 障害検知 + グラフ表示 + αの監視機能 ✓ 設定・操作がWebから簡単にできる 5
  6. 6. 監視サーバ 監視対象 Zabbixの動作環境 Zabbixサーバ データベース MySQL PostgreSQL SQLite Oracle 監視データ保存 障害通知 Webインターフェース (Apache + PHP) 表示・設定 管理者 Zabbixエージェント SNMPエージェント 6
  7. 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. 8. Zabbixエージェントの監視項目 • Zabbixエージェントの標準的な監視機能 ✓ リソース監視 (CPU、メモリ、ディスク、ネットワーク) ✓ プロセス監視 (プロセス数、プロセスのメモリ使用量) ✓ ポート監視 (コネクション、レスポンス) ✓ ファイル監視 (チェックサム、容量、存在確認、文字列監視) ✓ ログ監視 ✓ Windowsサービス、イベントログ • Zabbixエージェントの拡張 ✓ コマンドやスクリプトを登録して拡張可能 8
  9. 9. その他の監視機能 • Zabbixサーバのその他の監視機能 ✓ Ping監視/ポート監視 (エージェントレス) ✓ SNMP v1/v2/v3エージェント ✓ IPMIエージェント ✓ ODBCを利用したSQL監視 ✓ Web(URL)監視 ✓ スクリプトの実行による監視 9
  10. 10. 障害検知・通知とグラフィカル表示機能 • 障害検知・通知機能 ✓ 障害発生状況一覧画面 ✓ 障害履歴の保存と参照 ✓ メール送信、Jabberチャット、スクリプト実行が可能 ✓ Zabbixエージェントでコマンド/スクリプト実行が可能 • グラフィカル表示機能 ✓ グラフ、マップ、複数グラフ表示 ✓ リアルタイムに表示 ✓ 動的に表示期間を変更可能 10
  11. 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. 12. Zabbixで使える便利なツール 12
  13. 13. Zabbix SIAサイトの情報 • Zabbix SIAサイトのWikiページ ✓ 色々な監視スクリプトやツールが紹介されている ✓ 監視のHow-toなど 13 http://www.zabbix.com/wiki/
  14. 14. 監視対象 Zabbixエージェントの監視機能の拡張 Zabbixサーバ データベース データ保存 Zabbixエージェント 14 コマンド実行 エージェントにコマンドを 実行させた結果を監視 • ユーザパラメータの機能 ✓ Zabbixエージェントにコマンド実行させて結果を監視 ✓ 簡単に監視機能を拡張可能
  15. 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. 16. Zabbixの機能拡張 - PostgreSQLの監視 • PostgreSQL UserParameters  ✓ PostgreSQL用のUserParameter設定例が紹介されている ✓ コミット数、ロールバック数、コネクション数など ✓ 10個ほどのスクリプト例が紹介 16 http://www.zabbix.com/wiki/howto/monitor/db/postgresql
  17. 17. Zabbixの機能拡張 - Oracleの監視 • Zabora  ✓ Oracle監視用バイナリ ✓ コミット数、コネクション数、キャッシュヒット率など ✓ SIDごとに監視が可能 ✓ 他にもOrabbitという実装もある 17 http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle
  18. 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. 19. 監視対象 zabbix senderを使った監視 Zabbixサーバ データベース データ保存 Zabbixエージェント 19 zabbix_sender コマンドを実行 zabbix_senderでデータ送信 Zabbixサーバでデータ保存 • zabbix_senderを使った監視 ✓ zabbix_senderコマンドでデータをプッシュ型で送信 ✓ Zabbixサーバは受け取ったデータをDBに保存&監視
  20. 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. 21. 監視対象 SNMPトラップの監視 Zabbixサーバ データベース データ保存 21 SNMPトラップの送信 • ZabbixサーバでSNMPトラップの受信 ✓ snmptrapdを経由してzabbix_senderを利用する ✓ snmptrapd スクリプト実行 zabbix_sender Zabbixサーバ ✓ スクリプトの作成が になる(&処理が大変) SNMPエージェント snmptrapd スクリプト (内部でzabbix_senderを実行) スクリプトの実行
  22. 22. snmpトラップ処理用のスクリプト • いくつかの実装が存在する ✓ snmptraphandler, SNMP Trap - a new solution  ✓ いずれも受け取ったトラップを元に保存先のホストを振り分け ✓ 除外する送信元ホストやOIDを指定できるものもある 22 http://www.zabbix.com/wiki/howto/monitor/snmp/snmp_traps_- _a_new_solution
  23. 23. SNMP監視テンプレートの作成 23 • ZabbixのSNMP監視設定 ✓ OID指定で1つ1つ設定する必要がある ✓ ポート数が多い機器だと設定が大変 ✓ XML形式のテンプレートで一括インポート/エクスポートが可能
  24. 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. 25. Zabbix API使ってみました 25
  26. 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. 27. Zabbix API使ってみました • Zabbix APIの調査/デバッグ用ツールとして ✓ JavaScript + jQueryを利用して作成 ✓ ブラウザ経由でZabbix APIにアクセス ✓ 取得したデータを表形式で表示 ✓ 調査/デバッグ用ツールなので、あまり細かいことは気にせず 27 +
  28. 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. 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. 30. Zabbix 2.0のロードマップ -OSC2010 Tokyo/Fall Alexei氏の講演より- 30
  31. 31. 2010/9/10-11 OSC2010 Tokyo/Fall • Alexei Vladishev氏の来日公演 ✓ Zabbixの創始者、Zabbix SIAの代表 ✓ Zabbix 2.0のロードマップについて講演していただきました ✓ 資料はこちら: http://www.zabbix.jp DOCUMENTS セミナー資料 31
  32. 32. Zabbix 2.0 ? • Zabbix 1.8の次期バージョン ✓ Zabbix 1.10になるかも? ✓ 2010年末にリリースしたいけど...信用しないでね • Zabbix 2.0で実現したいこと ✓ すべてのプラットフォーム向けにオフィシャルパッケージ (RPM, Deb, バイナリ)を提供 ✓ アプライアンスイメージ(VMware, ISO)の提供 ✓ パフォーマンスとクオリティの改善 ✓ 機能追加 ✓ 機能追加要望からアイデアの精査と実装 32
  33. 33. Zabbix 2.0の追加機能と改善 (予定) • 追加/改善予定の機能 ✓ ローレベルディスカバリ ✓ スクリーン設定をテンプレートに含める ✓ ホストに複数IPを設定可能に ✓ JMX監視を標準機能に取り込む ✓ Zabbixエージェントの設定をZabbixインターフェースから管理 ✓ ハードウェアプロファイルの自動収集機能 33
  34. 34. Zabbix 2.0の追加機能のアイデア • Zabbix SIAのfeature requestページからの主な案 ✓ NoSQLストレージの採用によるパフォーマンス改善 ✓ 翻訳フレームワークの利用 ✓ クラウドAPIを利用したAmazon EC2, Rackspaceの監視機能 ✓ 仮想環境(VMware, Xen, KVM)の監視機能 ✓ タスクスケジューラ ✓ SSH/Telnetを利用したリモートコマンド ✓ 通信の暗号化と認証 ✓ より簡単に利用できる監視拡張機能 ✓ Webインターフェースの改善 34

×