ZABBIX設定・メール送信内容をカスタマイズ

FreeBSD, zabbix No Comments

 zabbixで監視しているサーバでサービスがダウンしたりした場合、E-Mailでメッセージが送信できます。が、標準のメッセージは分かりづらいです。また細かく細かく設定できますし日本語でメールを送信する方法も雑誌で紹介されていますがdoraken的には、いつ、どのような時に、どんな場所でメールを受け取るか分かりませんので、どんな環境でもメールの内容が確認できるように英語でメッセージを受け取りたいと考えてました。

 下記設定はサービスがダウンしたときには「サービス名 server is down on [サーバ名]: Failure Report!」、回復したときには「Trouble retuen Report: サービス名 server is down on サーバ名」という件名でメールを送信します。

サービスがダウンした時のメール設定
send-down-message

サービスが回復した時のメール設定
send-up-message

注意点としてはNewConditionにてターゲットを設定したときに「追加」ボタンをおして設定を確定することでしょうか?あと、E-mailアドレスの設定などありますがそれらはまた今度。

Linuxでもzabbix (Server編)

Linux, zabbix No Comments

最近はLinuxでの仕事が増えてきて、自宅のサーバは全然かまってあげてません。最低限のメンテナンス位かなぁ。FreeBSD6.4-RELEASEも公開されているから色々と試したいし、シェルスプリクトもいくつか公開したいし、ページデザインも見直してPC系のコラムが書けるようにしたいし(インストールの紹介は新しくページを作ってHTMLで見やすくしたいなぁ、シェルスプリクトなページも作りたいし。)、でも時間がない上に古いノートを(液晶に2本の筋がはいってる)がんばって使っている今の現状ではいかんともしがたいのです。

とまぁ、愚痴はここまで、さくさくとインストールを行っていきましょう(笑)。 基本的にはFreeBSDのportsを用いたインストールと大きく変わりません。またいくつかのディストリビューションではrpmなどのバイナリが提供されています。ただ仕事で利用したRed Hat Enterprise Linux 5では残念ながらrpm提供されていなかったためソースコードからインストールを行います。事前に

・mysql5.0
・php
・apache
・net-snmp-devel(SNMPを利用する場合)

のインストールを行っておいてください。rpmコマンドを利用するよりもyumを利用したほうが依存関係をしらべて必要なパッケージも同時インストールされるので簡単です。

例:)yum -y install net-snmp-devel

では、さくさくとインストールを進めていきましょう。Agent編と同様に作業用のディレクトリは 【/usr/local/src】 とします。インストール時にrootになるのが正しいとは思いますが、今回も最初からrooユーザで作業します。またインストールを行うバージョンは1.4.6です。(なるべく最新のバージョンを利用しましょう) apacheのDocumentrootは「/var/www/html」とします。zabbixフォルダを作成して「http://IPアドレス/zabbix」でデータが閲覧できるように設定します。

■zabbix_serverのインストール
# cd /usr/local/src/
# wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.4.6.tar.gz
# tar xvzf zabbix-1.4.6.tar.gz
# cd zabbix-1.4.6
# ./configure –enable-server –with-mysql –with-net-snmp
# make
# make install

次にzabbixユーザとグループをシステムに追加しましょう。

# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix

ここからmysqlにデータベースを追加して、php.iniなどを調整します。

■mysqlにデータベースを作成
# mysql -u root -p PASSWORD
# create database zabbix

■テーブルを作成
# cd /usr/local/src/zabbix-1.4.6/create/schema/
# cat mysql.sql | mysql -u root zabbix
# cd ../data/
# cat data.sql | mysql -u root zabbix
# cat images_mysql.sql | mysql -u root zabbix

■php.iniの設定
/etc/php.ini
max_execution_time = 300
date.timezone=”Asia/Tokyo”

