名前だけ知ってたZabbixに挑戦したよ！！

# はじめに
いやはや今回初めて、Zabbixに挑戦してみましたよww
名前はよく聞いていて、NaniwaNOG2でもZabbixサーバをさくらのクラウドで立てていて、RTX1210のSNMP監視を行っていました。私はRTX1210の設定を担当しており、サーバに関しては先輩が担当していました。先輩の作業の様子を見ていて「いつか自分もやってみよう！！」と心を馳せていました。(人の"いつか”っていつかになるか分からないものですねwww)

そしてその"いつか”が今日(2024/2/10)ということです。
きっかけとして、最近NTPサーバやファイアウォール、ルータ、スイッチなど色々とネットワーク機器をヤフオクで漁っては購入しており、「うーん、監視できたらおもろいんじゃねww」という気持ちになったからです。あとは、最近導入したProxmoxで何かできないかなと思っていたのもあります。

そんなこんなで、今回、Proxmox上でZabbixサーバを立てて、RTX1210のSNMP監視を行ってみたので、「少しQiita書こかな」と思った次第です。
(なんだろ、割と分かりやすく書くけど分かりにくかったらごめんなさい)

` NaniwaNOGって何だろう？ なにわのNOG？ ` ↓

https://knowledge.sakura.ad.jp/39964/

# 環境

Zabbixサーバに求められるスペックがイマイチ掴めなったですね。[こちら](https://www.sraoss.co.jp/tech-blog/zabbix/zabbix70-install/)を参照する限り、小規模なら2core、8Gibぐらいらしいです。まぁ、今回は、こんな環境でやりました〜


- ZabbixマネージャーOS： Ubuntu22.04
    - コア数：2 core
    - メモリ：4.91 GiB (適当です🙇)

![スクリーンショット 2025-02-10 22.53.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/d905ed30-c135-c90c-ab31-2f676b13d833.png)

- Zabbixバージョン： 7.2

![スクリーンショット 2025-02-10 22.55.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/76b55cfc-3b28-a076-6375-26c74cb9b18d.png)

- 監視対象： YAMAHA RTX1210

![IMG_0532 2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/b346a233-686a-fcbf-f2c9-b722882ac1f7.jpeg)

# Zabbix サーバの構築

ここからは、Zabbixサーバの構築について、話していきます。今回構築するに当たって、以下のサイトを参考にさせていただきました。(お世話になりました！！)

https://www.zabbix.com/jp/download?zabbix=6.4&os_distribution=ubuntu&os_version=22.04

https://qiita.com/ohtsuka-shota/items/d321bc31db04432fcaad

(以下通りにZabbixサーバーのプラットフォームを選択しました。)
![スクリーンショット 2025-02-10 23.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/014942a3-f3f3-f5f8-803f-80cef5711518.png)

### 1.Zabbixのリポジトリのインストール
```
# wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu22.04_all.deb
# dpkg -i zabbix-release_latest_7.2+ubuntu22.04_all.deb
# apt update
```

### 2.Zabbix、MySQL、Apacheのインストール
```
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent　mysql-server mysql-client apache2 -y
```

### 3.MySQLデータベースの作成
```
# systemctl start mysql apache2
# systemctl enable mysql apache2
# mysql -uroot -p

password　<= ご自身のパスワードで〜

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> set global log_bin_trust_function_creators = 1;
mysql> quit;
```

### 4.スキーマとデータの準備
この処理がマジで長いので気楽に、ポケポケでもやりましょうー
```
# zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
```

### 5.MySQLの設定変更
```
# mysql -uroot -p
password <= ご自身のパスワードで〜

mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
```

### 6.Zabbixサーバの設定変更
DBPassword = ご自身のパスワード を設定してください。
```
# vim /etc/zabbix/zabbix_server.conf
```
![スクリーンショット 2025-02-10 23.26.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/bb757937-baf5-bee5-ce6c-dd4cf4a98d18.png)

### 7.ようやくZabbixサーバ スタート！！
ここまでは、参考資料をもとに設定しているので、何かうまく行かない時は参考資料を見ていただければヒントが眠っているかも知れません！！あとは、ChatGPTと仲良くやりましょう〜
```
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
```


# 初期設定

http://"IPアドレス"/zabbix でWebブラウザからアクセスしてみましょう！！
すると、初期設定ページに飛びますね！！
指示に従ってボタンを押下していきます。「Configure DB connection」ではデータベース作成時に設定したUser名とPasswordを入力しましょう。(今回だと、User名はzabbixです)

最後にログイン画面が表示されるので、

```アカウント``` => Admin
```パスワード``` => zabbix

でログインしましょう！！

すると、いよいよ、いよいよ、このカッコいいダッシュボードを見ることができるようになります！！(色んな情報が見られて、かっこいいですよねww)

![スクリーンショット 2025-02-10 23.47.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/ab4e1c89-8bdb-2287-2925-8a69d32de56e.png)


https://www.site24x7.jp/blog/zabbix-6-construction/#:~:text=2.%E3%80%80Zabbix%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A

# RTX1210のSNMP監視
よしよし、ここからはRTX1210をZabbixで監視してみましょう！！

### Zabbixサーバでの準備
まず、Zabbixサーバ側での準備を行いましょう!!
```
 準備
# apt install snmp
# apt install snmp-mibs-downloader

# cd /usr/share/snmp/mibs
# wget http://www.rtpro.yamaha.co.jp/RT/docs/mib/yamaha-private-mib.tar.gz
# tar -xvf yamaha-private-mib.tar.gz
# cd ../
# vim snmp.conf

  mibs all #記入

# service snmpd restart

 確認
# snmptranslate -IR -On yrhCpuType
(数字が出力される)
```

https://mistymagich.wordpress.com/2016/07/19/ubuntu-14-04-ubuntu-16-04%E4%B8%8A%E3%81%AEsnmpwalksnmptranslate%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E5%8A%9B%E3%81%95%E3%82%8C%E3%82%8B/

### RTX1210でのSNMPv2の設定
#### 設定コマンド
以下の設定コマンドをRTX1210へ投入しましょう！
```
# snmp host <zabbixサーバIPアドレス> <コミュニティ名>
# snmp trap host <zabbixサーバIPアドレス>
# snmpv2c host <zabbixサーバIPアドレス> <コミュニティ名>
# snmpv2c trap host <zabbixサーバIPアドレス>
```

https://www.cybertrust.co.jp/blog/linux-oss/system-monitoring/zabbix-07.html#:~:text=Yamaha%20%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%20SNMP%20%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B

#### 確認
RTX1210でSNMPの設定が有効になっているかサーバから確認してみましょう！！
設定がうまくいっている場合は、大量の文字列が出力されるので「うまくいってるなぁ」と思うことでしょう。
```
# snmpwalk -v2c -c <コミュニティ名> <RTXのIPアドレス>
```

### Webページ上での設定

#### 1. Zabbixテンプレートの準備

今回は、こちらの[テンプレート](https://sukejob.com/contents/pc/zbx_export_templates_RTX1200.xml)を使用しました。「RTX1200」を「RTX1210」に置換します。置換手段はなんでもいいです、手作業でもいいですし、vscodeとかで全置換するとかでもいいです。置換後のファイルは、zabbixのWebページを介して読み込ませます。(任意ですが、Template groupsからテンプレートのグループを変更してください)

![スクリーンショット 2025-02-11 1.55.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/225033b9-d444-29e2-9e15-a614ab585a63.png)

https://devlog.arksystems.co.jp/2019/12/17/6781/


#### 2. ホストの追加


ZabbixのWebページからRTX1210を監視対象として追加していきましょう。まず、Monitoring >> Host へ移動し、Create host ボタンを押下します。すると、監視対象の情報を設定する画面を表示されます。今回は以下内容を入力しました。入力後は、addボタンを押下してください。

- ```Host name ```
    - RTX1210
- ```Templates ```
    - 先ほど、入手したテンプレートファイルを選択しましょう
- ```Host groups ```
    -  現在はなんでもいいと思います(Applicationとかでも)
    - 新しくグループを作成したい場合:
        - Data collection >> Host groups >> create host group から新しいグループを作成
        - 例：Network Devices
- ```Interfaces ```
    - ```add```
        - ```SNMP```
            - ```IP address``` => RTX1210のIPアドレス
            - ```Connect to``` => IP
            - ```Port``` => 161
            - ```SNMP version``` => SNMPv2
            - ```SNMP community``` => 同一のコミュニティ名

![スクリーンショット 2025-02-11 1.35.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/93232a01-2b71-363f-1be0-6f4137e61975.png)
![スクリーンショット 2025-02-11 1.37.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/17d8be79-ca5c-968a-da93-fe4f223eaa92.png)

https://qiita.com/t-son-wk/items/00006bb84ee687cccb1a

#### 3. 確認
ホストを追加した際に、ちゃんステータスがEnabledになっていることを確認しましょう！！この状態になっていると、Latest dataやGraphなどを閲覧可能になると思いますので、Graphなどでトラフィック量を見てみると面白いですよ！

![スクリーンショット 2025-02-11 2.01.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/eb4fec73-9234-ffe9-26f5-5c86585a9fab.png)


## RTX1210用のダッシュボードの作成〜
ここからは、RTX1210用のダッシュボードを作成してみましょう！！
ダッシュボードの作成するには、Dashboards >> Create dashboardボタンを押下し、ダッシュボードの名前を決めて適用すると以下のような真っ白なダッシュボード画面が現れます。
![スクリーンショット 2025-02-11 2.08.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/a6654ea5-de67-1d32-db54-2d89a4d2be8b.png)

試しに、LAN2のトラフィック量を表すリアルタイムグラフを表示させてみましょう。まず、Add a new widgetを押下することでAdd widget画面を表示させます。そこからは、以下のように設定します。
- ```Type``` => Graph (classic)
- ```Source``` => Graph
- ```Graph``` => RTX1210: RTX1210_LAN2
- ```Time period``` => Dashboard

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/7324d9a1-b175-ab07-fbfc-d5ada023fcc4.png)

 すると、ドドん!! トラフィック量を表すリアルタイムグラフが！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/9ae53000-f966-aa68-851b-44b9bc1a4023.png)

もちろん、グラフだけでなく、割と様々なデータを取得することが可能です。例えば、CPU使用率、温度、パケットの送受信数とか、なんかわけわからん値とか取れます。あとは、文字の大きさとかの表示方法を独自のものに編集することも可能です。人によって作成されるダッシュボードが異なるのって、面白いですよね。私もX(旧:twitter)などで人のダッシュボードを見て勉強しようと思います！！

で、今回私が作成したRTX1210用のダッシュボードがこちらになります！！！！

<details><summary> <font color="gree">RTX1210用のダッシュボード！！！(見てね♪)</font> </summary>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/4dfedc72-9d39-762a-ce52-62321f0f2e67.png)
</details>


