zabbixを実践投入しようかなと思ってまして、 ローカルでいろいろ試したいので、Macに入れてみました。
homebrewでいれようと思ったのですが、インストールはできるのですが、zabbix_serverが起動しないので、ソースから入れています。
環境
- OS X EI Captian (10.11.6)
- Zabbix 3.2.1
- MySQL 5.6.31-log (homebrewでインストール)
- PHP 5.5.38 (homebrewでインストール): zabbixのUI用. 特にこのバージョンでなくても動くと思います。
Macの設定
デフォルトのまま、Zabbixサーバを起動すると、shared memoryが足りないと言われるので以下の設定をして、Macを再起動します。
sudo vi /etc/sysctl.conf # 以下のように設定する
kern.sysv.shmall=2097152
kern.sysv.shmmax=134217728
Zabbixインストール
まず、DownloadからZabbixのソースを任意の位置にダウンロードします.
各種必要なパッケージがあれば、インストールしておきます。自分は以下が必要でしたが環境によるかなと思うので、のちほど実行する、 ./configureが
がこけたら適宜エラーをみて、実行してください。
brew install libxml2
brew install gnutls
ソースの解凍先のディレクトリで、configureを実行し、エラーがなければmake installします。なお、 --with-gnutls
はPSKでクライアント認証をするためです。
./configure --enable-server --enable-agent --with-mysql=/usr/local/bin/mysql_config --with-net-snmp --with-libcurl --with-gnutls
make install
すると以下の位置に各種インストールされます
/usr/local/sbin/zabbix_* # Zabbixのagentとserverの実行スクリプト
/usr/local/share/zabbix/externalscripts
/usr/local/share/zabbix/alertscripts # アラート用スクリプト.
/usr/local/etc/zabbix_* # 設定ファイル
なおログファイルはデフォルトで/tmp以下にできます。
データベースの設定
1 Database creation scriptsに書いてあるように、データベースのスキーマを作成します。
ソースを解凍したディレクトリ以下で以下のコマンドを実行します。なお、MySQLのパスワードは各自変えてください。
cd database/mysql
mysql -uroot zabbix < schema.sql
mysql -uroot zabbix < images.sql
mysql -uroot zabbix < data.sql
Zabbixの設定
Zabbix Agentの設定
/usr/local/etc/zabbix_agentd.conf
の以下の部分のみを変更します。
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
Zabbix Serverの設定
/usr/local/etc/zabbix_server.conf
の以下の部分のみを変更します。
なお、データベースのユーザ名が違ったり、パスワードがある方は適宜変更してください。
DBUser=root
Include=/usr/local/etc/zabbix_server.conf.d/*.conf
起動して確認
ここまでで動くはずなので以下のように、まずフォアグラウンドで起動する
zabbix_agentd -f
zabbix_server -f
/tmp
以下にあるログを見ながら正しく動いているか確認する.
Zabbix Web UIの設定
ZabbixのWeb UIは別途、PHPのフロントエンドを動かして確認する。
PHPの設定をしてから、PHPのビルドインサーバで動かす。
PHPの設定
/usr/local/etc/php/5.5/php.ini
の以下の部分のみを変更します。PHPのバージョンが違う場合は、5.5の部分を変更してください。
date.timezone = "Asia/Tokyo"
post_max_size = 16M
default_socket_timeout = 300
max_input_time = 300
max_execution_time = 300
Web UIの起動
解凍したソース以下に移動し、以下のコマンドを実行します。ポートは8001としてますが好きなのを使ってください。
cd frontends/php/
php -S localhost:8001
起動後、ブラウザで、http://localhost:8001にアクセスすると、設定画面が現れるので、設定します。
設定すると、frontends/php/conf/zabbix.conf.php
というファイルができています。
ログイン時の最初のパスワードはadmin/zabbixです。
グラフの日本語の文字化けを修正する
Web UIで日本語に設定した際に、グラフの日本語部分が文字化けするので修正します。
IPAフォント ダウンロードページから、「IPAゴシック(Ver.003.03)」をダウンロ度して、解凍されたソース以下の frontends/php/fonts/ipag.ttf
にコピーします。
その後、設定ファイル frontends/php/include/defines.inc.php
で、フォントの変更を以下のようにします。
再度、 php -S localhost:8001
の起動をし直すと、日本語が正しく表示されています。
define('ZBX_GRAPH_FONT_NAME', 'ipag'); // font file name
define('ZBX_FONT_NAME', 'ipag');
Mac起動時に常に起動されるように設定する。
launchdの設定で、常に起動時に、起動されるようにします。今回はLington Xで設定したのでそのスクショをのせておきます。
再起動して、正しく起動し、http://localhost:8001にアクセスした際にZabbixのWeb UIが表示されていたら正しく設定できています。
Agent
Server
Web UI
WorkingDirectoryは解凍先以下のfrontends/phpに設定する。
MySQL Templateの設定
Zabbixにはデフォルトで以下のようなMySQLのテンプレートが設定されているので試しに設定してみます。
設定ファイルの作成
/usr/local/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
を作成し、以下のように設定します。
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/var/lib/zabbix mysql -N | awk '{print $$2}'
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/usr/local/var/lib/zabbix -N'
UserParameter=mysql.ping,HOME=/usr/local/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
つぎに、 /usr/local/var/lib/zabbix/.my.cnf
を作成し、上記のuserparameterで使用するmysqlの設定を記載します。
適宜、アカウント、パスワードは読み替えてください。
[client]
user=root
password=
以下のように値が取れています。
参考
- ログレベルを変更したいときはagent, serverともに、DebugLevelの設定値を変更する