ZabbixをKUSANAGIで動かすと早い(2018/12版) – オレオレアドベントカレンダー10日目

KUSANAGIでZabbixのWebUIを動かすと早い!

このエントリは、Zabbix アドベントカレンダー2018の10日目でもあります。
散々、KUSANAGIでZabbixで早いと言っているので、ちゃんと決定版を書こうと思います。

実際早い

KUSANAGIはPHP7.2を採用しているため、PHP5系の環境に比べて相当早いです。また、TLS1.3とHTTP/2に対応しているため、グラフ系のリクエストを並列実行で同時セッション内で解決します。ということで、実際に見てみましょう。

上記は、グラフが5つある画像で、全てGDにより生成されます。このグラフの生成には300ms前後かかるのですが、HTTP/2を使用することにより並列してリクエストしているために1秒未満で読み込み完了していることが分かります。

Zabbix on KUSANAGI作成方法まとめ

まあ何度も書いてますが、だいたいコレでZabbix4.xが動くと思います。
/usr/share/zabbix をDocumentRootにすれば、zabbix-webをアップデートしても自動的に内容が更新されます。

export KUSANAGI_PASSWORD=`mkpasswd -l 20`
export DBROOTPASS=`mkpasswd -s 0 -l 20`

export SITE_DOMAIN=zabbix.localdomain

export DBNAME=`mkpasswd -s 0 -l 10`
export DBUSER=`mkpasswd -s 0 -l 10`
export DBPASS=`mkpasswd -s 0 -l 20`
export EMAILOPTION=--no-email

sudo yum install -y https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum clean all
echo yum update
sudo yum -y --enablerepo=remi,remi-php56 update  2>&1 > /dev/null
yes 1 | sudo kusanagi init --tz tokyo --lang en --keyboard en --passwd $KUSANAGI_PASSWORD --no-phrase --dbrootpass "$DBROOTPASS" --php7 --nginx
sudo kusanagi provision --lamp --fqdn $SITE_DOMAIN $EMAILOPTION --dbname $DBNAME --dbuser $DBUSER --dbpass "$DBPASS" zabbix

sudo yum --enablerepo=remi,remi-php56 install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-web-japanese
sleep 1
echo "alter database $DBNAME character set utf8 collate utf8_bin;"| mysql -uroot -p$DBROOTPASS $DBNAME
SQLFILE=$(ls -t /usr/share/doc/zabbix-server-mysql-4*/create.sql.gz | head -1)
zcat $SQLFILE | mysql -uroot -p$DBROOTPASS $DBNAME

(echo php_value[max_execution_time]  = 300
echo php_value[max_input_time]  = 300
echo php_value[date.timezone]  = Asia/Tokyo) | sudo tee -a /etc/php7-fpm.d/www.conf

sed 's/\/home\/kusanagi\/zabbix\/DocumentRoot/\/usr\/share\/zabbix/' /etc/nginx/conf.d/zabbix_http.conf
sed 's/\/home\/kusanagi\/zabbix\/DocumentRoot/\/usr\/share\/zabbix/' /etc/nginx/conf.d/zabbix_ssl.conf

grep -v -e DATABASE -e USER -e PASSWORD  /usr/share/zabbix/conf/zabbix.conf.php.example |
sudo tee /etc/zabbix/web/zabbix.conf.php
(echo "\\\$DB\['DATABASE'] = '$DBNAME'\;"
echo "\\\$DB\['USER'] = '$DBUSER'\;"
echo "\\\$DB\['PASSWORD'] = '$DBPASS'\;") | sudo tee -a /etc/zabbix/web/zabbix.conf.php

(echo DBName=$DBNAME
echo DBUser=$DBUSER
echo DBPassword=$DBPASS ) | sudo tee -a /etc/zabbix/zabbix_server.conf

sudo chown -R httpd:www /usr/share/zabbix/ /etc/zabbix/web
sudo chown :www /var/lib/php/*

sudo systemctl start zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent

echo "KUSANAGI password: $KUSANAGI_PASSWORD"

あとは、Let’s EncryptでSSL証明書取りたい人は、IPアドレスをDNSに登録してから、「kusanagi ssl –email  メールアドレス 」を実行してください。

ということで

みんなKUSANAGIでZabbixを動かして高速表示しましょう。
というか、GrafenaもElasticsearchも試したけど、いまいち分からんかったので、何が嬉しいのか教えてほしいです。

Follow me!

Leave a Reply