■zabbixの設定前準備
# mkdir /etc/zabbix
# cp /usr/local/src/zabbix-1.4.6/misc/conf/zabbix_server.conf /etc/zabbix/
# mkdir /var/run/zabbix
# mkdir /var/log/zabbix
# chown zabbix:zabbix /var/run/zabbix
# chown zabbix:zabbix /var/log/zabbix
# mkdir /var/www/html/zabbix
# cp -a /usr/local/src/zabbix-1.4.6/frontends/php/* /var/www/html/zabbix/
# chown -R root:root /var/www/html/zabbix

■zabbixサーバの設定
# vi /etc/zabbix/zabbix_server.conf
~~~変更内容~~~
PidFile=/var/run/zabbix/zabbix_server.pid
LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix        <- 適宜変更のこと
DBUser=zabbix        <- 適宜変更のこと
DBPassword=zabbix    <- 適宜変更のこと
~~~~~~~~~~

 

最後に起動ファイルを準備します。fedora用のファイルがありますのでAgent編と同様に流用します。

■自動起動スプリクトの修正
# cp /usr/local/src/zabbix-1.4.6/misc/init.d/fedora/core/zabbix_server /etc/init.d/
# vi /etc/init.d/zabbix_agentd

~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
FULLPATH=$BASEDIR/sbin/$BINARY_NAME
BASEDIR=/usr/local
PIDFILE=/var/run/zabbix/$BINARY_NAME.pid
~~~~~~~~~~~~~~~~~~~~~~~~~~

以上で設定は完了しました。chkconfigなどで起動時に自動起動されるように設定して起動確認を行いましょう。

Linuxでもzabbix (Agent編)

Linux, zabbix No Comments

 しばらく忙しくて更新が出来ていませんでしたが、やっと時間が取れたので忘れないうちにLinuxでzabbixのインストール方法を紹介したいと思います。

 自分が思うに基本的にLinuxでのソフトウェアインストールはrpm等のFreeBSDでいうPackagesを利用してWindowsアップデートのような自動アップデートツールを利用してアップデートを行い、rpmで用意されていないツールを利用する場合にソースコードからインストールして運用する、が正しい運用方法のような気がしています。ですので各ディストリビューションでrpm等が提供されている場合はそちらを利用してください。

今回はRed Hat Enterprise Linux 5にてソースコードよりインストールを行います。作業用のディレクトリは 【/usr/local/src】 です。インストール時にrootになるのが正しいとは思いますが、今回は最初からrooユーザで作業します。下記の通り、一気にコンパイル&&インストールを行いましょう。この記事を書いている時の最新バージョンである1.4.6を利用します。適時バージョンは確認を行ってください。(※しかし最近のdorakenの仕事はRed Hatを利用することが多くなってきました)

# cd /usr/local/src/
# wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.4.6.tar.gz
# tar xvzf zabbix-1.4.6.tar.gz
# cd zabbix-1.4.6
# ./configure –enable-agent
# make
# make install

以上でエージェントは 【/usr/local/sbin】 にインストールされました。ここからは設定ファイルおよび起動ファイルを修正していきます。基本的にFreeBSDで設定したとおりですが「zabbix」ユーザとグループを作成すること、起動ファイルを一部修正することが必要です。

最初にzabbixユーザとグループをシステムに追加しましょう。

groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

次に 【zabbix_agentd.conf】 を環境に合わせて修正していきます。zabbix_agentd.confのサンプルファイルをコピーして適宜修正していくこととします。

mkdir /etc/zabbix
cp /usr/local/src/zabbix-1.4.6/misc/conf/zabbix_agentd.conf /etc/zabbix/
vi /etc/zabbix/zabbix_agentd.conf

 ~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
# ServerのIPを編集します。
Server=xx.xx.xx.xx
(※注意事項:この時zabbixサーバーのzabbix_server.confに記述したIPと同じIPを記述しないとうまくデータ取得ができません。。)

# エージェントを動作させるサーバのHostnameを記載します。
Hostname=xxxxxx

#ListenIPのコメントを外して自分のIPを記述します。
ListenIP=xx.xx.xx.xx
(※注意事項:この時後々zabbix上で設定するIPと異なっているとうまくデータ取得ができません。)

