RIGHT:[[フリーソフトウェアのコンパイル]]
#contents
*CentOS 5.5 [#hf9d2bf4]
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.
と出るが無視していいのか?
その他,
-依存パッケージの追加インストール
-ZABBIX-JP の GPG キーのインポート
を許可を聞かれるが,"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 欄の[アイテム]から必要の無いものの
[ステータス]を[無効]にする.
ていうか
->リストの対象サーバの[アイテム]から必要の無いものの[ステータス]を[無効]にする.
->リストの対象サーバの[トリガ]からも必要の無いものの[ステータス]を[無効]にする.
-FTP server is running
-IMAP server is running
-News server is running
-Number of running processes zabbix_server(クライアントのみ)
-Number of running processes apache(DB サーバのみ)
-Number of running processes inetd
-Number of running processes mysqld(クライアントのみ)
-POP3 server is running
-WEB(HTTP) server is running (DB サーバのみ)
その他,エラー[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 ではほぼ大丈夫だとは思うが...)
http://www.zabbix.jp/modules/bwiki/index.php?%C6%FC%CB%DC%B8%EC%A5%A2%A5%E9%A1%BC%A5%C8%A5%E1%A1%BC%A5%EB%A4%CE%C1%F7%BF%AE%CA%FD%CB%A1
以下の例は SMTP サーバを利用する場合.
自ホストの SMTP サーバを利用する場合は別のファイルを用いる
http://www.zabbix.jp/modules/bwiki/index.php?%C6%FC%CB%DC%B8%EC%A5%A2%A5%E9%A1%BC%A5%C8%A5%E1%A1%BC%A5%EB%A4%CE%C1%F7%BF%AE%CA%FD%CB%A1#content_1_11
にある 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) ユーザとグループの設定
-ゲストユーザを無効にする
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザグループ]
Guests の[ユーザの状態]を[無効]にする
-管理者のパスワード
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザ]
Admin
[パスワード変更]
-管理者の E-mail アドレス設定
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザ]
Admin
メディアの[追加]
タイプ: 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}]
とする.
*意図したとおりに動かない [#ec166487]
Zabbix エージェントタイプのアイテムで,
イベントが複数同時に起こる(というか zabbix_agentd 同時に
障害が起こる)とアクションが実行されない.
たとえば,ネットワークケーブルを引っこ抜いたとき,
1つののアクションも実行されない.
TCP/25, TCP/80 を同時に REJECT したときなどは動くので,
zabbix_agentd と通信できるかどうかの相関があるようだ.
(zabbix_agentd と通信できないとき [イベント] の[ステータス]欄が
[不明]になる)
-> Zabbix 1.8.4 で Bug fix されている?
シンプルチェックで作成した ICMP は大丈夫そう.
*Twitter へ投稿 [#nbdd0350]
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];
------
*TeraStation のアレイサイズ [#v2215997]
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
------
*Solaris10 にエージェントをインストールする [#dd6c762f]
**エージェントインストール [#rf909586]
$ 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
**エージェントの設定 [#fb5d7e59]
/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 アドレスだけ変更しておけばいい
**SMF の設定 [#b1756b6b]
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