Open7

ZABBIX 5.4 for Raspberry Pi

やまけんやまけん

インストール

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

参考
https://www.ingenious.jp/articles/howto/raspberry-pi-howto/zabbix-setup/

やまけんやまけん

文字化け対策

dejavuというフォントが足りないのでグラフなんかに文字化けが出る。

$ sudo apt install fonts-dejavu-core
$ sudo systemctl restart zabbix-server zabbix-agent apache2

再起動してもうまくいかないなー

https://www.opensourcetech.tokyo/entry/2018/10/12/Zabbix_4.0_LTS_グラフ_日本語文字化けの修正方法

‘IPAフォント`が必要っぽいです。

$ sudo apt install fonts-ipafont-gothic

実態は

$ ls -l /usr/share/fonts/opentype/
合計 12
drwxr-xr-x 2 root root 4096  86 23:41 ipafont-gothic
drwxr-xr-x 2 root root 4096  86 23:42 ipafont-mincho
drwxr-xr-x 2 root root 4096  35 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
を設定。コメントをよく読む。

64bit版OSだとsudu apt update

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版のパッケージが提供されていないようです。もう自力でしか...

ソースコードの入手

https://www.zabbix.com/download_sources

ここからダウンドードできる。
現時点の最新版をダウンロードして展開。

$ wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.4.tar.gz
$ tar xvfz zabbix-5.4.4.tar.gz

ビルドしてみる

https://www.zabbix.com/documentation/current/manual/installation/install

準備

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されてインストールまで。しばしかかります。

続く...