# pidファイルの場所を/var/runに配置します。
PidFile=/var/run/zabbix/zabbix_agentd.pid

# ログファイルの場所を/var/logに配置します。
LogFile=/var/log/zabbix/zabbix_agentd.log
~~~~~~~~~~~~~~~~~~~~~~~~~~

最後に起動ファイルを準備します。fedora用のファイルがありますので、これを流用することとします。

cp /usr/local/src/zabbix-1.4.6/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
vi /etc/init.d/zabbix_agentd

~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
FULLPATH=$BASEDIR/sbin/$BINARY_NAME
BASEDIR=/usr/local
PIDFILE=/var/run/zabbix/$BINARY_NAME.pid
~~~~~~~~~~~~~~~~~~~~~~~~~~

変更点は 【/usr/local/sbin】 配下にzabbixがインストールされているのでFULLPATHの指定を 「bin ->sbin」に修正、pidfileの保存ディレクトリを「/var/run/zabbix」に修正した。の2点です。修正が完了したらエージェント起動を行うために最終調整を行いましょう。

chmod 755 /etc/init.d/zabbix_agentds
mkdir /var/run/zabbix
mkdir /var/log/zabbix
chown zabbix:zabbix /var/run/zabbix/
chown zabbix:zabbix /var/log/zabbix/

上記、起動準備が整ったらエージェントを起動してみます。
/etc/init.d/zabbix_agentd start

以上で設定は完了しました。自動で起動を行う場合はchkconfigで自動起動設定を行って下さい。今回の場合は下記のようになります。

chkconfig –add zabbix_agentd
chkconfig zabbix_agentd on

ZABBIXでサーバ管理・監視(Agent編)

FreeBSD, zabbix No Comments

ZABBIXでサーバ管理・監視(Server編)に続いてAgent編です。Agentを利用しなくても監視自体は出来ますがAgentを利用することでCPUやメモリーの使用量をグラフで時系列にみることができたり、ディスクスペースが少なくなったときに警告を発生したりと色々と面白い事が可能です。

設定自体はZABBIX-JPや他のホームページを確認して頂くとして(決して書くのがめんどくさいわけでは、めんどくさいわけでは。。。。。ごめんなさい。気が向いたら書いていきます。)サクっとAgentをインストールしてしまいましょう。

今回もportsを利用します。

 

% cd /usr/ports/net-mgmt/zabbix-agent/
% make install clean

 

次にエージェントの設定ファイルを編集して設定していきます。portsからインストールを行うと「zabbix_agent.conf.sample」と「zabbix_agentd.conf.sample」の2つのサンプルが出来ますが、デーモンとして動かさないと取得できないステータスがある(らしい)ので、「zabbix_agentd.conf.sample」を使用していきます。サンプルファイルをコピーして編集していきましょう。

 

% cd /usr/local/etc/zabbix/
% cp zabbix_agentd.conf.sample zabbix_agentd.conf
% vi zabbix_agentd.conf

 

編集箇所は下記の通りです。

—————————————————

ServerのIPを編集します。
#Server=127.0.0.1
Server=xx.xx.xx.xx

注意事項:この時zabbixサーバーのzabbix_server.confに記述したIPと同じIPを記述しないとうまくデータ取得ができません。。)
Hostnameを編集します。

#Hostname=localhost
Hostname=xxxxxx
ListenIPのコメントを外して自分のIPを記述します。

#ListenIP=127.0.0.1
ListenIP=xx.xx.xx.xx

注意事項:この時後々zabbix上で設定するIPと異なっているとうまくデータ取得ができません。)
ログファイルの場所を/var/logに配置します。
LogFile=/var/log/zabbix/zabbix_agentd.log

—————————————————

 

最後にlogファイルの保存先を作成しましょう。

mkdir /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix

 

以上で起動する準備は整いました。あとは「rc.conf」に記載して起動できるように設定を行います。設定完了後、zabbixエージェントを起動しましょう。

% vi /etc/rc.conf
zabbix_agentd_enable=”YES”

/usr/local/etc/rc.d/zabbix_agentd start

