2014年に流行がくるのはノーオペレーション。今までサーバー監視をツール+人で行っていたことをツールだけで一次対応を自動で行うことを言いますが、日本でもやっとユーザー数が増えてきたZabbixをCentos6にインストールする手順を紹介します。
・Zabbix2.2のインストール要件
Zabbix2.2 Requirementから
Name | Platform | CPU/Memory | Database | Monitored hosts |
---|---|---|---|---|
Small | Ubuntu Linux | PII 350MHz 256MB | SQLite | 20 |
Medium | Ubuntu Linux 64 bit | AMD Athlon 3200+ 2GB | MySQL InnoDB | 500 |
Large | Ubuntu Linux 64 bit | Intel Dual Core 6400 4GB | RAID10 MySQL InnoDB or PostgreSQL | >1000 |
Very large | RedHat Enterprise | Intel Xeon 2xCPU 8GB | Fast RAID10 MySQL InnoDB or PostgreSQL | >10000 |
要約すると、64BITのOSでMysqlもしくはPostgreSQL SQLiteなどのDB さらにPHPが必要ということです。1万台以上の大規模監視を行う場合は高速なDISKとInnoDBが推奨されています。※net-snmp等もSNMPを利用する場合は必要です。
後でストレージエンジンを変更するのは大変ですので、Mysqlを利用する方は規模にかかわらずInnoDBで構築することを強くおすすめします。Apache DB PHPは事前にインストールしていることが前提です。
PHPで必要なモジュール
mbstring gd xml bcmath
今回はCentos6系 PHP5.4 Mysqlで構成することにします。
ダウンロードと展開
まずは、Zabbixのパッケージを公式サイトからダウンロードしてきます。今回はZabbix 2.2 (安定版)を使います。
wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.0/zabbix-2.2.0.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fjp%2Fdownload.php&ts=1389687266&use_mirror=jaist
パッケージを展開する
tar zxvf zabbix-2.2.8.tar.gz cd zabbix-2.0.8
ソースインストールのため各種パスを確認
# which curl-config /usr/bin/curl-config # which mysql_config /usr/local/bin/mysql_config # which net-snmp-config /usr/bin/net-snmp-config
Zabbixサーバーのインストール
※/usr/local/zabbix2 にインストールするようにしています。先ほど確認したパスも一緒に記載します。
./configure --prefix=/usr/local/zabbix2 --enable-server --enable-agent --with-libcurl=/usr/bin/curl-config --with-mysql=/usr/local/bin/mysql_config --with-net-snmp=/usr/local/net-snmp/bin/net-snmp-config --with-libxml2 make && make install
サーバーデーモンやエージェントを起動するユーザーを追加する
groupadd zabbix useradd -g zabbix -s /sbin/nologin zabbix -M
MysqlにZabbix専用ユーザーを作成する
DBに事前にZabbix専用ユーザーを作成しておきます。その後初期DBをコマンドで流し込みます。
DB名 zabbix
DBユーザー名 zabbix
DBに初期データを流し込む
cat database/mysql/schema.sql | Mysqlのパス -uzabbix -p zabbix cat database/mysql/images.sql | Mysqlのパス -uzabbix -p zabbix cat database/mysql/data.sql | Mysqlのパス -uzabbix -p zabbix
Zabbix設定
configファイルにDBユーザーとパスワードファイルを編集する
vi /usr/local/zabbix2/etc/zabbix_server.conf
DBUser=root
↓
DBUser=zabbix(先ほど作成したユーザー名)
Zabbix server とエージェントの起動スクリプトの設置
ソースディレクトリからコピーする
cp -a misc/init.d/fedora/core5/* /etc/init.d/
起動スクリプトの編集
vi /etc/init.d/zabbix_server
ZABBIX_BIN=”/usr/local/sbin/zabbix_server”
↓
ZABBIX_BIN=”/usr/local/zabbix2/sbin/zabbix_server”
vi /etc/init.d/zabbix_agentd
ZABBIX_BIN=”/usr/local/sbin/zabbix_agentd”
↓
ZABBIX_BIN=”/usr/local/zabbix2/sbin/zabbix_agentd”
自動起動の設定
chkconfig zabbix_server on chkconfig zabbix_agentd on service zabbix_server start service zabbix_agentd start
※サーバーの起動に失敗する場合、ライブラリのパスが見つからないことが原因
/etc/ld.so.conf.d/以下に適当な名前でファイルをつくりファイルの中にライブラリのパスを追記する。
libmysqlclient.so.18の場合
vi /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/local/mysql5/lib/
libnetsnmp.so.30の場合
vi /etc/ld.so.conf.d/net-snmp.conf
/usr/local/net-snmp/lib/
設定を反映させる
ldconfig
PHP.INIを書き換える
PHP.iniの以下のあたりを追記もしくは編集する
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
設定を反映させる。
service httpd restart
フロントエンドの準備
ZabbixのGUIをApache等のドキュメントルートに全てコピーする
cp -r frontends/php/* /home/ドキュメントルート
グラフのフォント変更
グラフに日本語フォントが含まれている場合もじばけするため対策を行う
・IPAからフォントをダウンロードする
wget http://ipafont.ipa.go.jp/ipafont/ipagp00303.php
unzip ipagp00303.zip
・ipagp.ttfというフォントをコピーする
cp ipagp00303/ipagp.ttf /home/ドキュメントルート/fonts/
・新しいフォントを読み込むように設定ファイルを書き換える
vi /home/ドキュメントルート/include/defines.inc.php
define(‘ZBX_GRAPH_FONT_NAME’, ‘DejaVuSans’); // font file name
↓
define(‘ZBX_GRAPH_FONT_NAME’, ‘ipagp’); // font file name
ICMPPING監視を行うためにFpingを入れる
既に入っていれば入れる必要なし。
Fpingのパスはコンフィグファイルに記載がある。なにも変更をしない場合は以下のディレクトリが
対象となる。 /usr/sbin/fping
パスが異なる場合は適度に編集する。
yum -y install fping
最終設定
ブラウザーでIPアドレスもしくはドメイン名でアクセスし最終設定をする
Check of pre-requisitesのところで全て緑になっていればOK
データベース指定を行う部分ではDB名とユーザー名パスワードを入力し test connectionでOKがでれば問題なし
Zabbix server detailsはそのままOKをおす
最後にエラーが出た場合、ディレクトリへ書き込み権限がない可能性があります。
その場合、手動でファイルをおくか以下の通り一時的に権限を与え、完了後権限を戻す必要があります。
権限を与える
chmod o+w /home/ドキュメントルート/conf/
権限を戻す
chmod 755 /home/ドキュメントルート/conf/ chown root:root /home/ドキュメントルート/conf/zabbix.conf.php chmod 644 /home/ドキュメントルート/conf/zabbix.conf.php
WEB GUIの初期アカウント
ID admin
PASS zabbix
Zabbix agentのインストール
./configure --prefix=/usr/local/zabbix-agent --enable-agent make && make install
・起動スクリプトのコピー
cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
起動スクリプトを編集
vi /etc/init.d/zabbix_agentd
変更前
ZABBIX_BIN=”/usr/local/sbin/zabbix_agentd”
変更後
ZABBIX_BIN=”/usr/local/zabbix-agent/sbin/zabbix_agentd”
SEDで書き換える場合
sed -i "s/^ZABBIX_BIN=.*/ZABBIX_BIN="/usr/local/zabbix-agent/sbin/zabbix_agentd"/g" /etc/init.d/zabbix_ag entd
エージェントコンフを変更する
vi /usr/local/zabbix-agent/etc/zabbix_agentd.conf
Server=ZabbixサーバーのIP
ServerActive=ZabbixサーバーのIP
待ち受けポート番号をデフォルトの10050から変更する場合はコメントアウトし、ポート番号を入力する。
ListenPort=10050
Zabbixエージェントが稼働するサーバーのホスト名を入れる。アクティブ監視を行う際はここに記載があるホスト名
とサーバーで設定するホスト名が同一でなければいけない。
Hostname=ホスト名
リモートコマンドを利用できるようにする
#EnableRemoteCommands=0
↓
EnableRemoteCommands=1
外部ファイルをインクルードするように設定
Include=/usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/
エージェントの動作確認
ps aux |grep zabbix
zabbix 14891 0.0 0.0 15656 712 ? S 10:38 0:00 /usr/local/zabbix-agent/sbin/zabbix_agentd
以上でインストールは完了です。