Raspberry pi4 (Cent OS7) にZabbix agentをInstallする 

Zabbix agentをRaspberry pi4にインストールしたいと思っていつも通りにrpmしようと思ったがエラー。
それもそのはずCPUも違うし、InstallしたOSがCent OS7なので例も少なく、苦戦したのでメモ。
ようは、Raspberry piとCent OS7というレアな組み合わせなためにソースからコンパイルするしかありません。

・・・言ったものの、基本的には先人のコピペです。

`[root@raspberrypi4 ~]# cat /etc/redhat-release`

```
CentOS Linux release 7.9.2009 (AltArch)
```

# (OSのインストール)
ここでは詳しく解説しません。下記Webサイトを参照ください。
https://www.clara.jp/media/?p=5792

#いろいろ をインストール
OSの更新と、必要なもの一式をインストールします。実はこの辺りきちんと調べていないのでいらないものが混ざっているかもしれません。

```
yum -y update 
yum -y install gcc make tar wget net-snmp net-snmp-utils net-snmp-devel
```

#Zabbix download
執筆時点で最新のLTSであるVer5.0で進めていきます。
https://www.zabbix.com/jp/download_sources

```
mkdir -p /opt/tmp/
cd /opt/tmp/
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.9.tar.gz
```

#コンパイル& インストール

##まずは解凍
ダウンロードしてきたソースを解凍します。

```
tar -xzvf zabbix-5.0.9.tar.gz
```

##コンパイル

解凍してできたフォルダに移動し、コンパイルします。
このとき、Agentのみをコンパイルするよう、オプションで指定します。

```
#解凍してできたフォルダに移動
cd zabbix-5.0.9

#コンパイル
./configure --enable-agent
```
無事完了したらmake install してね！と表示されます。
エラーを吐いた場合、大方
`yum install net-snmp-devel libevent-devel libcurl-devel`
の辺りを忘れていると思います。詳細はエラー文をよく読んでください。

##インストール
さきほど言われたとおりに

```
make install
```
makeコマンドは`-j`オプションで並列できますが、`make install` は並列でやらないほうが良いと思います。

#ユーザー・ディレクトリ・Config作成
zabbixユーザーを作成します。なお、zabbixユーザーはログイン不可のアカウントで作ります。

```
#ユーザーとグループ作成
groupadd -g 300 zabbix
useradd -u 300 -g zabbix -d /var/empty -s /sbin/nologin zabbix

#必要なディレクトリ作成し、所有者をzabbixに変更
mkdir /etc/zabbix/
mkdir /var/log/zabbix
mkdir /var/run/zabbix/
chown -R zabbix:zabbix /var/log/zabbix
chown -R zabbix*zabbix /var/run/zabbix/

#config作成
cp /opt/tmp/zabbix-5.0.9/conf/zabbix_agentd.conf /etc/zabbix/
```

#systemd用のservice作成
自動で作成されないのでこれも手動で作ります。
[すばらしい先人][link-1]がいらしたので拝借させていただきます。
[link-1]:http://extstrg.asabiya.net/pukiwiki/index.php?ZABBIX%203.2%20Agent%20%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%BC%EA%BD%E7%A1%CACentOS7%20%2B%20Raspberry%20Pi3%A1%CB

```
cat <<EOF > /usr/lib/systemd/system/zabbix-agent.service
   [Unit]
   Description=Zabbix Agentd
   After=network.target
   [Service]
   Type=oneshot
   ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
   PIDFile=/var/run/zabbix/zabbix_agentd.pid
   RemainAfterExit=yes
   [Install]
   WantedBy=multi-user.target
EOF
```

#config 編集
最低限起動するために、ConfigにZabbix-ServerのIPアドレスを書く必要があります。
113行目付近の`#Server=127.0.0.1`と154行目付近の`#ServerActive=127.0.0.1`のコメントアウトを無効にしてサーバーのIPを書き込みます。
私は1行そのままコピーして、コピーした行のコメントアウトを外してZabbix-ServerのIPを書きました。
そのため下記例では行番号がずれていますのでご注意ください。
(110~157はファイル内における行番号です)

```
vim /etc/zabbix/zabbix_agentd.conf

110 # Default:
111 # Server=
112 
113 #Server=127.0.0.1
114 Server=192.168.1.254
115 

154 
155 #ServerActive=127.0.0.1
156 ServerActive=192.168.1.254
157
```


##起動・自動起動登録

```
systemctl enable --now zabbix-agent
```

あとはZabbix-ServerでHostを追加するだけです。
おつかれさまでした。

#参考文献
[1] https://www.zabbix.com/documentation/5.0/manual
[2] http://extstrg.asabiya.net/pukiwiki/index.php?ZABBIX%203.2%20Agent%20%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%BC%EA%BD%E7%A1%CACentOS7%20%2B%20Raspberry%20Pi3%A1%CB
[3] http://extstrg.asabiya.net/pukiwiki/index.php?ZABBIX%204.0%A6%C1%C8%C7%20Proxy%20Raspberry-Pi%A4%D8%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%BC%EA%BD%E7
[4] https://fingerease.work/archives/raspi_zabbix_install/