以上でzabbixエージェントが起動できました。念のためログを確認して「zabbix_agentd active check started」と表示されてサーバと正常に通信が出来ていることを確認してください。

あとはweb画面上で各種設定を行えばグラフィカルな画面が表示されます。

ZABBIXでサーバ管理・監視(Server編)

FreeBSD, mysql, zabbix No Comments

サーバ管理を行っていると色々と問題が発生します。最近はCPUも十分に高速になり、メモリーも安く・品質のよいものが簡単に手に入り容量もちょっと前では考えられない容量が簡単に手に入ります。ちなみにこのブログサービスを行っているFreeBSDサーバのメモリー容量は4GBあります。本当は8GB搭載して色々と楽しむ予定でしたが所詮は個人用途、zabbixで性能監視を行うと4GBでも余裕がありすぎて。自己満足以外の用途が思いつかなかったので我慢しています。

と言うわけでzabbixのインストールを行っていきましょう。ちなみにzabbixをインストールする前にmysqlとapacheとphp5、それにfpingをインストールしておいてくださいね。fpingのインストールは下記の通りです。

% cd /usr/ports/net/fping
% make install clean

では、準備は出来たでしょうか?今からzabbixをインストールしていきます。あ、重要なことが一つVer1.4.4で最初にインストールを行ったところ、アラームのメール送信がどうやっても不可能でした。よってVer1.4.5以降を必ず使用してください。それと実際に運用して行くに当たっての注意事項ですがHDDの容量はかなり使用します。mysqlのデータベースは容量の多いパテーションを使用するように設定してください。同時にmysqlのチューニングは忘れないこと!!他のページでmysqlのチューニング方法を記入していますが念のためこのページでもチューニング方法を記載します。

 

さてインストール自体は簡単です。いつも通りにportsを利用してサクっとインストールしてしまいましょう。

% cd /usr/ports/net-mgmt/zabbix/
% make install clean

オプションを聞かれてきますがチェックはそのままでインストールしてください。portsからインストールを行うとユーザーおよび不ループも自動的に追加されます。次にmysqlのチューニングを行っていくことにしましょう。mysqlのチューニング用のテンプレート(サンプル)が「/usr/local/share/mysql/」に用意されています。最近のシステムでは128MB程度のメモリーを積んでいるときに参考になる「my-medium.cnf」、もしくは512MB以上メモリーを積んでいるときに参考になる「my-large.cnf」のどちらかから設定を行っていくようになると思います。今回zabbixをインストールしたサーバは512Mのメモリーを搭載していますので「my-large.cnf」をコピーして使用することにします。

% cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf
(mysql5.1の場合は/usr/local/etc配下に設定ファイルをおきます。5.0の場合はdatabaseがある場所、デフォルトでは/var/db/mysql配下にコピーします)

 コピーが完了したら設定を行いましょう。基本的に設定する項目はありませんが「innodb_file_per_tableオプションを有効化」することをだけは忘れないようにしましょう。忘れるとデータベースサイズが大変なことになってしまいます。有効化の方法は「my.cnf」の「[mysqld]」直下に「innodb_file_per_table」を記載することです。ここまで設定が出来れば後は「/etc/rc.conf」に「mysql_enable=”YES”」を追加、mysqlを起動しましょう。

% ee /etc/rc.conf
mysql_enable=”YES”

% /usr/local/etc/rc.d/mysql-server start

その後、innodb_file_per_tableオプションが有効になっていることを確認します。

% mysql -u root -p パスワード
% mysql> SHOW VARIABLES LIKE ‘innodb_file_per_table’;

結果が以下になっていれば有効化されています。

Variable_name Value
innodb_file_per_table ON

以上でzabbixを利用するための前準備が完了しました。ここからは実際にzabbixが利用できるようにするための設定などを行っていきます。

まずはデータベースの作成、スキーマと初期データのインポートを行っていきましょう。データベース名は「zabbix」、データベースのユーザ名も「zabbix」、パスワードは「test」とします。環境などによって色々とあると思いますが適時調整してください。

