ZABBIX 5.4 for Raspberry Pi
はじめに
これまで色々やってきたわけですが、ZABIIXのことについて一つにまとめてたい。
経緯
掃除時に発掘された手持ちの Raspberry Pi 2B+にZABBIXをいれてネットワークを監視することとする。自宅ネットワーク改善計画としては情報を可視化して得ようという考えですすめることにする。
インストール
OS
Raspberry Pi OSの最新lite版をインストール
このあたりから入手。
OSのセットアップ
まず最初はアップデート
$ sudo apt update
$ sudo apt upgrade
$ sudo reboot
必要あパッケージをインストール
例に習って まずはApatch。それから SURF PPAを使うためおライブラリ。
$ sudo apt install apache2
$ sudo apt install lsb-release apt-transport-https ca-certificates
SURF PPAの設定
まずはPGキーから
$ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
SURY PPAリポジトリの
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
設定分を含めパッケージ更新
$ sudo apt update
php7.4をインストール
$ sudo apt install php7.4
$ sudo apt install php7.4-gd php7.4-bcmath php7.4-xml php7.4-mbstring php7.4-mysql
日本語使用のためphpの設定を編集
$ sudo i /etc/php/7.4/apache2/php.ini
編集内容
(省略)
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese
mbstring.language = Japanese
のコメントアウトを解除するだけ
PHP-FPMをインストールする。
$ sudo apt install php7.4-fpm
ここまでで使用するphp
設定関連は終了。
database
MarinaDBを使う。
$ sudo apt install mariadb-server-10.3
初期設定
$ sudo mysql_secure_installation
いくつかの回答が必要
-
Enter current password for root (enter for none):
ENTER -
Set root password? [Y/n]
Y
を入力 -
New password:
パスワードを入力 -
Re-enter new password:
再度パスワードを入力 -
Remove anonymous users? [Y/n]
Y
を入力 -
Disallow root login remotely? [Y/n]
n
を入力(後で別サーバから見えるよう) -
Remove test database and access to it? [Y/n]
Y
を入力 -
Reload privilege tables now? [Y/n]
Y
を入力
初期設定の変更
$ mysql -uroot -p
これでログインできない状態です。 sudo
が必要
この状態を修正する。
$ sudo mysql -u root -p
grant all privileges on *.* to root@localhost identified by 'password' with grant option;
flush privileges;
quit
これで、sudo
なしで 使用できるようになります。
ZABBIXのインストール
リポジトリ追加
$ wget https://repo.zabbix.com/zabbix/5.4/raspbian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb
$ sudo dpkg -i zabbix-release_5.4-1+debian10_all.deb
$ sudo apt update
ZABBIXパッケージをインストール
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
データベースの作成
初期データベースを作成します。
$ sudo mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
reate user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
データベース作成して、ユーザー作成して権限設定している。
'password'
は適宜。
スキーマと初期データ
$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
ここからユーザがrootでは無いところに注意。前で設定したパスワードを使う。
ZABBIXのデータベース接続設定
sudo vi /etc/zabbix/zabbix_server.conf
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=password
DBPassword
に設定したパスワードを入力
起動
$ sudo systemctl restart zabbix-server zabbix-agent apache2
自動起動設定
$ sudo systemctl enable zabbix-server zabbix-agent
参考
文字化け対策
dejavuというフォントが足りないのでグラフなんかに文字化けが出る。
$ sudo apt install fonts-dejavu-core
$ sudo systemctl restart zabbix-server zabbix-agent apache2
再起動してもうまくいかないなー
‘IPAフォント`が必要っぽいです。
$ sudo apt install fonts-ipafont-gothic
実態は
$ ls -l /usr/share/fonts/opentype/
合計 12
drwxr-xr-x 2 root root 4096 8月 6 23:41 ipafont-gothic
drwxr-xr-x 2 root root 4096 8月 6 23:42 ipafont-mincho
drwxr-xr-x 2 root root 4096 3月 5 08:02 linux-libertine
これを必要な場所に
$ sudo sudo ln -s /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf /etc/alternatives/zabbix-frontend-font
あとは、ログ保存などWriteが多くなるのでSDCardが不安。外付けを考えねば。
agentだけインストールする。
$ wget https://repo.zabbix.com/zabbix/5.4/raspbian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb
$ sudo dpkg -i zabbix-release_5.4-1+debian10_all.deb
$ sudo apt update
$ sudo apt install zabbix-agent
zabbix-agentの設定
$ sudo vi /etc/zabbix/zabbix_agentd.conf
Server
ServerActive
を設定。コメントをよく読む。
sudu apt update
で
64bit版OSだとN: Skipping acquire of configured file 'main/binary-arm64/Packages' as repository 'https://repo.zabbix.com/zabbix/5.4/raspbian buster InRelease' doesn't support architecture 'arm64'
ようするに、arm64版はまだ準備されていないということのようです。
でも正常に動いているように見えます。
ZABBIXサーバ障害?
ZABBIXで障害を捉える。動かしてる2B+が
SDCardの読み書きが遅いって。
さてどうするか?
唐突に機能しなくなった。
2B+で動かしていますが、こんな感じの設定。毎朝5:00にリブートしています。
昨日、気づくとリブート以降のデータが全く取れてないことが判明。
...っで原因。
何の気もなくapt upgrade
していて ZABBIXがアップデート。
/etc/zabbiz/zabbiz_seerver.conf
が書き変わっていました。
これでMySQLへの接続ができなくなっていたことが原因。
アップデートは気をつけよう。
自力でbuildしてみる
Raspberry Pi 4B+に64bit版OSを入れていますが、64bit版のパッケージが提供されていないようです。もう自力でしか...
ソースコードの入手
ここからダウンドードできる。
現時点の最新版をダウンロードして展開。
$ wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.4.tar.gz
$ tar xvfz zabbix-5.4.4.tar.gz
ビルドしてみる
準備
groupとuser、必要なディレクトリを作成する。
$ sudo addgroup --system --quiet zabbix
$ sudo adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix
$ mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
$ sudo chown zabbix:zabbix /var/lib/zabbix
buildしてみる
To configure the sources for a Zabbix server and agent, you may run something like:
サーバーとエージェントを作成する。 DBはMySQL(mariadb-10.3)
$ ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
エラーはパッケージが足りないってことで都度対応しながらエラーがなくなるまで。
(メモしてなかった)
エラーがなくなるとこういう感じ
Configuration:
Detected OS: linux-gnu
Install path: /usr/local
Compilation arch: linux
Compiler: cc
Compiler flags: -g -O2
Library-specific flags:
database: -I/usr/include/mariadb -I/usr/include/mariadb/mysql
libXML2: -I/usr/include/libxml2
Net-SNMP: -I/usr/local/include -I/usr/lib/aarch64-linux-gnu/perl/5.28/CORE -I/usr/include/mariadb -I/usr/include/mariadb/mysql -I. -I/usr/include
OpenIPMI: -I/usr/include
Enable server: yes
Server details:
With database: MySQL
WEB Monitoring: cURL
SSL certificates: /usr/local/share/zabbix/ssl/certs
SSL keys: /usr/local/share/zabbix/ssl/keys
SNMP: yes
IPMI: yes
SSH: no
TLS: no
ODBC: no
Linker flags: -L/usr/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu/ -L/usr/lib -rdynamic
Libraries: -lmariadb -lnetsnmp -lOpenIPMI -lOpenIPMIposix -lz -lpthread -levent -lcurl -lm -ldl -lresolv -lxml2 -lpcre
Configuration file: /usr/local/etc/zabbix_server.conf
External scripts: /usr/local/share/zabbix/externalscripts
Alert scripts: /usr/local/share/zabbix/alertscripts
Modules: /usr/local/lib/modules
Enable proxy: no
Enable agent: yes
Agent details:
TLS: no
Modbus: no
Linker flags: -rdynamic
Libraries: -lz -lpthread -lcurl -lm -ldl -lresolv -lxml2 -lpcre
Configuration file: /usr/local/etc/zabbix_agentd.conf
Modules: /usr/local/lib/modules
Enable agent 2: no
Enable web service: no
Enable Java gateway: no
LDAP support: no
IPv6 support: yes
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
これで準備完了。
make install
とあるけどインストールには権限が無いので
$ sudo make install
これでbuildされてインストールまで。しばしかかります。
続く...