ドキュメント

Zabbixについて

公式マニュアル

バージョン言語・形式リンク先
3.0英語(Wiki)本家
2.4英語(Wiki)本家
2.2英語(Wiki)本家
日本語(Wiki)本家
2.0英語(Wiki)本家
日本語(Wiki)本家
1.8英語(Wiki)本家
日本語(Wiki)本家
1.6英語(PDF)本家
1.4英語(PDF)本家
日本語(PDF)本家

ZABBIX-JPドキュメント

監視テンプレート/監視スクリプト

各種ツール

執筆物・セミナー資料

(※Zabbix 2.0以降の新しいバージョンを利用されたい方は、オフィシャルパッケージをご利用ください。yum/aptの利用方法はZabbixオフィシャルドキュメントの説明をご確認ください。)

その他

Zabbixとは

Zabbixとは

Zabbixとは、サーバー、ネットワーク、アプリケーションを監視するためのソフトウェアです。Zabbixは主に以下の3つの機能を有しています。

開発

Zabbixはラトビアの企業であるZabbix SIAにより開発されています。企業により継続的な開発が行われており、必要に応じて商用サポートも受けることができます。

ライセンス

ZabbixはGNU General Public License (GPL) v2ライセンスで配布されています。すべての機能がGPLv2ライセンスで提供され、すべての機能をフリーで利用することができます。

また、"Zabbix"の商標はZabbix SIAが有しており、商用利用にはZabbix SIAの許可が必要です。Zabbix商標の詳細についてはZabbix SIAの商標ポリシーのページを参照してください。

特徴

主な特徴

  • オープンソースソフトウェア
  • マルチプラットフォーム対応
  • 多数の監視機能をデフォルトの機能として提供
  • 独自のカスタムスクリプトを利用して監視機能を容易に拡張可能
  • 収集した監視データをRDBMSに長期保存
  • 長期スパン、複数データを利用したカスタムグラフの作成
  • システム全体のステータスを表示するダッシュボード画面
  • ネットワークマップの作成/表示
  • 監視データの表示と監視設定をWebインターフェースから行うことができる
  • メール、SMS、Jabberチャットプロトコル、カスタムスクリプトを利用した障害通知

機能

監視機能

Zabbixは様々な方法によりネットワーク上のデバイスを監視することができます。対応している監視方法は以下の種類があります。OS、ネットワーク機器、UPSなどネットワークに接続されたデバイス、アプリケーションなどを一元的に監視することができ、システム全体の稼働状況を即座に把握することが可能です。

  • Zabbixエージェント
  • SNMPエージェント (v1、v2、v3)
  • シンプルチェック(ping死活監視、TCPポート監視)
  • ODBCを利用したデータベース監視
  • IPMIを利用したハードウェア監視
  • Telnet/SSH経由の監視
  • カスタムスクリプトによる監視
  • Zabbixサーバ内部ステータス

収集されたデータはリアルタイムにRDBMSに保存され、Webインターフェースから確認することができます。RDBMSを利用することにより長期間のデータ蓄積とデータの再利用が可能であり、収集データを利用した長期傾向分析やレポートの作成などにも活用することができます。

グラフィカル表示機能

ZabbixはWebインターフェースから監視結果の表示、監視設定の変更を行うことができます。専用のクライアントソフトウェアを必要としないことから、PCだけではなくタブレット機器やスマートフォンなどブラウザを利用できる環境があれば、いつでも、どこからでもリアルタイムにシステムの稼働状況を把握することができます。

また、データのグラフ化やマップ表示機能などのグラフィカル表示機能も有しているため、短期間のデータから障害の分析を行ったり、長期間のデータからシステムの傾向分析を行いハードウェアの増強計画を立てるなど様々な活用方法があります。

