Zabbix 6.0を試してみる

GWの時間がある内に、こないだ出たZabbix 6.0を試してみようと。

# 環境
Amazon LightsailでCentOS 8使えないからなー。。とりあえずUbuntu 20.04 LTSでやってみるか、と試して見れば「"E: Unable to locate package zabbix-apache-conf"」とか出てインストールが途中から進まない。仕方ないやここはCentOS 7で。。と思ったらZabbix ServerはCentOS 7をサポートしておらぬ。すごい久しぶりだがAmazon EC2でRHEL 8使うか。。
サイズは、無料枠のt2.microではメモリが全然足りない。2GBのt2.smallで。
あー、EC2のインスタンス起動画面は最近使ってなく知らなんだが、１画面に整理されるようになったんだな。使いやすくて良いことだ。

# インストール
https://www.zabbix.com/documentation/current/en/manual/installation/install_from_packages/rhel_centos

Zabbix Packagesのページで以下の設定で。
https://www.zabbix.com/download?zabbix=6.0&os_distribution=red_hat_enterprise_linux&os_version=8&db=mysql
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/2155a409-f699-e096-d441-e1d6fe2c6be1.png)

```bash
$ sudo -i
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
# dnf clean all
# dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
# yum install -y mysql-server
# systemctl enable mysqld --now
# mysql -uroot
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -ppassword -Dzabbix
# sed -i /etc/zabbix/zabbix_server.conf -e 's/^# DBHost=.*/DBHost=localhost/'
# sed -i /etc/zabbix/zabbix_server.conf -e 's/# DBPassword=/DBPassword=password/'
# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm
```

# Zabbix frontendを構成する
https://www.zabbix.com/documentation/6.0/en/manual/installation/frontend

EC2のセキュリティグループにHTTPのインバウンドルールを追加し、Webブラウザで「`http://＜IPアドレス＞/zabbix/`」に接続。
ちなみに、仮想マシンのメモリが1GBだとここでメモリが足りなくなってハングする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/89832e07-cc8c-8d16-fa07-a484da72b92b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/99be2854-b457-80eb-1491-77007354e74a.png)

パスワードは「password」。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/89033ef7-e89f-05be-bd01-802c729ac22c.png)

TimezoneをAsia/Tokyoに。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/119f0954-02a9-1bd0-eb70-504f05743b84.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/cca2d1ca-6560-ab59-14bd-8b804a056dc4.png)

初期ユーザー名/パスワードは「Admin」/「zabbix」。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/d98ec1c2-540a-ba12-9386-4df2bc0bd84f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/c9ec2df4-87e5-4a3f-413b-80676094925f.png)

うんまあ、良いんじゃないか。

# ログ監視を設定する
とりあえずZabbix serverの、/var/log/messagesの"ERROR"を監視させてみよう。
https://www.zabbix.com/documentation/current/jp/manual/config/items/itemtypes/log_items

左メニューの「Configuration」>「Hosts」、Zabbix serverの「Items」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/919c2f8e-92e0-dbf9-726b-aa7d70b1eefe.png)

画面右上の「Create item」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/069b686a-35c4-cd0f-90b7-82214c3ec392.png)

とりま、以下の感じでログ監視のItemを作成。
※追記、画像は「Type: Zabbix agent」となっているが、これは「Zabbix agent (active)」が良さそう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/24b14468-7ec5-52f5-1062-ef84676c25ae.png)

Zabbix agentがzabbixユーザーで動作していると/var/log/messagesが読めないため、AllowRootを設定。
https://www.zabbix.com/documentation/current/en/manual/appendix/install/run_agent_as_root
/var/log/messagesのアクセス権を変えるとかの方法もあるが、まあ、そちらの方が受け入れ難いだろう。
SELinuxもまあ無効にする。

```bash
# setenfoce 0
# sed -i /etc/selinux/config -e 's/^SELINUX=.*/SELINUX=disabled/'
# sed -i /etc/zabbix/zabbix_agentd.conf -e 's/^# AllowRoot=.*/AllowRoot=1/'
# sed -i /etc/zabbix/zabbix_agentd.conf -e 's/^# User=.*/User=root/'
# mkdir /etc/systemd/system/zabbix-agent.service.d
# cat > /etc/systemd/system/zabbix-agent.service.d/override.conf << EOF
[Service]
User=root
Group=root
EOF
# systemctl daemon-reload
# systemctl restart zabbix-agent
# logger ERROR
```

エージェントを再起動した後、「`logger ERROR`」と実行してしばらくすると、Zabbixの「Monitoring」>「Latest data」の「Log item」にいくつかのイベントが記録される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/f4cd9ff3-dfbb-9c09-035f-bde125ec7275.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/37a82c54-9bcf-6eb4-6445-9ee2c0807913.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/861da5a2-d6c1-aa88-ac13-33094b893cf8.png)

まあ、良いんじゃないか。
では、そのトリガーをば設定する。「Configuration」>「Hosts」で、Zabbix serverの「Triggers」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/30fb7bcf-7d5e-5c09-d5eb-b6d1c8c0c59b.png)

右上の「Create trigger」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/00fa7869-3fe6-c766-aefc-5fdd7bdfb5f4.png)

まあ、中身はよくわからないが以下の画面のように設定して、「Add」。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/c35c6af7-d753-1f6b-8207-f21a5d0c1683.png)

設定後、sshセッションでlogger ERRORを実行する。

```bash
# logger ERROR
```

しばらくすると、ZabbixのDashboardにDisasterの問題が一つ登録される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/985d6e3b-3408-c1c1-0c2b-554c6a3fb30b.png)

なお、イベントをCloseしたい場合はAckの「No」をクリックして、「Acknowledge」、「Close problem」。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/12c607a1-665b-a49f-81dc-f16ced3e4738.png)

# まとめ
いやまあ、ログ監視にこんな大層なシステムを導入する必要もないとはいつも思うんだが。とかく自分でスクリプトを書いて何かを監視するというのを嫌う人は嫌うというか、それが圧倒的多数な日本のITシステム故。