前提環境
LinuxでDocker使うと簡単に環境作れるのは分かってるけど、FreeBSD使いたいので、ちまちまと。
2017/9/21 追記:SNMP Trapを受けられるように変更
2018/7/25 追記:fping 4.0からIPv4/IPv6どちらもサポートするようになり、JailのネットワークI/FにIPv6アドレスを付けないと動作しないため、その部分を追記
-
OS
- FreeBSD 11.1R
- qjail
-
IPアドレス
- 192.168.10.121を想定
-
データベース
- MySQL(別サーバで構築済みを想定)
- 192.168.10.120を想定
- innodb_file_per_table オプションが必要な事を忘れない事!
-
Webサーバ
- lighttpd
ホストの設定
# sysctl security.jail.sysvipc_allowed=1
# sysrc jail_sysvipc_allow=YES
Jailを作る
# qjail create -4 192.168.10.121 -6 fe80::121 -n hn0 zabbix
# qjail config -y zabbix
# qjail config -k zabbix
これ以降はJailの中の操作
インストール
# pkg install zabbix3-server
# pkg install zabbix3-frontend
# pkg install zabbix3-agent
# pkg install lighttpd
# pkg install ja-font-ipa-uigothic
設定
PHP
# cp -p /usr/local/etc/php.ini-production /usr/local/etc/php.ini
変更箇所のみ
php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Tokyo
always_populate_raw_post_data = -1
ZABBIX Server
# cd /usr/local/share/zabbix3/server
# mysql -h 192.168.10.120 -uzabbix3 -p zabbix3 < database/mysql/schema.sql
# mysql -h 192.168.10.120 -uzabbix3 -p zabbix3 < database/mysql/images.sql
# mysql -h 192.168.10.120 -uzabbix3 -p zabbix3 < database/mysql/data.sql
# cd /usr/local/etc/zabbix3/
# cp zabbix_server.conf.sample zabbix_server.conf
変更箇所のみ
別で構築済みのMySQLサーバの情報を設定
zabbix_server.conf
LogFile=/var/log/zabbix_server.log
DBHost=192.168.10.120
DBName=zabbix3
DBUser=zabbix3
DBPassword=foobar
Fping6Location=/usr/local/sbin/fping6
FpingLocation=/usr/local/sbin/fping
ListenIP=192.168.10.121
# sysrc zabbix_server_enable=YES
# touch /var/log/zabbix_server.log
# chown zabbix:zabbix /var/log/zabbix_server.log
# service zabbix_server start
# cd /usr/local/www/zabbix3/fonts/
# ln -s /usr/local/share/font-ipa-uigothic/ipagui.ttf ipagui.ttf
/usr/local/www/zabbix3/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'ipagui');
ZABBIX Agent
# cd /usr/local/etc/zabbix3
# cp zabbix_agentd.conf.sample zabbix_agentd.conf
変更箇所のみ
zabbix_agentd.conf
LogFile=/var/log/zabbix_agentd.log
Server=192.168.10.121
# sysrc zabbix_agentd_enable=YES
# touch /var/log/zabbix_agentd.log
# chown zabbix:zabbix /var/log/zabbix_agentd.log
# service zabbix_agentd start
lighttpd
変更箇所のみ
lighttpd.conf
var.log_root = "/var/log/lighttpd"
server.use-ipv6 = "disable"
server.bind = "192.168.10.121"
server.document-root = "/usr/local/www/zabbix3/"
$SERVER["socket"] == "192.168.10.121:80" { }
modules.conf
include "conf.d/fastcgi.conf"
conf.d/fastcgi.conf
fastcgi.server = ( ".php" =>
( "php-local" =>
(
"socket" => socket_dir + "/php-fastcgi-1.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"max-procs" => 1,
"broken-scriptfilename" => "enable",
)
),
)
# mkdir -p /var/spool/lighttpd/sockets/
# sysrc lighttpd_enable=YES
# service lighttpd start
ZABBIX Frontendの設定
- http://192.168.10.121/ へアクセス
- データベース名・ユーザ名・パスワードなどを入力(別で構築済みのMySQLサーバの情報を設定)
ZABBIX Frontendへアクセス
- http://192.168.10.121/
- ユーザ名:admin/パスワード:zabbixでログイン
あとは普通にZABBIXを設定
SNMP Trapを受けられるようにする
# cd ~
# fetch http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.2/zabbix-3.2.2.tar.gz/download
# tar xvzf download
# rm download
# cd zabbix-3.2.2/
# cp misc/snmptrap/zabbix_trap_receiver.pl /usr/local/share/zabbix3/
# chmod 755 /usr/local/share/zabbix3/zabbix_trap_receiver.pl
# sysrc snmptrapd_enable=YES
/usr/local/share/zabbix3/zabbix_trap_receiver.pl
$SNMPTrapperFile = '/var/log/zabbix_snmptrap.log';
/usr/local/share/snmp/snmptrapd.conf
authCommunity log,execute,net private
authCommunity log,execute,net public
perl do "/usr/local/share/zabbix3/zabbix_trap_receiver.pl"
disableAuthorization yes
pidfile /var/run/snmptrapd.pid
donotlogtraps no
logoption f /var/log/snmptrap.log
/usr/local/etc/zabbix3/zabbix_server.conf
SNMPTrapperFile=/var/log/zabbix_snmptrap.log
StartSNMPTrapper=1
# service snmptrapd start
SNMP Trapのテンプレートを作成し、該当ホストへ適用
ZABBIXの監視データ→最新データでSNMP Trapの情報が確認出来ればOK