なかなか、いい感じじゃないですかね？トラフィック量が見えるのはもちろん、稼働時間、内部温度などの情報がこのダッシュボードに詰まっています。なんか、一つの画面で複数の情報が見えるのは興奮しますね！！

ただ、もう少し色合いにこだわりたいところですね、色が多すぎるのはあまり好みではないのですが、あまりにも単調すぎる気がします。あと、温度がずっと42度なのが気になりますね(ちゃんと測れているのか心配です)。

<details><summary> <font color="gree">進化形態！！(見てね、見てね♪♪)</font> </summary>
こちらの進化形態では、RTX1210(ルータ)、WLX222(AP)、TS2210(NTPサーバ)の情報を可視化していますよ！！おおぉ、イイね、イイね、アガるね♪

![スクリーンショット 2025-02-12 6.49.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4005556/310b2fad-2b18-5132-23bf-bff4e8afa078.png)

</details>


# おわりに
今回、長々とZabbixサーバの構築手順とRTX1210のSNMP監視について書かせていただきました。ようやくNaniwaNOGで先輩がやっていたことを理解することができました〜。
また、Zabbixサーバの構築記事は多くあるため、こちらの記事の存在意義は薄い部分もあります、、、でも、この記事を見てZabbixサーバの構築に興味を持ったり、構築するにあたって少しでも参考になれば幸いです！！ありがとうございました！！