ZabbixのWebインターフェースには以下の機能を有しています。

  • 収集したデータ履歴(ヒストリ)の生データを表示
  • 障害が発生している項目(トリガー)の一覧表示
  • 過去の障害の履歴(イベント)の一覧表示
  • 単一/複数の監視項目のグラフ表示(シンプルグラフ/カスタムグラフ)
  • ネットワークマップの表示
  • 1画面に複数のグラフやマップ、生データ、障害一覧などをユーザが設定・表示するスクリーン機能
  • 特定のサービスの稼働率を計算するSLA機能

障害検知/通知機能

Zabbixは障害検知のためのしきい値を柔軟に設定することができ、障害発生時にはリアルタイムに管理者への通知を行うことができます。実行できる障害通知方法には以下のものがあります。

  • メールの送信
  • SMSの送信
  • Jabberチャットメッセージの送信
  • カスタムスクリプトの実行

メールによる通知だけではなく、カスタムスクリプトを実行できることにより、チケット管理システムへの障害インシデント登録やSNMPトラップを用いた上位の監視サーバへの障害情報の転送、障害の自動対応などを行うことも可能です。

また、エスカレーションの機能を有しているため、障害の継続期間に応じて管理者へのメール通知、マネージャへのメール通知、スクリプトによる障害の自動復旧対応など、実行させるないようを変化させることが可能です。

動作環境

動作プラットフォーム

OSZabbixサーバZabbixエージェント
Linux
AIX
HP-UX
Solaris
FreeBSD
OpenBSD
Mac OS X
Windows 2000、XP、2003、Vista、2008、7

システム要件

Zabbixサーバ

  • ディスク空き容量: 10MB以上
  • 搭載メモリ: 64MB以上
  • MySQL (3.22以上)、PostgreSQL (7.0.2以上)、SQLite、Oracle、DB2のいずれか

上記のハードウェアスペックは最低限動作させるための要件です。Zabbixサーバはデータの保存にRDBMSを利用するため、実際の稼働環境で快適に動作させるためにはより高速なCPU、大容量のメモリとディスク容量が必要です。

一般的にはXeonクラスのCPU、1GB以上のメモリ、データの保存期間に応じたディスク容量を持ったハードウェアを利用することを推奨します。

Webインターフェース

  • Apache 1.3.2以上
  • PHP 5.0以上

Zabbixエージェント

エージェントはCで開発され非常に軽量なため、システム要件はありません。

ダウンロード

RedHat/CentOS用RPM

ZABBIX-JPでは、新しいバージョンのパッケージを作成しておりません。

新しいパッケージはZabbix SIAのリポジトリを利用するようにしてください。

zabbix_getやzabbix_senderは別パッケージとなっています。グラフの文字化けは、zabbix-web-japaneseパッケージのインストールで解決できます。

以下のZABBIX-JP上のファイルは、古いバージョンのみとなります。

ZABBIX-JPではRedHat/CentOS用のRPMリポジトリを提供していました。日本語対応を行ったZabbixのRPMと、Zabbixのインストールに必要な各種ライブラリのRPMをダウンロード可能です。

サポートが切れた古いバージョンのダウンロードおよび利用方法は以下のページを参照してください。ただし、サポートが終了となっているバージョンですので、速やかにZabbix SIAから新しいバージョンを取得して利用するようにしてください。

ソースコード

ZabbixのソースコードはZabbix SIAのダウンロードページからダウンロードできます。

Zabbixアプライアンス

OpenSuSEとMySQLを利用したバーチャルアプライアンスやライブCDなどがZabbix SIAのサイトからダウンロードできます。

アラートスクリプト

Zabbixから認証が必要なメールサーバを利用したり、UTF-8が適切に扱えないメーラを利用している場合のアラートメール送信スクリプトです。利用方法は日本語アラートメールの送信方法を参照してください。

Zabbixのインストール

Zabbixのインストール方法はZABBIX-JPが配布するRedHat/CentOS用RPMによるインストールとソースコードからのインストール方法があります。通常はRPMを利用したインストール方法が簡単でアップグレードも容易です。OSに付属するデータベースやPHPを利用せず、独自にコンパイルしたものを利用する場合はZabbixもソースコードからのコンパイルが必要になります。

