Raspberry PiにZabbix Serverを構築してサーバとIX2215を監視するよ
はじめに
Debian GNU/Linux 12 (bookworm)
Zabbix Server 6.0
Zabbix Agent2
Apache2
mariadb Ver 15.1 Distrib 10.11.3-MariaDB
NEC UNIVERGE IX2215
現在、Proxmox VEを用いてLXCコンテナを立てたりVMを立てたりして遊んでいます。
ラズパイ余ってるし、IXもあるしトラフィック監視とかしたい。
ラズパイにZabbix Serverを立て、監視対象であるサーバにZabbix Agent2をインストールし、IX2215のSNMPを有効化して監視します。
🛠監視する側の準備👀
Zabbix Server
今回はbookwormにアップデートしたラズパイに入れますが、バージョンに合わせてください。
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 zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
MariaDB
データベースの設定をしていきます。
sudo apt install mariadb-server
sudo mariadb -uroot -p
MariaDB> create database zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB> create user ユーザー名@localhost identified by 'パスワード';
MariaDB> grant all privileges on zabbix.* to ユーザー名@localhost;
MariaDB> set global log_bin_trust_function_creators = 1;
MariaDB> quit;
インポートします。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uユーザー名 -p zabbix
log_bin_trust_function_creatorsオプションを無効に戻します。
sudo mariadb -uroot -p
MariaDB> set global log_bin_trust_function_creators = 0;
MariaDB> quit;
コンフィグ
/etc/zabbix/zabbix_server.conf
に先程設定したものに編集します。
DBName=データベース名
DBUser=ユーザー名
DBPassword=パスワード
Agent2のコンフィグをいじります。
Server=ZabbixサーバのIP
ServerActive=ZabbixサーバのIP
Hostname=WebGUIで登録するホスト名
ServerとAgent2間の通信をPSKで暗号化します。
sudo su
openssl rand -hex 32 > /etc/zabbix/zabbix_agent2d.psk
/etc/zabbix/zabbix_agent2.conf
に追加します。
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSKを識別するための任意の文字列
TLSPSKFile=/etc/zabbix/zabbix_agent2d.psk
日本語化
WebGUIで日本語を表示するために、
sudo raspi-config
Localisation Options
→ Locale
→ ja_JP.UTF-8 UTF-8
を選びます。
WebGUIで文字化けする箇所があるのでIPAフォントをインストールします。
sudo apt install fonts-ipafont-gothic
シンボリックリンクを作成します。
sudo ln -s /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf /usr/share/zabbix/assets/fonts/ipagp.ttf
ls -l /usr/share/zabbix/assets/fonts
lrwxrwxrwx 1 root root 38 Sep 16 06:42 graphfont.ttf -> /etc/alternatives/zabbix-frontend-font
lrwxrwxrwx 1 root root 50 Sep 17 13:44 ipagp.ttf -> /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf
/usr/share/zabbix/include/defines.inc.php
をいじります。
define('ZBX_GRAPH_FONT_NAME', 'graphfont');
define('ZBX_FONT_NAME', 'graphfont');
↓
define('ZBX_GRAPH_FONT_NAME', 'ipagp');
define('ZBX_FONT_NAME', 'ipagp');
仕上げに...
Zabbix ServerとAgent2、Apache2を再起動し、起動時に開始するように設定します。
sudo systemctl restart zabbix-server zabbix-agent2 apache2
sudo systemctl enable zabbix-server zabbix-agent2 apache2
念のために動いているか確認します。
sudo systemctl status zabbix-server zabbix-agent2 apache2
WebGUI
WebGUIにアクセスして設定していきます。
http://サーバのIP/zabbix
先程設定したユーザー名とパスワードを入力。
任意のサーバー名を入力。
デフォルトではユーザー名 Admin
, パスワード zabbix
となっています。
暗号化を有効にする
先程設定したIdentityとPSKを入力。
🛠監視される側の準備🍠💬 👀
同じようにリポジトリを登録してからAgent2をインストールします。
↓のはUbuntu向けのパッケージなので各自変更してください。
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo apt update
sudo apt install zabbix-agent2
コンフィグ
Agent2のコンフィグをいじります。
Server=ZabbixサーバのIP
ServerActive=ZabbixサーバのIP
Hostname=WebGUIで登録するホスト名
ServerとAgent2間の通信をPSKで暗号化します。
sudo su
openssl rand -hex 32 > /etc/zabbix/zabbix_agent2d.psk
/etc/zabbix/zabbix_agent2.conf
に追加します。
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSKを識別するための任意の文字列
TLSPSKFile=/etc/zabbix/zabbix_agent2d.psk
Agent2を再起動し、起動時に開始するように設定します。
sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
ホスト作成
ホストタブから監視対象を追加します。
ホスト名は/etc/zabbix/zabbix_agent2.conf
で設定したものを入力。
適当にテンプレとグループを追加していきます。
こんな感じになったらオーケーです。
IX2215
IX2215のコンソールからSNMPを有効します。
# config
(config)# snmp-agent ip enable
(config)# snmp-agent ip community コミュニティ名 ro
(config)# snmp-agent ip host ZabbixServerのIP コミュニティ名 version 2
(config)# write memory
IX用のテンプレートをダウンロードして、設定→テンプレート
でファイルをインポートします。
ホストを登録します。
マップ
Ctrlキー押しながらクリックすることでホスト間にリンクを繋げることができます。
設定
→ ホスト
→ アイテム
からキーをコピーして
リンクのラベルに
{?last(/ホスト名/キー)}
を入力することでトラフィックなどをマップに表示できます。
参考
Discussion