zabbixのいろは【RaspberryPiの設定とZabbixのインストール編】

# Zabbixを自宅に導入してみよう
## なぜ自宅に入れようと思ったのか
いままでは開発の部署にいたのだが、クラウドの保守運用をやるようになり、普段はZabbixではないツールを使って監視をしているのだが、いまいち使いこなせないのと、実際に好き勝手やってみたかったので、２年前にRaspberryPiを買っていたが何も触らずに放置していたので、引っ張り出した。Linuxも触ったことがなかったのと、普段使っているツールをRaspberryに入れいている事例が見当たらなかったので、Zabbixを選択した。

## 導入環境
 - OS:Debian 10.8
 - zabbix_server:(Zabbix) 5.2.5
 - PHP:7.3.27
 - Apache:2.4.38
 - MariaDB:10.3.27

## RaspberryPiの基本設定
### OSの準備
'[Raspberry Pi Imager](https://www.raspberrypi.org/software/)'を使用した。
OSの選択はデスクトップなしの「Raspberry Pi OS Lite(32-bit)」（Linuxのコマンドに慣れたかったため）
![Imager画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/bc7ce1aa-4baa-9851-95c5-e319c3259949.png)

### 起動
初期アカウントは以下の通り
 - User:pi
 - PW:raspberry

とりあえず、ログインまではできた

