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が表示されます。

Zabbix hhvm動作

/etc/hhvm/php.ini に設定を追加しても反映されない感じでした。この辺は、おいおい直したいと思いますが、PHP7で不満がないので追求しないかも。

Zabbix Serverでテンプレート修正

Zabbix Serverとこのサイトを監視するとして、監視Item/Triggerなどは標準templateを使用しようと思います。
ただ、このテンプレートって監視間隔が1分と長く、すぐにMySQLのテーブル領域が肥大します。でも、いちいちWebUI上で変更するのめんどくさいので、export→XML変更→import という方法をとりました。

  1. Zabbixの設定→テンプレートを選択
  2. テンプレートを全選択
  3. 一番下のエクスポートを選択
    XMLファイルをダウンロード
  4. テキストエディタで、ダウンロードファイルの以下の部分を一括置換して保存


    60

    300

  5. Zabbixの設定→テンプレートでインポートを選択
    ファイル選択で、先ほど保存したファイルを選択

MySQL設定

WordPressもZabbixもMySQLを使用していて、監視したいところです。
Zabbixの標準テンプレートにはZabbix Agentを使用したMySQLの監視項目が用意されています。
しかし、Zabbix Agentではmysqlおよびmysqladminを使用していて、使用するユーザ・パスワードを変更していないと値を取得できません。
そこで、以下のようにMySQLで使用する zabbixユーザ・パスワードを準備します。

  1. MySQLに監視用ユーザを用意します
    以下のコマンドを実行します。PasswordにはMySQLのrootのパスワードを入力します。
    以下の例では、監視用ユーザZabbix、パスワードZabbixとします。(説明用なので本当はちゃんとしたパスワードを設定します。)

    
    % echo "grant process on *.* to 'zabbix'@'localhost' identified by 'zabbix';FLUSH PRIVILEGES ;" | mysql -uroot -p
    Password:
    
  2. 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
    
  3. 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の設定が取れていることが確認できました。
zabbix mysql

以下次回。

Follow me!

Leave a Reply

Your email address will not be published. Required fields are marked *