また、ZABBIX-JPではZabbixの動作に必要なライブラリや外部ソフトウェアのうち、RedHat/CentOSには含まれていないものもRPMで配布しています。ソースからインストールを行う場合でも、これらのRPMを利用することで簡単にZabbixをインストールすることができます。

目的に応じて以下のドキュメントを参照してください。個々の機能の詳細についてはZabbix SIAのオフィシャルドキュメント(英語, 日本語)を参照してください。

ZABBIX-JPのyumリポジトリ利用方法

ZABBIX-JPではZabbix 2.0以降のRPMの作成は行いません。新規にZabbixをインストールする場合はZabbix SIAが配布するオフィシャルRPM/Debパッケージを利用ください。オフィシャルパッケージはこちらからダウンロードできます。yum/aptを利用したインストール方法はオフィシャルドキュメントを参考ください。

ZABBIX-JPのyumリポジトリを登録することで、yumを利用したZABBIXのインストール/アップデートを行うことができます。ZABBIX RPMファイルやyumリポジトリ登録用RPMファイルのバグ報告はフォーラムにお願いします。

yumリポジトリ登録用RPMのインストール方法

Red Hat Enterprise Linux 4/ CentOS 4

以下のコマンドを実行します

# rpm -ivh http://repo.zabbix.jp/relatedpkgs/rhel4/i386/zabbix-jp-release-4-6.noarch.rpm

Red Hat Enterprise Linux 5 / CentOS 5

以下のコマンドを実行します

# rpm -ivh http://repo.zabbix.jp/relatedpkgs/rhel5/i386/zabbix-jp-release-5-6.noarch.rpm

Red Hat Enterprise Linux 6 / CentOS 6

以下のコマンドを実行します

# wget http://repo.zabbix.jp/relatedpkgs/rhel6/i386/zabbix-jp-release-6-6.noarch.rpm
# rpm -ivh zabbix-jp-release-6-6.noarch.rpm

注意点!

zabbix-jp-release-*-1.noarch.rpmからアップグレードする場合、一度RPMを削除してから上記のコマンドを実行してください。/etc/yum.repos.d/zabbix-jp.repoファイルが存在すれば正常にインストールが行われています。

利用するZABBIXのバージョンの切替方法

zabbix-jp-releaseで提供されるyumリポジトリ登録ファルは、不用意にZABBIXのメジャーバージョンアップが行われないようにZABBIXのメジャーバージョンを手動で切り替える仕組みになっています

デフォルトではZABBIX 1.4系のリポジトリを利用するように設定されています。現在利用しているリポジトリのバージョンの確認や他のメジャーバージョンへの切替方法は以下を参照してください。

現在使用しているリポジトリのZABBIXバージョンの確認方法

以下のコマンドを実行します。

 # alternatives --display zabbix-jp-release

以下のように現在の設定が出力されます。下記の場合、ZABBIX 1.4のリポジトリが選択されています。

 zabbix-jp-release - ステータスは手動です。
 リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo を指しています。
 /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
 /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 30
 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 20
 現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo です。

使用するZABBIXのバージョンの切替方法

以下のコマンドを実行します。

 # alternatives --config zabbix-jp-release

以下のように表示されるため、利用したいZABBIXバージョンの行の先頭に表示されてる番号を入力してEnterを押します。

 3 プログラムがあり 'zabbix-jp-release' を提供します。
 
   選択       コマンド
 -----------------------------------------------
    1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
 *+ 2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
    3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
 
 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

yumのリポジトリのキャッシュを削除します。

 # yum clean all

yum searchを実行して選択したZABBIXのバージョンが表示されれば成功です。

 # yum search zabbix

zabbix-jp-release-*-2からアップデートする際の注意点

zabbix-jp-release-*.2にはバグが含まれており、以降のバージョンにアップグレードした場合にalternatives設定ファイルが削除されてしまいます。リポジトリ設定自体は削除されませんが、alternativesコマンドを利用したリポジトリ選択を行うことができません。

問題の詳細

