ZABBIXでサーバ管理・監視(Server編)
7 月 28, 2008 10:50 pm FreeBSD, mysql, zabbixサーバ管理を行っていると色々と問題が発生します。最近は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」に変更されてます。マニュアルには記載がありますが念のため追記しておきます。