### RaspberryPiの初期設定
初めてLinux関連を触るのでコマンドを知らなければどこまで設定しておいた方が良いのか、何をして良いのかわからなかったので、Qiitaで検索して、以下のページを参考にさせていただきました。

 - 参考:[Raspberry Pi 初期設定](https://qiita.com/HeRo/items/c1c30d7267faeb304538)

```
sudo raspi-config
```
1. wifi設定
2. ロケーション設定
3. SSHの有効化

```
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
```
 - OSやパッケージの更新作業
  - 「static ip_address=192.168.XXX.XXX/24」(固定するIP)を追記

```
sudo vi /etc/dhcpcd.conf
```

- SSH認証用の証明書作成
     - こちらは「[ラズパイ入手したらまずやること、デフォルトユーザーとSSHログイン認証を変更する](https://monoist.atmarkit.co.jp/mn/articles/1912/11/news022_3.html)」を参考にした
- [cyberduck](https://cyberduck.io/)を使って作成した証明書ファイルをダウンロード
- Macbookより接続できたかの確認を行う

```
■raspberrypi側
sudo ssh-keygen -t rsa
cd /home/[user]
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
```

```
■Macbook側
ssh -i ~/id_rsa [user]@raspberrypi.local
```


上記以外にやったり詰まったところ

- Macでは勝手に名前解決してくれることを知った「ping raspberrypi.local」で疎通完了

```
ping raspberrypi.local
```

- 前に使ってた時のキャッシュ？が残っていて下記のようなエラーメッセージでmacbookからraspberrypi.localでSSH接続ができなかった
    - エラーに記されているファイルmacbook側の「/Users/user/.ssh/known_hosts」内にある行を削除する

```
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 
```

- セキュリティ強化のため、初期ユーザー'pi'は、新しく作ったユーザーに全権限を移行してから削除

```
sudo adduser [newuser]
sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio [newuser]
sudo userdel -r pi
```

## Zabbix Serverのインストール
以下のページを参考にさせていただきました。

 - [Raspberry Pi 監視サーバの構築（Zabbix編）](https://www.ingenious.jp/articles/howto/raspberry-pi-howto/zabbix-setup/)


### Apacheのインストール
```
sudo apt install apache2
apache2 -v →バージョン確認
```

### PHPのインストール
ここだけ参考通りに行かなかったので、別のやり方でインストール

```
sudo apt-get install php →ここで7.3.27がインストールされる
php -v
sudo apt install php7.3-gd php7.3-bcmath php7.3-xml php7.3-mbstring php7.3-mysql
sudo vi /etc/php/7.3/apache2/php.ini
[[mbstring.language = Japanese   <== コメントアウト解除]]
sudo apt install php7.3-fpm
sudo systemctl restart apache2
```
自分はPHP環境の動作確認も行いました。問題なくPHPの情報が表示されました。

### MariaDBのインストール

```
sudo apt install mariadb-server-10.3
sudo  mysql_secure_installation
sudo mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by 'password' with grant option;
```

### Zabbix監視サーバのインストール

```
wget https://repo.zabbix.com/zabbix/5.2/raspbian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
sudo dpkg -i zabbix-release_5.2-1+debian10_all.deb
apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
```

### 初期データベースの作成

```
systemctl status mariadb
sudo mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'password';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
```

### 初期スキーマ及びデータのインポート

```
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
```


### Zabbixサーバの接続データベース設定

```
sudo vi /etc/zabbix/zabbix_server.conf
[[DBPassword=password  <== パスワードを記入]]
```


### Zabbixサーバおよびagentプロセスの起動

```
systemctl status apache2
systemctl status zabbix-server
systemctl status zabbix-agent
```

### Zabbixサーバおよびagentプロセスの自動起動設定

```
sudo systemctl enable zabbix-server zabbix-agent
```

### Zabbix起動確認と基本設定
http://raspberrypi.local/zabbix へ接続する。
![Zabbix-Setup-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/66dfeba5-8634-1398-0aac-509a3ec68ab4.png)

画面で表示される通りに設定を行なっていく
上記の設定が完了すると、ZabbixServer(RaspberryPi)の監視のみ可能となっている。

## Zabbix Agentのインストール
今回は自宅で使用しているWindows10 Proにagentを追加してみる
### インストーラーのダウンロード
以下のサイトからagentのインストーラーをダウンロード
[Download and install Zabbix](https://www.zabbix.com/download)
![スクリーンショット 2021-03-22 1.58.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/56956530-eeaf-0a5d-8ba8-5f2af1ddfddf.png)

### インストーラーの実行
![スクリーンショット 2021-03-22 2.00.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/3596296d-4501-5224-c8e7-c53b692a6523.png)
![スクリーンショット 2021-03-22 2.03.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/28602193-ebe4-69bb-b411-8987244f0103.png)
![スクリーンショット 2021-03-22 2.04.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/c5a6ffb0-c4aa-3ec4-f4cf-7d7dc9df0a21.png)
![スクリーンショット 2021-03-22 2.06.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/cfb71c5b-71b5-668b-fa92-656a0bc15709.png)
![スクリーンショット 2021-03-22 2.06.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/d88fb529-a535-a433-2821-d2ea4f3ab345.png)
![スクリーンショット 2021-03-22 2.07.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/97a417c1-b3ca-4bbc-941e-88d489881bf5.png)

インストール作業が完了しました。
念の為Windowsサービスに登録されているかの確認を行う。
![スクリーンショット 2021-03-22 2.08.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/1d066f11-25b6-7981-2d89-968b7a5281ee.png)

問題なさそう。

### ホストの追加
![スクリーンショット 2021-03-22 2.10.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/082215ce-1242-fb0e-1aa1-eeb3e1ffa321.png)
ログイン→設定→ホストの順序で上記の画面まで遷移する。
遷移後に右上にある「ホストの作成」をクリックする。
以下のような設定を行う。
![スクリーンショット 2021-03-22 2.15.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/e80ce70a-dc4d-abb0-62b9-caaecbe4b374.png)

![スクリーンショット 2021-03-22 2.13.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/4a16695d-ed34-c075-884e-e71bafc4051f.png)

設定が完了次第、追加ボタンをクリック

### 追加できたかの確認
しばらく経つと追加したPCのagentから情報を取得することができ、ダッシュボードに変更が反映される。
![スクリーンショット 2021-03-22 2.17.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573960/7a5cc7c1-1488-4908-2c97-da115a7ac657.png)

agentの追加作業は以上にする。

## やってみての感想
Linuxとかの勉強も一緒にできるからいいかなと思ってやってみたけど、Linuxの設定だったり、Vimのコマンドに手こずったけど、最初に「RasoberryPi Zabbix」で検索して、Ingenious Siteのサイトがわかりやすく、全て書かれていたので、思った以上にスムーズに構築することができたのはよかった。Windows10上にVM環境でいくつかサーバーをたてて、監視の設定やトリガー設定など色々と統合監視ツールと言われることを試していきたい。
今週中に色々とお試しで触って設定関連の記事もそのうち出していきたい。