正常なalternatives設定画面 (zabbix-jp-release-5-2から5-3へアップデートした画面の例)

 # alternatives --display zabbix-jp-release
 zabbix-jp-release -ステータスは自動です。
 リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo を指しています。
 /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
 /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20
 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 40
 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30
 現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo です。

問題が発生した場合のalternatives設定画面 (zabbix-jp-release-5-2から5-3へアップデートした画面の例)

 # alternatives --display zabbix-jp-release
 zabbix-jp-release - ステータスは手動です。
 リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo を指しています。
 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30
 現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo です。

解決方法

zabbix-jp-releaseをいちど削除し、再インストールを行ってください。

zabbix-jp-releaseを削除 (alternatives関連のエラーが出ます)

 # rpm -e zabbix-jp-release

再度インストール

 # rpm -ivh zabbix-jp-release-5-3.noarch.rpm

Zabbixのインストール(RPM編)

ZABBIX-JPではZabbix 2.0移行のRPMの作成は行いません。新規にZabbixをインストールする場合はZabbix SIAが配布するオフィシャルRPM/Debパッケージを利用ください。オフィシャルパッケージはこちらからダウンロードできます。yum/aptを利用したインストール方法はオフィシャルドキュメントを参考ください。

yumリポジトリの登録

ZABBIX-JPのリポジトリをyumに登録していない場合はZABBIX-JPのyumリポジトリ利用方法を参考にあらかじめ設定を行ってください。

Zabbix 1.8

RPMパッケージのインストール

以下のコマンドでZabbixパッケージをインストールします。

 # yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

MySQLデータベースサーバの設定

ZabbixサーバのデータベースとしてMySQLを利用する場合の設定

  • MySQLデータベースの設定ファイル /etc/my.cnf を以下のように設定
  •  [mysqld]
     ・・・デフォルトの設定は残す・・・
     
     default-character-set=utf8
     skip-character-set-client-handshake
     
     # mysqldセクションに含まれるよう、mysqld_safeよりも上に設定を書くこと
     [mysqld_safe]
     ・・・デフォルトの設定は残す・・・
    

    (※MySQL 5.5以降では「default-character-set=utf8」ではなく「character-set-server=utf8」を利用します。)

  • MySQLデータベースサーバの起動
  •  # service mysqld start
    

    (※ Xen 準仮想環境上では、TLSが無効なためにMySQL自体が起動しない場合があります。その場合には「skip-bdb」を /etc/my.cnf の [mysqld] セクションに追加するなどの回避方法があります。)

  • データベース「zabbix」を作成
  •  # mysqladmin create zabbix --default-character-set=utf8
    
  • データベースにzabbix接続ユーザ「zabbix」を作成
  •  # mysql -uroot
     mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
     mysql> flush privileges;
     mysql> quit
    
  • Zabbixの初期データベースをインポートします
  •  # mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.10/schema/mysql.sql
     # mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.10/data/data.sql
     # mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.10/data/images_mysql.sql
    

Webインターフェースの設定

  • Apache Webサーバの起動
  •  # service httpd start
    
  • ブラウザでZabbixサーバにアクセス
  •  http://zabbix-server-address/zabbix
    
  • インストール画面
  • ライセンスの確認画面
  • PHP設定の確認画面。すべてOk表示になるように設定を行う必要があります。

  • データベース接続設定を行います。「Test connection」を押してOkと表示されれば正常に接続が行えています。
  • Zabbixサーバのステータス確認用に利用する、Zabbixサーバのホスト名とポート番号を設定します
  • インストールのサマリ表示画面
  • Webインターフェースの設定ファイルを設置します。
  • (※SELinuxを有効にしている場合はファイルを自動的に保存できませんので、一度ダウンロードして、そのファイルをZABBIX-JPのRPMを利用している場合は、/etc/zabbixディレクトリに配置してください。ソースから導入された場合は、フロントエンド用PHPのファイルを配置したディレクトリの下にあるconfディレクトリに配置してください。)

  • Retryボタンを押し、設定が正常に保存されると以下の画面が表示されます
  • Webインタフェースのインストーラを終了します
  • 以下のログイン画面が表示されます。
  • デフォルトでは以下のアカウントを使ってWebインターフェースにログインすることができます。

    • ユーザ名: Admin
    • パスワード: zabbix

