使えるねっとVPS上にzabbixサーバーを作る
わが社で運用してるサーバーでは複数ドメインをホスティングしてて、そろそろ管理が煩雑になってきた*1のでとりあえず障害監視サーバーとしてzabbixを使ってみることにした。
- 運用中のサーバーはさくらインターネットの専用サーバー CentOS5。
- zabbixサーバーは使えるねっとVPSのシルバー CentOS5でyum化済み。
zabbixサーバーのインストール
パッケージの取り込み
zabbix.jpのCentOS5でのyumリポジトリ利用方法を元にちょいちょいっと。
# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-release-5-2.noarch.rpm # yum install fping iksemel iksemel-devel curl curl-devel openldap openldap-devel OpenIPMI OpenIPMI-devel net-snmp net-snmp-devel unixODBC unixODBC-devel # yum install zabbix zabbix-web zabbix-agent
mysqlの設定
mysqlの設定で若干手間取った。
まずはユーザーとデータベースの作成*2
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 24041 to server version: 5.0.22 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database zabbix; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'hogehoge'; mysql> flush privileges; mysql> quit
次にスキーマとデータのインポート。
上で上げた@itもzabbix.jpもSQLが/usr/share/zabbix-server-xxx/schema/... って書いてあるんだが、yumでインストールしてもそのファイルがない。
仕方ないのでrpmで探してみる。
# rpm -ql zabbix-1.4.6-1.el5.JP | grep "images_mysql" /usr/share/doc/zabbix-1.4.6/dbinit/data/images_mysql.sql
というわけで、何故か ''/usr/share/doc/zabbix-1.4.6/dbinit''で発見するっつー。
で、インポート
# cd /usr/share/doc/zabbix-1.4.6/dbinit # mysql -u zabbix -p < ./schema/mysql.sql # mysql -u zabbix -p < ./data/data.sql # mysql -u zabbix -p < ./data/images_mysql.sql
/etc/zabbix/* の設定
- zabbix.conf.php
データベースの接続設定を。
- zabbix_server.conf
データベースの接続設定を。
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=<zabbixのパスワード>
- zabbix_agent.conf
zabbix-agentでは管理元となるzabbix-serverの設定を。詳細はあとで。
Server=127.0.0.1
- zabbix_agentd.conf
zabbix-agentのデーモン設定
Server=127.0.0.1 ServerPort=10051 Hostname=localhost ListenPort=10050
Apacheの設定
VirtualHostで運用してなければzabbix-webのインストールだけでAlias "/zabbix"が効いてるので変更する必要はないんだけど、今回あえてサブドメインのVirtualHost内で運用することにしたのでそのあたりを変更。
/etc/httpd/zabbix.confの設定
先頭のaliasをコメントアウト
#Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all php_value max_execution_time 300 php_value date.timezone Asia/Tokyo php_value memory_limit 64M php_value upload_max_filesize 10M </Directory> <Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/include/classes"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory>
VirtualHostの設定を変更
使えるねっとだと /var/www/vhosts/<ドメイン名>/conf/httpd.include にある。
<VirtualHost <IPアドレス>:80> ServerName <サブドメイン>.<ドメイン>:80 DocumentRoot /usr/share/zabbix CustomLog /var/www/vhosts/<ドメイン>/statistics/logs/access_log plesklog ErrorLog /var/www/vhosts/<ドメイン>/statistics/logs/error_log <IfModule mod_ssl.c> SSLEngine off </IfModule> </VirtualHost>
DocumentRootを/usr/share/zabbixに。
ついでに/usr/share/zabbix/conf/zabbix.conf.phpをApacheが更新できるよう変更しとく。
# chown apache.apache /usr/share/zabbix/conf/zabbix.conf.php
zabbixの起動とapacheの再起動
# /etc/init.d/httpd condrestart # /etc/init.d/zabbix start # /etc/init.d/zabbix-agent start
監視対象サーバーへzabbix-agentのインストール
簡単にさらっと。
# yum install zabbix-agent # vi /etc/zabbix/zabbix_agentd.conf Server=<管理サーバーのIPアドレス> ServerPort=10051 Hostname=<監視対象サーバーのサーバー名> ListenPort=10050 # /etc/init.d/zabbix-agent start
ちょっとハマったzabbix_agentd.confの設定
zabbix_agent[d].confのServerには監視サーバーのIPアドレス(この例では10.10.1.10)を設定する。
よく考えたら当たり前なんだけど('A`)
感想とか
yum最高すぐる。