Zabbixとは
オープンソースの監視ツールです。
サーバやネットワーク機器がダウンした際にメールで通知をしたり、機器から様々なデータ(CPU使用率やディスクの空き容量など)を取得して可視化することができます。
動作環境
ハードウェア:Raspberry Pi 3
OS:RASPBIAN STRETCH LITE
Zabbix: 3.4
Apache: 2.4
PHP: 7.0
DB: MariaDB 10.1
Zabbixのインストール
rootに切り替え
sudo su
既存ソフトウェアのアップデート
apt-get update apt-get upgrade
java関連のインストール。どうしてもエラーになるため、手動でファイルコピーする。
apt install openjdk-8-jre-headless openjdk-8-jdk ca-certificates-java cd /usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/ cp -r client server reboot
残りをまとめてインストール
apt install apache2 php7.0 php7.0-ldap php7.0-mysql php7.0-bcmath php7.0-mbstring php7.0-xml php7.0-gd libapache2-mod-php7.0 make gcc libc6-dev default-libmysqlclient-dev libcurl4-openssl-dev libssh2-1-dev libsnmp-dev libiksemel-dev mysql-server libsqlite3-dev libopenipmi-dev fping snmp libsnmp-base unixodbc unixodbc-dev libxml2 libxml2-dev snmp-mibs-downloader snmpd snmptt python-pywbem traceroute libldap2-dev libevent-dev libssl-dev libpcre3-dev
ソースコードをダウンロード
cd /usr/src wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.14/zabbix-3.4.14.tar.gz
ダウンロードしたファイルを解凍
tar xzf zabbix-3.4.14.tar.gz
configureスクリプトを実行
cd zabbix-3.4.14 ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-ssh2 --with-libxml2 --enable-ipv6 --with-unixodbc --with-openssl --enable-java --with-jabber --with-ldap
make install
DB設定
DBのrootパスワードを設定。初期パスワードは未設定なのでcurrent passwordはエンターキーだけで進む。
/usr/bin/mysql_secure_installation
ユーザーを作成
adduser --system --home /usr/local/sbin --no-create-home zabbix
データベースを作成
mysql -uroot -pzabbix create database zabbix; grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; quit
mariaDBの設定変更
utf8mb4だとエラーになるため、従来のutf8に変更。このため絵文字は使えません。
次の4つのファイルでutf8mb4をutf8に変更
cd /etc/mysql/mariadb.conf.d/ nano 50-server.cnf nano 50-mysql-clients.cnf nano 50-client.cnf nano 50-mysql-clients.cnf service mysqld restart
設定確認
mysql -uroot -p MariaDB [(none)]> show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
DBに初期データを作成
mysql -uzabbix --password=zabbix zabbix < /usr/src/zabbix-3.4.14/database/mysql/schema.sql mysql -uzabbix --password=zabbix zabbix < /usr/src/zabbix-3.4.14/database/mysql/images.sql mysql -uzabbix --password=zabbix zabbix < /usr/src/zabbix-3.4.14/database/mysql/data.sql
Zabbix設定
起動スクリプトをコピー
cp -a /usr/src/zabbix-3.4.14/misc/init.d/debian/zabbix-* /etc/init.d/
設定ファイル修正
nano /usr/local/etc/zabbix_server.conf # 次の項目を修正 DBPassword=zabbix Timeout=30 ExternalScripts=/usr/local/share/zabbix/externalscripts FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6
起動スクリプトを修正(Server側)
nano /etc/init.d/zabbix-server 以下のコメント行を!/bin/shの直後に挿入 ### BEGIN INIT INFO # Provides: Zabbix daemon # Required-Start: $local_fs $remote_fs $network $syslog $named # Required-Stop: $local_fs $remote_fs $network $syslog $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Interactive: true # Short-Description: Start/stop Zabbix server daemon ### END INIT INFO
起動スクリプトを修正(Agent側)
nano /etc/init.d/zabbix-agent 以下のコメント行を!/bin/shの直後に挿入 ### BEGIN INIT INFO # Provides: zabbix-agent # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop Zabbix-agent # Description: Start/stop Zabbix-agent ### END INIT INFO
自動起動するように設定
update-rc.d zabbix-agent defaults update-rc.d zabbix-server defaults
Apache設定
フロントエンドのファイルをコピー
cp -arf /usr/src/zabbix-3.4.14/frontends/php/* /var/www/html/ chown -R www-data:www-data /var/www/html/*
不要ファイルを削除
rm /var/www/html/index.html
phpの設定
php.iniの場所を確認
php -i | grep php.ini
次の項目を修正
nano /etc/php/7.0/cli/php.ini post_max_size = 32M max_execution_time = 300 max_input_time = 300 date.timezone = Asia/Tokyo
日本語フォントのインストール
apt-get install fonts-ipafont-gothic cd /var/www/html/fonts ln -s /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf ipagp.ttf
フォントの設定
nano /var/www/html/include/defines.inc.php 次の項目を修正。DejaVuSansをipagpに置き換える。 define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name
ロケールの設定
localedef -f UTF-8 -i ja_JP ja_JP
サービス起動
service zabbix-server start service zabbix-agent start service apache2 start
Zabbixの初期設定
ブラウザからRaspberry PiのIPアドレスを開いてください。次の画面が表示されるので「Next step」をクリックします。
設定が確認チェックされます。すべてOKなら「Next step」をクリックします。
Mysqlの接続情報を以下の通り入力して「Next step」をクリックします。
Database Type : Mysql
Database hose : localhost
Database port : 0
Database name : zabbix
User : zabbix
Password : zabbix
次の画面は何もせず「Next step」をクリックします。
「Next step」をクリックします。
「Finish」をクリックします。
ログイン画面が表示されます。以下のアカウントでログインしてください。
Username : Admin
Password : zabbix
ログインしたら「Administration」→「Users」を開き、「Admin」をクリックします。
Languageの設定を「Japanese(ja_JP)」に変更し、画面一番したの「更新」をクリックします。
更新したら「User updated」と表示されます。
ここでブラウザをReload(F5キーを押す)するか、ログインしなおすと日本語表示になります。これで設定は完了です。