Zabbixサーバの設定

  • /etc/zabbix/zabbix_server.confの修正
  •  # Database host name
     # Default is localhost
     
     #DBHost=localhost
     
     # Database name
     # SQLite3 note: path to database file must be provided. DBUser and DBPassword are ignored.
     DBName=zabbix
     
     # Database user
     
     DBUser=zabbix     <- データベースユーザ名を設定
     
     # Database password
     # Comment this line if no password used
     
     DBPassword=zabbix     <- コメントアウトを外してデータベースパスワードを設定
    
  • Zabbixサーバの起動
  •  # service zabbix-server start
    

Zabbixエージェントの設定

  • /etc/zabbix/zabbix_agentd.confの修正
  •  Server=127.0.0.1     <- ZabbixサーバのIPアドレスを設定
     
     # Server port for sending active checks
     
     #ServerPort=10051
     
     # Unique hostname. Required for active checks.
     
     Hostname=Zabbix Server     <- Webインターフェースのホスト設定で登録するホスト名と同じ値を設定
     
     # Listen port. Default is 10050
     
     #ListenPort=10050
     
     # IP address to bind agent
     # If missing, bind to all available IPs
     
     ListenIP=127.0.0.1     <- ListenするIPインターフェースを設定
    
  • Zabbixエージェントの起動
  •  # service zabbix-agent start
    

Zabbixのアップグレード

Zabbixのバージョン表記と互換性

Zabbixのバージョンははバージョン表記のうちZ.Y.ZのZ.Yまでがメジャーバージョン、Zがマイナーバージョンを表します。1.6、1.8などがメジャーバージョン、1.8.5、1.8.10の3つ目の数字がマイナーバージョンです。

Zabbixサーバはエージェントに対して下方互換性を持つように開発されています。そのためZabbixサーバをアップグレードするために、各監視対象にインストールされているエージェントをアップグレードする必要はありません。実運用にあたり、先にZabbixサーバのみをアッップグレードしておき、後から随時エージェントをアップグレードしていくことができます。

ただし、エージェントのバージョンに依存する監視機能については、エージェントのアップグレードを行わないと新機能に対応することはできません。(例えば、1.8から追加されたログ監視用のlogrtキーを利用するためにはZabbixサーバ、エージェントともに1.8以上を利用する必要があります。)

マイナーバージョン間のアップグレード

1.8 -> 1.8.10のようにマイナーバージョン間のアップグレードの場合はバイナリを置き換えるのみでアップグレードが完了します。ZABBIX-JPのyumリポジトリを利用している場合は以下の手順でアップグレードを行ってください。

  • Zabbixサーバ、エージェントを停止
  • # service zabbix-server stop
    # service zabbix-agent stop
    
  • バイナリのアップグレード
  • # yum update zabbix
    
  • Zabbixサーバ、エージェントを起動
  • # service zabbix-server start
    # service zabbix-agent start
    

メジャーバージョン間のアップグレード(Zabbix 1.6 -> 1.8)

メジャーバージョン間のアップグレードにはデータベースのスキーマ変更が必要です。スキーマ変更用のSQLファイルはRPMやソースコードに付属するため簡単に行えますが、事前にデータベースのバックアップを取得したり、SQL適用の手順が必要なためマイナーバージョン間のアップグレードより手間がかかります。アップグレードに際しては事前の検証などを行われることを推奨します。

Zabbixサーバ、エージェントを停止

動いているZabbixを止めます。

# service zabbix-server stop
# service zabbix-agent stop

データベースのバックアップを取得

念のために以下のコマンドでzabbixデータベース全体のバックアップを取得しておきます。長期間のデータが保存されている場合、この処理には時間がかかることがあります。以下はMySQLを使用している場合です。

