やりたいこと
自分の環境に合わせたインストール。設定手順をまとめておきたい。
自分の環境の特徴は、
- PHPが5.6。
- メール送信のSMTPとしてGmailを利用したい。
の2つ。それぞれ、Zabbixインストール時のレポジトリの追加や、送信用カスタムスクリプトの設定が必要になる。
参考
前提
- CentOS6.x(or6.5)
- Apacheインストール済
- MySQLインストール済
- PHPインストール済(但し、remiから5.6:普通にやると引っかかる)
インストール
リポジトリインストール
そもそもどのレポジトリが有効になっているか?
yum repolist all
Zabbixレポジトリ追加
sudo rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
Zabbixのリポジトリは標準でenailed=1になっているので、必要に応じて0にしておく。
/etc/yum.repos.d/zabbix.repo
最新のレポジトリは公式サイトで確認する。
Zabbixインストール
Zabbixサーバーのインストール
yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
上記だと、PHP依存関連のエラーがでました。
原因は、LaravelのためにPHPを5.6にしてたから。--enablerepoをつけて再度実行。
yum install --enablerepo=remi,remi-php56 zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
Zabbixエージェントのインストール
yum nstall zabbix-agent
Zabbix便利コマンドのインストール
yum install zabbix-get
Zabbix DBのセットアップ
まず、MySQLにログインし、Zabbix用のDBとユーザーを設定しておく。
mysql>create database zabbix;
mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
各種スクリプトを実行。
mysql -u root -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/schema.sql
mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/images.sql
mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/data.sql
pathはバージョンによって変わります(特に、zabbix-server-mysql-2.4.6部分)。
Zabbixの起動設定
/etc/zabbix/zabbix_server.confのDBPassword=を適切に設定し、コメントイン。
サーバ起動+自動起動
sudo service zabbix-server start
sudo chkconfig zabbix-server on
エージェントも起動+自動起動
sudo service zabbix-agent start
sudo chkconfig zabbix-agent on
エージェントの起動確認
zabbix_get -s 127.0.0.1 -p 10050 -k agent.version
2.4.6
zabbix(_get)は、zabbix_agentd.confのServer=に記述されたサーバのみ反応するようです。
ローカルテストする場合は、127.0.0.1も加えておきましょう。
Apacheのリスタート
必須。
sudo service httpd restart
ウィザード
Check of pre-requisitesでPHP always_populate_raw_post_dataがonになってる!offを要求!というエラー。
php.iniの
always_populate_raw_post_data = -1
をコメントイン。httpd restart。
エラーメール設定
ローカルのSMTPが使えればわけないのですが、ここではGmailを利用します。
Zabbixのメールはtls認証に対応していないようなので、送信用のスクリプトを作成し、それで送信します。が、ハマりました。
スクリプト自体はここから入手できます。
ハマりポイント1(PHPMailerのrequire)
そもそもメール送信にはPHPMailerを利用しているので、その本体をダウンロード、設置します。また、STMPクラスが無い!というエラーに遭遇しました。そのためには、class.phpmailer.phpのrequireの前にclass.smtp.phpをrequireします。
ハマりポイント2(スクリプト保存Path)
どこかのサイトの例に、送信用のスクリプトを/var/lib/zabbixとかに置いている例があったのですが、送信用のスクリプトは、/etc/zabbix/zabbix_server.confで、AlertScriptsPathで指定されたPathでしか有効じゃないようです(標準では/usr/lib/zabbix/alertscripts)。メディア設定の際のファイル名(Path)は、このフォルダからの相対Pathで指定するようです。
後は、スクリプトをGmailに合わせて改変します。追加項目としては、
$mailer->Port = 587;
$mailer->SMTPSecure = "tls";
くらいでしょうか。あと、そもそも最近のGmailは、アプリ専用のパスワードを取得する必要があるので、前もって準備します。