KUSANAGI で Zabbix Server 設定(1)
課題いろいろ
Zabbix Server3.0をいれて、いろいろ試してみました。
以下、やりたいことリスト。
- Zabbix Agent通信の暗号化
- hhvm での動作確認
- KUSANAGIで使用しているPHP7の APC/APCuやOPCacheのパラメータ監視
- APIの速度も比較
Zabbix Agentの通信の暗号化
Let’s EncryptのSSL証明書を使用できないかと思って調べてみました。
Let’s Encryptではサーバ証明書のみを発行していてクライアント証明書を発行していません。そのため、Let’s Encryptの証明書を使用してTLS接続で使用できませんでした。
実はできる!という情報がある方、教えてください。
ということで、PSK(Pre-Shared Key)と呼ばれる方式で暗号化しました。
Zabbix 3.0の新機能:通信暗号化(PSK)というWebSiteを参考にしました。
この通りにやれば特に問題なく暗号化通信できています。
hhvm での動作確認
hhvmでも試してみました。hhvm への変更は、kusanagi hhvm を実行するだけです。
一応ページは表示されるのですが、以下のようなWarningが表示されます。
/etc/hhvm/php.ini に設定を追加しても反映されない感じでした。この辺は、おいおい直したいと思いますが、PHP7で不満がないので追求しないかも。
Zabbix Serverでテンプレート修正
Zabbix Serverとこのサイトを監視するとして、監視Item/Triggerなどは標準templateを使用しようと思います。
ただ、このテンプレートって監視間隔が1分と長く、すぐにMySQLのテーブル領域が肥大します。でも、いちいちWebUI上で変更するのめんどくさいので、export→XML変更→import という方法をとりました。
- Zabbixの設定→テンプレートを選択
- テンプレートを全選択
- 一番下のエクスポートを選択
XMLファイルをダウンロード - テキストエディタで、ダウンロードファイルの以下の部分を一括置換して保存
60
↓
300
- Zabbixの設定→テンプレートでインポートを選択
ファイル選択で、先ほど保存したファイルを選択
MySQL設定
WordPressもZabbixもMySQLを使用していて、監視したいところです。
Zabbixの標準テンプレートにはZabbix Agentを使用したMySQLの監視項目が用意されています。
しかし、Zabbix Agentではmysqlおよびmysqladminを使用していて、使用するユーザ・パスワードを変更していないと値を取得できません。
そこで、以下のようにMySQLで使用する zabbixユーザ・パスワードを準備します。
- MySQLに監視用ユーザを用意します
以下のコマンドを実行します。PasswordにはMySQLのrootのパスワードを入力します。
以下の例では、監視用ユーザZabbix、パスワードZabbixとします。(説明用なので本当はちゃんとしたパスワードを設定します。)% echo "grant process on *.* to 'zabbix'@'localhost' identified by 'zabbix';FLUSH PRIVILEGES ;" | mysql -uroot -p Password:
- Zabbixユーザで、MySQL用設定ファイルを用意します。
zabbixユーザのhomeは、/var/lib/zabbix になっているはずなので、それを前提としています。# test -d /var/lib/zabbix || mkdir /var/lib/zabbix # vi /var/lib/zabbix/.my.cnf # cat /var/lib/zabbix/.my.cnf [mysqladmin] user=zabbix password="zabbix" [mysql] user=zabbix password="zabbix" # chown -R zabbix:zabbix /var/lib/zabbix # chmod -R go-rwx /var/lib/zabbix # ls -la /var/lib/zabbix # ls -al /var/lib/zabbix/ total 12 drwx------ 2 zabbix zabbix 4096 May 22 04:51 . drwxr-xr-x. 35 root root 4096 May 22 03:59 .. -rw------- 1 zabbix zabbix 118 May 22 04:51 .my.cnf
- mysqlとmysqladminの動作を確認します
# HOME=/var/lib/zabbix mysqladmin ping mysqld is alive # echo "show global status where Variable_name='Com_begin';" | HOME=/var/lib/zabbix mysql -N Com_begin 170560
ZabbixのWebUIで確認して、MySQLの設定が取れていることが確認できました。
以下次回。