# mysqldump --opt --no-autocommit -uroot -p -B zabbixのデータベース名 > zabbix.dump

yumリポジトリを1.8に切り替える

以下のようにコマンドを実行し、利用するリポジトリを1.6から1.8に切り替えます

# alternatives --config zabbix-jp-release

4 プログラムがあり 'zabbix-jp-release' を提供します。
 
   選択       コマンド
 -----------------------------------------------
    1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
    2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
 *+ 3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
    4           /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo
 
 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 4    <-- 4を入力して1.8のリポジトリを選択
 

RPMのアップグレード

以下のコマンドを実行しRPMをアップグレードします。

# yum clean all
# yum update zabbix

データベースのスキーマを変更

/usr/share/doc/zabbix-server-1.8.10/dbpatches/1.8/使用しているDBに移動し、patch.sqlを実行します。以下はMySQLを使用している場合です。

 mysql -uアカウント -p zabbixのデータベース名 < patch.sql

パッチの実行時にエラーが出た場合、取得しておいたデータベースのバックアップを戻してから再度試してみてください。ページ末尾の「アップグレード時にエラーが出た場合」もご参考ください。

設定ファイルの修正

ZABBIX 1.6とZabbix 1.8では設定ファイルの表記が異なっています。動作に最低限必要な設定は変わっていませんので前のバージョンの設定ファイルを見ながら新しい設定ファイルします。以下は最低限の設定が必要です。(MySQLを使用していた場合)

  • zabbix_server.conf
  •  LogFile=ログファイルの出力先
     PidFile=PIDファイルの出力先
     DBName=データベース名
     DBUser=データベースの接続アカウント
     DBPassword=データベースの接続パスワード
     ListenIP=ZabbixサーバのIPアドレス
    
  • zabbix_agentd.conf
  •  PidFile=PIDファイルの出力先
     LogFile=ログファイルの出力先
     Server=ZabbixサーバのIPアドレス
     Hostname=(フロントエンドに登録する)ホスト名
     ListenIP=ZabbixエージェントのIPアドレス
    

アップグレード時にエラーが出た場合

いくつかのバージョンの組み合わせでエラーが出ることが確認されています。エラーが発生した場合は以下の情報も参考にしてください。

1.6系を1.8.3以前の1.8系に移行する場合

以下のSQLを実行します。

 alter table dhosts drop index dhosts_1;
 alter table dservices drop index dservices_1;
 alter table httptest drop index httptest_2;
 alter table httptest drop index httptest_3;
 alter table history_log drop index history_log_2;
 alter table history_text drop index history_text_2;
 alter table actions drop index actions_1;
 alter table escalations drop index escalations_2;
 alter table graphs_items drop index graphs_items_1;
 alter table graphs_items drop index graphs_items_2;
 alter table services drop index services_1;
パッチ実行時に「Duplicate key name 'actions_1'」がでた場合

※:2011/06/26時点では1.6.8->1.8.3、1.6.9->1.8.5でエラーの発生が確認されています。

 [xxxxxxxx]# cat patch.sql | mysql -uXXXX -pXXXX zabbix
 ERROR 1061 (42000) at line 1: Duplicate key name 'actions_1'

対策:パッチ実施前に下記の実行が必要です。

MySQLの場合

 alter table dhosts drop index dhosts_1;
 alter table dservices drop index dservices_1;
 alter table httptest drop index httptest_2;
 alter table httptest drop index httptest_3;
 alter table history_log drop index history_log_2;
 alter table history_text drop index history_text_2;
 alter table actions drop index actions_1;
 alter table escalations drop index escalations_2;
 alter table graphs_items drop index graphs_items_1;
 alter table graphs_items drop index graphs_items_2;
 alter table services drop index services_1;

Oracleの場合

 drop index dhosts_1;
 drop index dservices_1;
 drop index httptest_2;
 drop index httptest_3;
 drop index history_log_2;
 drop index history_text_2;
 drop index actions_1;
 drop index escalations_2;
 drop index graphs_items_1;
 drop index graphs_items_2;
 drop index services_1; 