最初にmysqlにzabbixデータベースを作成します。

 

% mysql -u root
% mysql> create database zabbix;
% mysql> grant all on zabbix.* to zabbix@localhost identified by ‘test’;

次にスキーマと初期データのインポートを行います。

 

% cd /usr/local/share/zabbix/create/schema/
% cat mysql.sql | mysql -u root -p<パスワード> zabbix
% cd ../data/
% cat data.sql | mysql -u root -p<パスワード> zabbix
% cat images_mysql.sql | mysql -u root -p<パスワード> zabbix

 

サーバーの設定ファイルを編集します。最初にsampleの設定ファイルをコピーして修正していきます。

% cp /usr/local/etc/zabbix/zabbix_server.conf.sample /usr/local/etc/zabbix/zabbix_server.conf

コピーが完了したらconfファイル(zabbix_server.conf)を実際の環境に合わせて修正します。修正箇所は下記の通りです。

—————————————————

ListenIPを自分のIPアドレスに修正

#ListenIP=127.0.0.1
ListenIP=172.16.10.41

Timeout系を30秒(最大)に変更

#Timeout=5
Timeout=30

pidファイルの位置を修正

#PidFile=/var/tmp/zabbix_server.pid
PidFile=/var/run/zabbix/zabbix_server.pid

logファイルの位置を修正

#LogFile=/tmp/zabbix_server.log
LogFile=/var/log/zabbix/zabbix_server.log

fpingのパスを修正

#FpingLocation=/usr/sbin/fping
FpingLocation=/usr/local/sbin/fping

—————————————————

最後にpidファイルとlogファイルの保存先を作成しましょう。

% mkdir /var/run/zabbix
% mkdir /var/log/zabbix
% chown zabbix:zabbix /var/run/zabbix
% chown zabbix:zabbix /var/log/zabbix

 

以上で起動する準備は整いました。あとは「rc.conf」に記載して起動できるように設定を行います。設定完了後、zabbixサーバを起動しましょう。

 

% ee /etc/rc.conf

zabbix_server_enable=”YES”

/usr/local/etc/rc.d/zabbix_server start

 

以上でzabbixサーバの起動が行われたはずです。あとはweb画面の設定を行っていきましょう。まずはapacheのドキュメントルート配下にzabbixディレクトリを作成します。作成後、zabbixのphpファイルをコピーします。

 

% mkdir /<apacheのドキュメントルート>/zabbix
% cd /usr/local/share/zabbix/
% cp -R php/* /<apacheのドキュメントルート>/zabbix

次にphp.iniの編集を行います。設定箇所は2カ所のみです。

% cd /usr/local/etc/
% ee php.ini

以下を修正
max_execution_time =300
date.timezone = Asia/Tokyo

 

以上が完了したらapacheを再起動してwebフロントエンドにアクセス、初回インストール作業を行います。

http://(ip)/zabbix/

基本的には「次へ」を選択していけば問題ありません。インストール作業が終わったら「admin/パスなし」でログインしてください。以上でserver編は終了です。次にエージェントをインストールしましょう。エージェントの設定が完了すればカラフルな画面が表示されるようになります。

(2009/1/4 追記:その1)
上記インストール方法で設定を[保存]する事は可能です。しかしながら保存した設定ファイルから復元を行うことは[モジュール不足のため不可能]でした。設定ファイルはxml形式なので[php5-xml]が必要になります。なのでインストール完了後、xmlモジュールも手動でインストールして下さい。FreeBSDでportsを利用した方法は下記の通りです。

# cd /usr/ports/textproc/php5-xml
# make install clean

モジュールインストール後は忘れ済みapacheを再起動して下さい。

(2009/1/4 追記:その2)
zabbix最新バージョンの1.6系でも、ここに記載した方法でインストールが可能です。(正月のうちに実験・検証できました)が、デフォルトユーザ「admin」のパスワードが「設定無し(空白)」から「zabbix」に変更されてます。マニュアルには記載がありますが念のため追記しておきます。