CentOS 5.5 に Zabbix 1.8 日本語版をインストールする. http://www.zabbix.jp/
参考 URL http://www.zabbix.jp/modules/bwiki/index.php?ZABBIX%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
(1) ZABBIX-JPのyumリポジトリ登録用 RPM をインストール
# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-release-5-3.noarch.rpm
(2) 利用するZABBIXのバージョンの切替
現在の ZABBIX バージョンを確認
# /usr/sbin/alternatives --display zabbix-jp-release
バージョン切り替え
# /usr/sbin/alternatives --config zabbix-jp-release Selection Command ----------------------------------------------- 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 to keep the current selection[+], or type selection number: 4
yumのリポジトリのキャッシュを削除します.
# yum clean all
yum searchを実行して選択したZABBIXのバージョンが表示されれば成功です.
# yum search zabbix
(3) Zabbix インストール
# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql
クライアントは
# yum install zabbix-agent
途中
No package zabbix-web-mysql available.
と出るが無視していいのか?
その他,
を許可を聞かれるが,"y"と答える.
(4) MySQL の設定
/etc/my.cnf
------------------------------------------------------------------- [mysqld] ・・・デフォルトの設定は残す・・・ default-character-set=utf8 skip-character-set-client-handshake # mysqldセクションに含まれるよう、mysqld_safeよりも上に設定を書くこと [mysqld_safe] ・・・デフォルトの設定は残す・・・ -------------------------------------------------------------------
MySQLデータベースサーバの起動
# service mysqld start
root ユーザのパスワード設定
# mysqladmin -u root password 'new-password'
ZABBIX データベース作成
# mysqladmin -p create zabbix --default-character-set=utf8
データベースにZABBIX接続ユーザ「zabbix」を作成
# mysql -u root -p mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZABBIX_PASSWORD'; mysql> flush privileges; mysql> quit
ちなみに,zabbix ユーザのパスワード設定
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 30 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SET PASSWORD FOR zabbix@localhost=password('ZABBIX_PASSWORD'); Query OK, 0 rows affected (0.03 sec) mysql> quit
ZABBIXの初期データベースをインポート
# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/schema/mysql.sql # mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/data/data.sql # mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/data/images_mysql.sql
(5) Web インタフェイスの設定
Apache Webサーバの起動
# service httpd start
インストーラを起動するためにWebインターフェースの設定ファイルを削除します
# rm /etc/zabbix/zabbix.conf.php
ブラウザでZABBIXサーバにアクセス
http://zabbix-server-address/zabbix
ここからはブラウザでの設定
1. Introduction
[Next]
2. Licence Agreement
[v] I agree [Next]
3. Check of pre-requisites すべて Ok となっていることを確認
[Next]
4. Configure DB connection
Type: MySQL (Default) Host: localhost (Default) Port: 0 (Default) Name: zabbix (Default) User: zabbix Password: なし
[Test connection] を押してOkと表示されれば正常に接続が行えている.
[Next]
5. Zabbix server details
Host: localhost (Default) Port: 10051 (Default)
6. Pre-Installation Summary
確認して [Next]
7. Install /etc/zabbix ディレクトリを一時的に apache から書き込めるようにする
# chmod 777 /etc/zabbix
で [Retry] を押し,
/etc/zabbix ディレクトリのパーミッションを戻す.
# chmod 755 /etc/zabbix
で [Next]
8. Finish
[Finish]
9. デフォルトアカウントでログイン
ユーザ名: admin パスワード: zabbix
(6) Zabbix サーバデーモンの設定
1. /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 <- アンコメントしてデータベースパスワードを設定 # Connect to MySQL using Unix socket? DBSocket=/var/lib/mysql/mysql.sock <- アンコメント
2. ZABBIXサーバの起動
# service zabbix-server start
稼働が確認できたら
# chkconfig zabbix-server on
(7) ZABBIXエージェントの設定
1. /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インターフェースを設定
1.5 クライアントでは /etc/zabbix/zabbix_agent.conf の
Server=127.0.0.1 <- ZABBIXサーバのIPアドレスを設定
も変えておく.
2. ZABBIXエージェントの起動
# service zabbix-agent start
稼働が確認できたら
# chkconfig zabbix-agent on
3. クライアントは iptables の穴を開ける
(8) 監視ホストの登録 -> の前にテンプレートを整備する方がいい.
まずは自ホスト [設定]->[ホスト]->[Zabbix server]
名前: Zabbix server グループ: Zabbix servers その他のグループ(所属していないグループ): Discoverd hosts Linux servers Templates Windows servers 新規グループ作成: 空白 DNS名: centos5.example.jp IPアドレス: 127.0.0.1 接続方法: IPアドレス Zabbix エージェントのポート: 10050 プロキシによる監視: プロキシなし ステータス: 有効 <- デフォルトでは[無効]となっている IPMI を使用: [ ] -> チェックを入れると IPMI のアドレス等を聞いてくる
次にクライアント
[設定]->[ホスト] [ホストの作成] 名前: serverc グループ: Linux servers DNS 名: ____ IPアドレス: 192.168.1.10 接続方法: IPアドレス Zabbix エージェントのポート: 10050 プロキシによる監視: プロキシなし ステータス: 有効 <- デフォルトでは[無効]となっている IPMI を使用: [ ] -> チェックを入れると IPMI のアドレス等を聞いてくる
リンクしているテンプレート
[追加]->[v]Template_Linux
[保存]
(9) 監視サービスの調整 [設定]->[ホスト]
リストから対象サーバの[アプリケーション]->Template_Linux:Services 欄の[アイテム]から必要の無いものの
[ステータス]を[無効]にする.
ていうか
その他,エラー[x]となっているものも無効にしておくほうがいいかも.
(10)Apache サービス監視
参考サイト http://www.zabbix.jp/modules/bwiki/index.php?Apache%20Server%20Status%20%B4%C6%BB%EB%CA%FD%CB%A1
(11)ネットワークマップの作成(ネットワークトポロジ) [設定]->[マップ] [local network] で編集する
(12) データの保存期間
[管理]->[一般設定] アクションの保存期間: 365日 イベントの保存期間: 365日
(13) メール送信の設定
[管理]->[メディアタイプ] メール欄の[Email] 説明: Email タイプ: メール SMTP サーバ: mailhost.example.jp SMTP helo: centos5.examle.jp 送信元メールアドレス: hoge@exmaple.jp
(13.5)有事にメールを飛ばす設定
[設定]->[アクション]->[アクションの作成] アクション 名前: イベントトリガー発生および解消 イベントソース: トリガー エスカレーションを有効: [ ] デフォルトの件名: {TRIGGER.NAME}: {STATUS} (例: [{HOSTNAME}]{TRIGGER.NAME}: {STATUS}) デフォルトメッセージ: {TRIGGER.NAME}: {STATUS} もっといい文があればそれを書く リカバリーメッセージ: [v] リカバリの件名: {TRIGGER.NAME}: {STATUS} (例: [{HOSTNAME}]{TRIGGER.NAME}: {STATUS}) リカバリメッセージ: {TRIGGER.NAME}: {STATUS} もっといい文があればそれを書く ステータス: 有効
アクションのコンディション の[新規] トリガーの深刻度 >= 軽度の障害 ->[追加]
アクションのオペレーション の[新規] オペレーションのタイプ: メッセージ送信 メッセージの送信先: ユーザグループ Zabbix administrators 次のメディアのみ使用: Email デフォルトのメッセージ: [v] ->[追加]
日本語メールを送る場合は次のサイトを参考にして設定を加える必要があるかも (デフォルトのままだと UTF-8 でメールが送られる. とはいっても Subject は BASE64 でエンコードされているので 最近の MUA ではほぼ大丈夫だとは思うが...)
以下の例は SMTP サーバを利用する場合. 自ホストの SMTP サーバを利用する場合は別のファイルを用いる
にある sendmessage_php.sh と sendmessage.ini をダウンロードして使うことかな
# wget http://www.zabbix.jp/files/sendmessage_smtp_php.tar.gz
ZABBIXサーバにスクリプトを置くディレクトリを作成します。
# mkdir /etc/zabbix/alertscripts
ダウンロードしたファイルを作成したディレクトリに置き、解凍します
# cd /etc/zabbix/alertscripts # tar xvzf sendmessage_smtp_php.tar.gz
実行可能なパーミッションを付与します
# chmod 755 /etc/zabbix/alertscripts/sendmessage_smtp_php/sendmessage_smtp_php.sh
/etc/zabbix/alertscripts/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 の箇所にユーザ名を記述 (SMTP_AUTH を使わない場合は '') $MAIL_SMTP_PASS = 'XXXXXXXX'; XXXXXXXX の箇所にパスワードを記述('')
$mailer->SMTPAuth = false; ------------------------------------------------
設置した sendmessage_smtp_php/sendmessage_smtp_php.sh を カスタムスクリプトに登録します
1. [管理] → [メディアタイプ]をクリックします 2. 右上の「メディアタイプの作成」をクリックします 3. 次のように設定し、「保存」をクリックします 説明: sendmessage_smtp_php.sh タイプ: スクリプト スクリプト名: sendmessage_smtp_php/sendmessage_smtp_php.sh
先に登録したカスタムスクリプトをユーザのメディアに登録します。
1. [管理] → [ユーザ]をクリックします 1.5 プルダウンメニューを [ユーザ] にする. 2. リストからカスタムスクリプトを登録したいユーザをクリックします 3. [メディア]設定の「追加」をクリックします 4. 次のように設定し、「追加」をクリックします タイプ: sendmessage_smtp_php.sh 送信先: 送信先メールアドレス その他はデフォルトのまま 5. 「保存」をクリックします
(14) ユーザとグループの設定
タイプ: Email 送信先: email アドレス
(15) PostgreSQL のプロセス監視 [設定]->[ホスト] ->[アイテム] [Template_Linux:Number of running processes mysqld]を 複製し [Number of running processes postmaster] とする. [設定]->[ホスト] ->[トリガー] [Template_Linux:Mysql is not running on {HOSTNAME}]を複製し, [PostgreSQL is not running on {HOSTNAME}] とする.
Zabbix エージェントタイプのアイテムで, イベントが複数同時に起こる(というか zabbix_agentd 同時に 障害が起こる)とアクションが実行されない.
たとえば,ネットワークケーブルを引っこ抜いたとき, 1つののアクションも実行されない.
TCP/25, TCP/80 を同時に REJECT したときなどは動くので, zabbix_agentd と通信できるかどうかの相関があるようだ. (zabbix_agentd と通信できないとき [イベント] の[ステータス]欄が [不明]になる)
シンプルチェックで作成した ICMP は大丈夫そう.
Python ->挫折 https://github.com/BlueSkyDetector/code-snippet/tree/master/py-twitter-zabbix/
Perl http://search.cpan.org/dist/Net-Twitter-Lite/
いくつか自動的にモジュールがインストールされる.
で以下のスクリプト. http://tech.bayashi.jp/archives/entry/perl/2010/003016.html http://nabetama.com/blog/?p=241
$MAIL_TO = $argv[1]; $MAIL_SUBJECT = $argv[2]; $MAIL_MESSAGE = $argv[3];
SNMPで
HOST-RESOURCES-MIB::hrStorageSize.33 = INTEGER: 1087490592 = アレイサイズ .1.3.6.1.2.1.25.2.3.1.5.33 = INTEGER: 1087490592 * 4 * 1024 kbyte
HOST-RESOURCES-MIB::hrStorageUsed.33 = INTEGER: 1400 = アレイ使用量 .1.3.6.1.2.1.25.2.3.1.6.33 = INTEGER: 1400 * 4 * 1024 kbyte
$ wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.4.tar.gz $ gtar xvzf $ zabbix-1.8.4 # useradd -u 110 -d /dev/null -s /bin/false zabbix # # useradd -c "Zabbix User" -d /home/zabbix -m -s /bin/ksh -g zabbix zabbix $ ./configure --enable-agent LDFLAGS="-R /usr/local/lib" (なぜか /usr/local/lib にあるランタムライブラリを呼んでくれない) $ make # make install
/etc/services に以下の 2行を追加
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
(*) zabbix_agentd ではなく zabbix_agent を使う場合だけ /etc/inetd.conf に以下の行を追加.
zabbix_agent stream tcp nowait.3600 zabbix /usr/local/bin/zabbix_agent
# mkdir /etc/zabbix # cp misc/conf/zabbix_agentd.conf /etc/zabbix/ # cd /etc/zabbix # vi zabbix_agentd.conf
最低 Zabbix サーバの IP アドレスだけ変更しておけばいい
http://www.zabbix.com/wiki/howto/monitor/os/solaris/solarissmf を参考に
# vi /var/svc/manifest/site/zabbix-agent.xml <?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type="manifest" name="zabbix-agent"> <service name="application/zabbix-agent" type="service" version="5"> <create_default_instance enabled="false"/> <single_instance/> <dependency name="fs-local" grouping="require_all" restart_on="none" type="service"> <service_fmri value="svc:/system/filesystem/local"/> </dependency> <exec_method type="method" name="start" exec="/usr/local/sbin/zabbix_agentd" timeout_seconds="60"/> <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60"/> <stability value="Unstable"/> <template> <common_name> <loctext xml:lang="C">Zabbix Agent</loctext> </common_name> </template> </service> </service_bundle> # svccfg import /var/svc/manifest/site/zabbix-agent.xml # svcadm enable zabbix-agent