監視テンプレート

Zabbixはアイテム、トリガー、グラフの設定をテンプレートとして管理し、テンプレートをホストに適用することで監視設定を容易に管理することができます。

テンプレートはXML形式のファイルでエクスポート/インポートすることができるようになっているため、バックアップの取得や他のZabbixサーバへの再利用したり、インターネット上で公開されているテンプレートを利用して設定を簡略化することができます。

ここではインターネット上で公開されているテンプレートやテンプレートに関連する情報をまとめています。

Zabbix SIAのテンプレートページ

Zabbix SIAのWIki上でネットワーク機器、OS、アプリケーションの様々なテンプレートが公開されています。

ZABBIX-JPのテンプレート

ZABBIX-JPではいくつかのOSとアプリケーション用のテンプレートを公開しています。

コミュニティ内のテンプレート

SNMPテンプレートジェネレータ

snmpwalkの出力結果からZabbixのテンプレートを作成するためのperlスクリプトです。一般的なMIBや一部の特定の機器のMIB情報からアイテム、トリガー、グラフの設定が含まれるテンプレートを生成してくれます。

詳細はZabbix SIAのWikiページを参照してください。

アプリケーション監視

PostgreSQL監視

MySQL監視

データベース監視

Oracle監視

VMware ESX監視

Hadoop監視

Javaアプリケーション監視

障害通知のカスタマイズ

Zabbixは障害を検知したときの通知として、以下の方法を選択することができます。

EメールやSMS、Jabberチャットメッセージはそれぞれの方法でテキストメッセージを送信します。これらはZabbixサーバの標準機能として搭載されているため、Webインターフェースから設定を行うのみで利用できます。

Zabbixエージェント上でコマンド実行する機能はリモートコマンドと呼び、Webインタフェースで設定したコマンド文字列がZabbixサーバからZabbixエージェントに渡され、Zabbixエージェントがコマンド実行します。

障害発生時にZabbixサーバ上でコマンドを実行する機能をアラートスクリプトと呼び、Zabbixサーバから指定した情報を引数に渡してOS上の任意のコマンドを実行することができます。独自に作成したスクリプトも実行できるため、障害発生時に様々なことを実行させることができます。ここではアラートスクリプトを利用した通知方法の例としていくつかのスクリプトを紹介します。

日本語アラートメールの送信方法

ZabbixサーバはアラーとメールをUTF-8で送信します。最近のメールクライアントではUTF-8のメールも問題なく扱えますが、古い携帯電話などはUTF-8のメールを適切に表示できずに文字化けしてしまう場合があります。

また、ZabbixサーバはSMTP Auth認証に対応していないため、標準のメール送信機能では認証が必要なメールサーバを利用することができません。

ここでは、ZABBIXのカスタムスクリプト機能を利用して、スクリプトで適切な情報の付加とエンコード処理を行ってメールを送信したり、SNMP Auth認証に対応するためのスクリプトを紹介します。

なお、スクリプトを利用した場合はZabbixサーバがメール送信のたびに外部コマンドとしてスクリプトを呼び出して実行するため、標準のメール送信機能よりは実行に負荷がかかります。特に文字化けなどの問題がない場合はZabbixサーバ標準のメール送信機能を利用されることを推奨します。

Zabbixサーバ以外のサーバ上で動作しているSMTPサーバを利用する場合 (認証が必要なSMTPサーバにも対応)

