ラズパイでPing監視（1）Zabbixサーバー構築

## この記事について

今いる部署で新たなネットワークを組んだ際に死活監視の仕組みも自分が作る可能性が高く、予習を兼ねて自宅ラズパイNWにZabbix監視ボードを作りました。
 
とりあえず図のようなダッシュボード構築を目指して本稿ではサーバー構築手順を説明します。

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/bdc2019e-efb9-9b0c-f8a6-7c008deccfc5.png>


## 環境  

### RaspberryPi  

**Raspberry Pi：** Raspberry Pi 4 Model B Rev 1.2  
**OS：** Raspberry Pi OS Lite 64-bit (Debian GNU/Linux 12 (bookworm))  

### Zabbixサーバー構成  

[Download and install Zabbix](https://www.zabbix.com/jp/download)で以下の構成を選択しました。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/6e36506b-80e0-a545-ab65-b2451d3ce5ef.png>


## インストール  

### NetworkManager設定  

過去に作った備忘録を使って[eth0は動的](https://qiita.com/Saito5656/items/51502ff6b15a0411452c#%E6%9C%89%E7%B7%9A%E6%8E%A5%E7%B6%9A%E5%8B%95%E7%9A%84)、[wlan0は静的](https://qiita.com/Saito5656/items/51502ff6b15a0411452c#%E7%84%A1%E7%B7%9A%E6%8E%A5%E7%B6%9A%E9%9D%99%E7%9A%84)な接続を作りました。  

タイプしずらいので起動時に自動作成された接続は消します。  

```sh
sudo nmcli c delete Wired\ connection\ 1
```

### アップデート/基本パッケージ

```sh
sudo apt update  
sudo apt -y upgrade  

#cron使う場合に備えてpostfixもインストール
sudo apt install -y python3-dev python3-pip ptables iptables-persistent git postfix  
```

linux Firewallも設定します。手順は[過去記事](https://qiita.com/Saito5656/items/11ab4f08006496eb0ad7#filetr%E8%A8%AD%E5%AE%9A)を参照とします。  

### ロケール  

en_GB.UTF-8で初期設定されるのでen_GB.UTF-8を残し、usとjpをraspi-configで追加します。 
en_GB.UTF-8を削除するとZabbix(Psql)の初期設定が出来なくなりますので注意です。  
```
sudo raspi-config
```

> 5 Localisation Options -> L1 Locale
> en_GB.UTF-8  
> en_US.UTF-8
> ja_JP.UTF-8 as default  

```sh
sudo raspi-config nonint do_change_timezone Asia/Tokyo
sudo raspi-config nonint do_wifi_country JP
```

### PostgreSQL  

Zabbixインストールの前にDBをインストールします。  
手順説明は[過去記事](https://qiita.com/Saito5656/items/11ab4f08006496eb0ad7#postgresql%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89)を参照とします
バージョン指定しない場合はlatestがインストールされます。  

### Zabbix/依存関係  

[Zabbixサポートのガイダンス](https://www.zabbix.com/jp/download?zabbix=6.0&os_distribution=raspberry_pi_os&os_version=12&components=server_frontend_agent&db=pgsql&ws=nginx)に沿ってインストールします。  

```sh
wget https://repo.zabbix.com/zabbix/6.0/raspbian/pool/main/z/zabbix-release/zabbix-release_6.0-5+debian12_all.deb
sudo dpkg -i zabbix-release_6.0-5+debian12_all.deb
sudo apt update
sudo apt install -y zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
```

Zabbix serverにPostgreSQLのパスワードを設定します。

```sh
sudo sed -i "s/# DBPassword=/DBPassword=yourpassword/g" /etc/zabbix/zabbix_server.conf
```
nginxにlisten portとhostnameを設定します。

```sh
sudo sed -i "s/#        listen          8080;/        listen          8080;/g" /etc/zabbix/nginx.conf
sudo sed -i "s/#        server_name     example.com;/        server_name     zabbixpi;/g" /etc/zabbix/nginx.conf
```

Zabbix serverの自動起動を有効化し一旦再起動します。  

```sh
sudo systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm

sudo reboot
```

## 起動後初期設定  

ラズパイのipでZabbix Serverを呼び出します。

<img width= 300 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/5bc758af-9db1-03a9-e40b-a303f01303cc.png>

デフォルトロケールをja_JP.UTF-8にした場合は日本語で起動します。

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/60fc611d-c134-2397-926d-0d68ad178418.png>

確認して次に進みます。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/1f2a2f19-70b6-b0b1-c06d-b597e10e1209.png>

Psqlに設定したパスワードを保存します。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/95120b80-70a2-1118-548a-cc6bd85f1db0.png>

サーバー名は任意です。  
hostnameに合わせました。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/ba14d29d-d2a6-7f9c-49c5-05c92d9d105b.png>

確認して進みます。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/832c3e68-459b-149f-a9a7-bf9d969f9aba.png>

設定完了です。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/10467ff5-ac5b-c206-b0c8-6d1d7406e8e5.png>

### ログイン  

初期設定
> ユーザー名：Admin   
> パスワード：zabbix  

<img width= 300 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/effa248d-4207-350d-3319-8501d03a06cf.png>

defaultのdashboardが表示されたら各種の操作が可能な状態です。  

<img width= 750 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/bb1d51c3-e8b8-6842-f9f3-f92aa9884a9f.png>


## 次回  

[「ラズパイでPing監視（2）ダッシュボード構築」](https://qiita.com/Saito5656/items/e8a5cccd815b3c52de74)でダッシュボード構築手順を説明します。  


## 参考文献  

* [Download and install Zabbix](https://www.zabbix.com/jp/download)  
* [SpeedTest CLI結果をZabbixで定期観測する（Raspberry Pi3B+）](https://qiita.com/TAKANEKOMACHI/items/d82b94c7d59cac7f86fd)
* [Zabbixインストール(後編)](https://subro.mokuren.ne.jp/0520.html)
* [Zabbix を Raspberry Pi にインストール](https://qiita.com/nanbuwks/items/42a3c7e740e721bffbf7)