まだサーバのOSが14.04だったころ、Zabbixを入れてサーバの監視を試みたことがありました。その時の記事はこちらに。
が、18.04にアップグレードしてからきちんと動かなくなっていたので重い腰を上げてZabbixの再インストールと設定を行います。
古いZabbixの残骸を消し去る
# apt --purge remove zabbix-server-mysql # apt --purge remove zabbix-agent # apt --purge remove zabbix-frontend-php
上記の3行で古いパッケージをキレイに掃除しておきます。
Zabbixをインストールする
そのままインストールしようとするとZabbix3系がインストールされるため、リポジトリを変更して4系を入れます。
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb # dpkg -i zabbix-release_4.0-2+bionic_all.deb # apt update # apt install zabbix-server-mysql zabbix-agent zabbix-frontend-php
MySQLデータベース関連
Zabbixを稼働させるためにはデータベースとDBユーザが必要です。以前使っていたものがあるのですが、データベース構造が変わっているかもしれないので古いDBを削除して再作成します。
# mysql -u root -p Enter password: ※パスワードを入力してEnter mysql> drop database zabbix;(以前使用していたDBの名称) Query OK, 108 rows affected (28.57 sec) mysql> create database zabbix;(任意の名称でDBを作成) Query OK, 1 row affected (0.02 sec)
ユーザも以前作成したものが残っているのですが、なんとパスワードを忘れてしまったため再作成します。
mysql> drop user ユーザ名@localhost;(※古いユーザの削除。必要なければ飛ばしてください) mysql> grant all privileges on DB名.* to ユーザ名@localhost identified by 'パスワード';
ちなみに後で調べたんですが、パスワードを忘れただけなら再設定も可能だったようです。その場合
set password for ユーザ名@localhost=password('新しいパスワード');
でもよかったみたいです。
Zabbixの設定
インストール時にデータベース設定用のSQLが用意されています(gzip形式で圧縮されている)。これを解凍してZabbix用に作ったMySQLユーザで実行していきます。
# cd /usr/share/doc/zabbix-server-mysql /usr/share/doc/zabbix-server-mysql# gunzip *.sql.gz /usr/share/doc/zabbix-server-mysql# mysql DB名 < create.sql -uユーザ名 -p Enter password:MySQLユーザのパスワード
データベース関係はこれで完了。ただし環境によっては時間がかかるかもしれません。自分の場合数分かかりました。
続いて設定ファイルの編集を行います。
# vi /etc/zabbix/zabbix_server.conf ←Zabbixサーバ側の設定ファイル 100行目のデータベース名を修正 DBName=データベース名 116行目のデータベースユーザを修正 DBUser=データベースユーザ名 124行目のコメントを解除してデータベースパスワードを追記 RBPassword=データベースパスワード →Esc→:wqで保存して終了 # systemctl restart zabbix-server # vi /etc/zabbix/zabbix_agentd.conf ←Zabbixエージェントの設定 150行目のサーバ名を修正 Hostname=サーバ名 Esc→:wqで保存して終了 # systemctl restart zabbix-agent # vi /etc/zabbix/zabbix.conf.php←フロントエンドの動作設定 11~13行目のデータベース設定を修正 $DB["DATABASE"] = 'データベース名'; $DB["USER"] = 'データベースユーザ'; $DB["PASSWORD"] = 'データベースパスワード'; 17行目のサーバIPを指定 $ZBX_SERVER = 'サーバのローカルIP'; Esc→:wqで保存して終了 # a2enconf zabbix ←Zabbixに関するApache2の設定ファイルを有効化して再起動 # systemctl restart apache2
以上でサーバ側に対して行う設定は終了です。続いてブラウザ経由にて行うフロントエンドの設定がありますので、こちらは次の機会でまとめます。