34
2010/09/18 @ hbstudy#15 ZABBIX-JP 代表 寺島広大 (TwitterID: kodai74) http://www.zabbix.jp 1 Zabbix 1.8の概要・開発状況と Zabbixで使える便利ツール、Zabbix APIの紹介

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

Embed Size (px)

DESCRIPTION

2010年9月18日 hbstudy#15

Citation preview

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

 2010/09/18 @ hbstudy#15 ZABBIX-JP 代表 寺島広大 (TwitterID: kodai74)

http://www.zabbix.jp

1

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

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

アジェンダ

• Zabbixの概要と機能

• Zabbix で使える便利なツール

• Zabbix API使ってみました

• Zabbix 2.0のロードマップ

2

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

Zabbixの概要と機能

3

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

Zabbix = 統合監視ソフトウェア

•ステータス情報収集機能✓ 監視対象サーバ、ネットワーク機器からステータス情報を取得✓ 取得した情報をデータベースに保存、蓄積

•障害検知、通知機能✓ 障害を検知する閾値設定✓ 障害発生時にメール通知やスクリプト実行

•グラフィカル表示機能✓ マップ、グラフのリアルタイム表示✓ 障害状況の確認や複数グラフの表示

4

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

Zabbixの主な特徴

•主な特徴✓ オープンソースソフトウェア✓ Webインターフェースから設定・情報表示が可能✓ リアルタイムなグラフ表示✓ 監視データをデータベースに長期間蓄積✓ 監視テンプレートによる設定のテンプレート化✓ マルチプラットフォーム対応✓ 豊富な監視機能

• Zabbixを使うメリット✓ 障害検知 + グラフ表示 + αの監視機能✓ 設定・操作がWebから簡単にできる

5

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

監視サーバ 監視対象

Zabbixの動作環境

Zabbixサーバ

データベースMySQL

PostgreSQLSQLiteOracle

監視データ保存

障害通知

Webインターフェース(Apache + PHP)

表示・設定

管理者

Zabbixエージェント

SNMPエージェント

6

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

Zabbixの対応OS

OS Zabbixサーバ ZabbixエージェントLinux ○ ○

Windows - ○

Solaris ○ ○

AIX ○ ○

HP-UX ○ ○

Mac OS X ○ ○

FreeBSD ○ ○

OpenBSD ○ ○

Novell Netware - ○

SCO Open Server ○ ○

Tru64/OSF ○ ○

7

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

Zabbixエージェントの監視項目

• Zabbixエージェントの標準的な監視機能✓ リソース監視 (CPU、メモリ、ディスク、ネットワーク)✓ プロセス監視 (プロセス数、プロセスのメモリ使用量)✓ ポート監視 (コネクション、レスポンス)✓ ファイル監視 (チェックサム、容量、存在確認、文字列監視)✓ ログ監視✓ Windowsサービス、イベントログ

• Zabbixエージェントの拡張✓ コマンドやスクリプトを登録して拡張可能

8

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

その他の監視機能

• Zabbixサーバのその他の監視機能✓ Ping監視/ポート監視 (エージェントレス)✓ SNMP v1/v2/v3エージェント✓ IPMIエージェント✓ ODBCを利用したSQL監視✓ Web(URL)監視✓ スクリプトの実行による監視

9

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

障害検知・通知とグラフィカル表示機能

•障害検知・通知機能✓ 障害発生状況一覧画面✓ 障害履歴の保存と参照✓ メール送信、Jabberチャット、スクリプト実行が可能✓ Zabbixエージェントでコマンド/スクリプト実行が可能

•グラフィカル表示機能✓ グラフ、マップ、複数グラフ表示✓ リアルタイムに表示✓ 動的に表示期間を変更可能

10

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

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個

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

Zabbixで使える便利なツール

12

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

Zabbix SIAサイトの情報

• Zabbix SIAサイトのWikiページ✓ 色々な監視スクリプトやツールが紹介されている✓ 監視のHow-toなど

13

http://www.zabbix.com/wiki/

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

監視対象

Zabbixエージェントの監視機能の拡張

Zabbixサーバ

データベース

データ保存Zabbixエージェント

14

コマンド実行

エージェントにコマンドを実行させた結果を監視

•ユーザパラメータの機能✓ Zabbixエージェントにコマンド実行させて結果を監視✓ 簡単に監視機能を拡張可能

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

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

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

Zabbixの機能拡張 - PostgreSQLの監視

• PostgreSQL UserParameters ✓ PostgreSQL用のUserParameter設定例が紹介されている✓ コミット数、ロールバック数、コネクション数など✓ 10個ほどのスクリプト例が紹介

16

http://www.zabbix.com/wiki/howto/monitor/db/postgresql

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

Zabbixの機能拡張 - Oracleの監視• Zabora 