スクリプトファイルのダウンロードと設置

  • ZABBIX-JPがgithub上に公開している通知用のプラグインのURL https://github.com/zabbix-jp/plugins にアクセスして、右上のダウンロードボタンをクリックしてダウンロードします。Windowsであれば「Download ZIP」というボタンになっていてクリックすると「plugins-master.zip」というファイル名でダウンロードできると思います。
  • /tmp/ などの任意のディレクトリにファイルを解凍します。
  •  # cd /tmp/
     # unzip plugins-master.zip
    
  • ZABBIXサーバにスクリプトを置くディレクトリを作成します。
  •  # mkdir /var/lib/zabbix
    
  • 解凍したファイル内の plugins-master/notification/sendmessage-php/ を /var/lib/zabbix/ にコピーします。
  •  # cp -r plugins-master/notification/sendmessage-php/ /var/lib/zabbix/
     # cd /var/lib/zabbix/
    
  • 実行可能なパーミッションを付与します
  •  # chmod 755 /var/lib/zabbix/sendmessage_smtp_php/sendmessage_smtp_php.sh
    
  • /var/lib/zabbix/sendmessage_smtp_php/sendmessage_smtp_php.sh に設定値を書き込みます
  • 設定項目設定値
    $MAIL_FROM = "zabbix@localhost";「zabbix@localhost」の箇所に送信元にするメールアドレスを記述
    $MAIL_FROMNAME = "Zabbix 障害通知";「Zabbix 障害通知」の箇所に送信元の表示名を記述
    $MAIL_SMTP_HOST = 'smtp.example.com:25';「smtp.example.com:25」の箇所に「SMTPサーバ:ポート」の形式で記述
    $MAIL_SMTP_USER = 'XXXXXXXX';XXXXXXXX の箇所にユーザ名を記述
    $MAIL_SMTP_PASS = 'XXXXXXXX';XXXXXXXX の箇所にパスワードを記述

カスタムスクリプトの登録

設置した sendmessage_smtp_php/sendmessage_smtp_php.sh をカスタムスクリプトに登録します

  • [管理] → [メディアタイプ]をクリックします
  • 右上の「メディアタイプの作成」をクリックします
  • 次のように設定し、「保存」をクリックします
  • 設定項目設定値
    Descriptionsendmessage_smtp_php.sh
    TypeScript
    Script namesendmessage_smtp_php/sendmessage_smtp_php.sh

ユーザのメディア設定に登録

先に登録したカスタムスクリプトをユーザのMediaに登録します。

  • [管理] → [ユーザ]をクリックします
  • リストからカスタムスクリプトを登録したいユーザをクリックします
  • Media設定の「追加」をクリックします
  • 次のように設定し、「追加」をクリックします
  • 設定項目設定値
    Typesendmessage_smtp_php.sh
    Send to送信先メールアドレス
  • 「保存」をクリックします

Zabbixサーバ上のSMTPサーバを利用する場合

スクリプトファイルのダウンロードと設置

  • ダウンロードのページから、php/perl版のいずれかのsendmessage_XXX.sh.gzをダウンロードします
  • ZABBIXサーバにスクリプトを置くディレクトリを作成します。
  •  # mkdir /var/lib/zabbix
    
  • ダウンロードしたファイルを作成したディレクトリに置き、解凍します
  •  # gzip -d /var/lib/zabbix/sendmessage_XXX.sh.gz
    
  • 実行可能なパーミッションを付与します
  •  # chmod 755 /var/lib/zabbix/sendmessage_XXX.sh
    

カスタムスクリプトの登録

設置したsendmessage_XXX.shをカスタムスクリプトに登録します

  • [Administration] → [Media Types]をクリックします
  • 右上の「Create Media Type」をクリックします
  • 次のように設定し、「Save」をクリックします
  • 設定項目設定値
    Descriptionsendmessage_XXX.sh
    TypeScript
    Script namesendmessage_XXX.sh

ユーザのメディア設定に登録

先に登録したカスタムスクリプトをユーザのMediaに登録します。

  • [Administration] → [Users]をクリックします
  • リストからカスタムスクリプトを登録したいユーザをクリックします
  • Media設定の「Add」をクリックします
  • 次のように設定し、「Add」をクリックします
  • 設定項目設定値
    Typesendmessage_XXX.sh
    Send to送信先メールアドレス
  • 「Save」をクリックします

Zabbix関連ツール

Zabbix関連のツール

Zabbix API関連

通知用ツール

モバイルアプリケーション

モバイル向けWebインターフェース

iPhone用アプリケーション

Android用アプリケーション

その他