✓ Oracle監視用バイナリ✓ コミット数、コネクション数、キャッシュヒット率など✓ SIDごとに監視が可能✓ 他にもOrabbitという実装もある

17

http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle

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

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

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

監視対象

zabbix senderを使った監視

Zabbixサーバ

データベース

データ保存Zabbixエージェント

19

zabbix_senderコマンドを実行

zabbix_senderでデータ送信Zabbixサーバでデータ保存

• zabbix_senderを使った監視✓ zabbix_senderコマンドでデータをプッシュ型で送信✓ Zabbixサーバは受け取ったデータをDBに保存&監視

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

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

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

監視対象

SNMPトラップの監視

Zabbixサーバ

データベース

データ保存

21

SNMPトラップの送信

• ZabbixサーバでSNMPトラップの受信✓ snmptrapdを経由してzabbix_senderを利用する✓ snmptrapd⇒スクリプト実行⇒zabbix_sender⇒Zabbixサーバ✓ スクリプトの作成が鍵になる(&処理が大変)

SNMPエージェントsnmptrapd

スクリプト(内部でzabbix_senderを実行)

スクリプトの実行

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

snmpトラップ処理用のスクリプト

•いくつかの実装が存在する✓ snmptraphandler, SNMP Trap - a new solution ✓ いずれも受け取ったトラップを元に保存先のホストを振り分け✓ 除外する送信元ホストやOIDを指定できるものもある

22

http://www.zabbix.com/wiki/howto/monitor/snmp/snmp_traps_-_a_new_solution

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

SNMP監視テンプレートの作成

23

• ZabbixのSNMP監視設定✓ OID指定で1つ1つ設定する必要がある✓ ポート数が多い機器だと設定が大変✓ XML形式のテンプレートで一括インポート/エクスポートが可能

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

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

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

Zabbix API使ってみました

25

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

API機能

• JSON-RPCを利用した監視設定・データ取得API機能✓ インターフェースは別途開発する必要がある✓ Rubyを利用したAPI用コマンドラインツール ”Zabcon” が開発中✓ その他にもphpやpythonを利用したライブラリの実装がある

+> get hostHost result set+--------+---------------+| hostid | host |+--------+---------------+| 10017 | Zabbix Server |+--------+---------------+1 rows total

+> get userUser result set+--------+-------+| userid | alias |+--------+-------+| 1 | Admin || 2 | guest |+--------+-------+2 rows total

26

Zabcon : http://trac.red-tux.net/wiki/zbx_api/interactive

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

Zabbix API使ってみました

• Zabbix APIの調査/デバッグ用ツールとして✓ JavaScript + jQueryを利用して作成✓ ブラウザ経由でZabbix APIにアクセス✓ 取得したデータを表形式で表示✓ 調査/デバッグ用ツールなので、あまり細かいことは気にせず

27

+

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

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

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

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

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

Zabbix 2.0のロードマップ-OSC2010 Tokyo/Fall Alexei氏の講演より-

30

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

2010/9/10-11 OSC2010 Tokyo/Fall

•Alexei Vladishev氏の来日公演✓ Zabbixの創始者、Zabbix SIAの代表✓ Zabbix 2.0のロードマップについて講演していただきました✓ 資料はこちら:

http://www.zabbix.jp ⇒ DOCUMENTS ⇒ セミナー資料

31

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

Zabbix 2.0 ?

• Zabbix 1.8の次期バージョン✓ Zabbix 1.10になるかも?✓ 2010年末にリリースしたいけど...信用しないでね

• Zabbix 2.0で実現したいこと✓ すべてのプラットフォーム向けにオフィシャルパッケージ

(RPM, Deb, バイナリ)を提供✓ アプライアンスイメージ(VMware, ISO)の提供✓ パフォーマンスとクオリティの改善✓ 機能追加✓ 機能追加要望からアイデアの精査と実装

32

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

Zabbix 2.0の追加機能と改善 (予定)

•追加/改善予定の機能✓ ローレベルディスカバリ✓ スクリーン設定をテンプレートに含める✓ ホストに複数IPを設定可能に✓ JMX監視を標準機能に取り込む✓ Zabbixエージェントの設定をZabbixインターフェースから管理✓ ハードウェアプロファイルの自動収集機能

33

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

Zabbix 2.0の追加機能のアイデア

• Zabbix SIAのfeature requestページからの主な案✓ NoSQLストレージの採用によるパフォーマンス改善✓ 翻訳フレームワークの利用✓ クラウドAPIを利用したAmazon EC2, Rackspaceの監視機能✓ 仮想環境(VMware, Xen, KVM)の監視機能✓ タスクスケジューラ✓ SSH/Telnetを利用したリモートコマンド✓ 通信の暗号化と認証✓ より簡単に利用できる監視拡張機能✓ Webインターフェースの改善

34