4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSD14 に Zabbix6(LTS) をインストールする

Last updated at Posted at 2023-12-04

しまねソフト研究開発センター(略称 ITOC)にいます、東です。
この記事は、FreeBSD Advent Calendar 2023 の記事です。

FreeBSD14 がリリースされました。以前より、FreeBSD12 で Zabbix version 4 を使った監視システムを運用していましたが、このリリースに合わせて作り直すことにしました。

方針

  • 最新の FreeBSD リリース版を使う。
  • 最新の Zabbix LTS 版 (version 6) を使う。
  • Zabbix Server と Zabbix Frontend は、同じサーバ上へインストールする。
  • 現在の Zabbix サーバで監視している台数はたかが知れている & 過去データは必要ないので、現在の登録情報の移行はせず、クリーンインストールしたうえで監視対象も新規登録とする。

OS インストール

FreeBSD ダウンロードサイトから、インストールディスクの iso image をダウンロードし、それを使って普通にインストールします。
Screenshot_20231203_172829.png

パーティションは分けても良いですが、今回は単一パーティションでやってみました。
Screenshot_20231203_173010.png

必要なパッケージを導入

  • zabbix6-server
  • zabbix6-agent
  • zabbix6-frontend-php83
  • mysql80-server
  • apache24
  • mod_php83
  • ja-font-ipa-uigothic

以上を、pkg コマンドを使ってインストールします。

MySQL の設定

データベースサーバ MySQL を、以下の通り設定します。
標準で、/var/db/mysql に MySQL のデータディレクトリが作られます。

my.cnf への設定追加

/usr/local/etc/mysql/my.cnf ファイルがあるので、以下の設定を [client] 欄と、[mysql]欄をみつけて追加します。

[client]
default-character-set         = utf8mb4

[mysqld]
skip-networking
character-set-server          = utf8mb4
log_bin_trust_function_creators = 1

log_bin_trust_function_creators = 1 は、この後の DB 初期設定にて Zabbix から提供されている初期データをインポートしたときにエラーになったので、その回避のためです。

自動起動設定

/etc/rc.conf

mysql_enable="YES"

手動起動して初期データを投入

起動

/usr/local/etc/rc.d/mysql-server start

DB初期設定

以下のアカウント情報でデータベースを作って初期化します。

データベース名 zabbix
ユーザ名 zabbix
パスワード MY_PASSWORD
mysql -u root
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user 'zabbix'@'localhost' identified by 'MY_PASSWORD';
grant all privileges on zabbix.* to 'zabbix'@'localhost';
quit

cd /usr/local/share/zabbix6/server/database/mysql
mysql -uzabbix -pMY_PASSWORD zabbix < schema.sql
mysql -uzabbix -pMY_PASSWORD zabbix < images.sql
mysql -uzabbix -pMY_PASSWORD zabbix < data.sql
mysql -uzabbix -pMY_PASSWORD zabbix < double.sql

Zabbix Server の設定

以下の設定を追加変更します。

設定ファイル

/usr/local/etc/zabbix6/zabbix_server.conf の DBPassword 行を見つけて、パスワードを追記します。

DBPassword=MY_PASSWORD

自動起動設定

/etc/rc.conf

zabbix_server_enable="YES"

起動

/usr/local/etc/rc.d/zabbix_server start

Zabbix Agentd の設定

Zabbix Agent は動かさなくても良いですが、今回は自分自身を監視するため、同サーバーで Agent も起動します。

設定ファイル

/usr/local/etc/zabbix6/zabbix_agentd.conf の以下の項目を変更します。

ListenIP=127.0.0.1

自動起動設定

/etc/rc.conf

zabbix_agentd_enable="YES"

起動

/usr/local/etc/rc.d/zabbix_agentd start

Zabbix Frontend の設定

Zabbix Frontend のためのウェブサーバ Apache httpd とその周辺を、以下の通り設定します。

httpd 設定

/usr/local/etc/apache24/httpd.conf へ追加します。

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>
<Directory "/usr/local/www/zabbix6">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

DocumentRoot "/usr/local/www/zabbix6"
DirectoryIndex index.html index.php

php の設定

/usr/local/etc/php.ini を以下の内容で作成します。

[PHP]
post_max_size = 16M
max_execution_time = 300

[Date]
date.timezone = "Asia/Tokyo"

自動起動設定

/etc/rc.conf

apache24_enable="YES"

起動

/usr/local/etc/rc.d/apache24 start

Frontend 用設定ファイルの生成

以下のURLへアクスして、DBのパスワードなどを入力します。
http://サーバIP/setup.php

Screenshot_20231203_182010.png
Screenshot_20231203_182123.png

最終画面でおそらく「設定ファイルが作成できません」と表示されるので、生成されたファイルをダウンロードして画面の指示に従ってサーバへ保存(コピー)します。
今回対象とした Zabbix6 では、以下のパスに保存する指示でした。

/usr/local/www/zabbix6/conf/zabbix.conf.php

使用フォントの変更

漢字を使用すると、グラフなどGDで生成される画像の文字がトーフになるので、以下の設定を変更して漢字フォント (IPA GUI) に変更します。

/usr/local/www/zabbix6/include/defines.inc.php

define('ZBX_FONTPATH', '/usr/local/share/fonts/ipa-uigothic');
define('ZBX_GRAPH_FONT_NAME', 'ipagui');

Zabbix Frontend (コンソール)の表示

以下のURLへアクスして、ログイン画面を表示します。
http://サーバIP/
Screenshot_20231203_182903.png

デフォルトの管理アカウントでログインします。

ユーザ名 Admin
パスワード zabbix

Screenshot_20231203_182630.png

この状態ですでに、Zabbix Server 自身の監視ができている状態になっています。

左ペインのメニューから 監視データ > 最新データ とクリックします。
右ペイン下部に表示された監視データから、Available memory 行の右端「グラフ」をクリックしてみましょう。
Screenshot_20231203_183231.png
こんな感じで監視データがトレンドグラフで表示されます。

Media Type の追加

Zabbix 標準のメール通知機能は、SMTP サーバアドレスを指定してメールを送るデザインになっています。

Screenshot_20231203_183912.png

以前のバージョンの FreeBSD では、sendmail が常駐して localhost (127.0.0.1) で Listen してくれていたので、SMTP server に 127.0.0.1 を指定してやれば問題ありませんでした。
しかし FreeBSD 14 では sendmail に代わって DragonFly Mail Agent が採用されており、daemon ではなくなっていました。よって、任意のメールアドレスに送りたい場合、別途リレーできる MTA を持っていればそのアドレスを指定してやればよいですが、そうでない場合はひと工夫必要なようです。

独自スクリプトの追加

今回は、独自スクリプトを、以下をを参考に追加します。
https://www.zabbix.com/documentation/6.0/jp/manual/config/notifications/media/script

今回作成したスクリプトは以下です。
/usr/local/etc/zabbix6/zabbix/alertscripts/email_dma.sh

#!/bin/sh

to=$1
subject=$2
body=$3

cat <<EOF | mail -s "$subject" "$to"
$body
EOF

コンソールへ追加

これを Zabbix のコンソールへも登録します。

左ペインのメニューから 管理 > メディアタイプ とクリックし、右ペイン上部に表示された「メディアタイプの作成」をクリックします。

項目
名前 Email_dma
タイプ スクリプト
スクリプト名 email_dma.sh
スクリプトパラメータ 以下スクリーンショット参照

Screenshot_20231203_184342.png

上部「メッセージテンプレート」をクリックして画面を変え、標準の Email メディアタイプを参考に、同じものを5種類追加しておきます。
Screenshot_20231203_184652.png

これで、メール送信スクリプトが Email_dma という名前で使えるようになりました。

ユーザーの通知にこのスクリプトを利用するよう設定

左ペインのメニューから 管理 > ユーザー とクリックします。
右ペインに表示されるリストから Admin > メディア の順でクリックします。
追加をクリックし、以下の通り先程登録した Email_dma と送信先 E-mail アドレスを登録します。

Screenshot_20231203_184915.png

これで、任意のメールアドレスに通知が可能になります。

おしまい

FreeBSD14 に Zabbix6 LTS をインストールして使える状態に設定しました。
これから、監視対象のサーバーを登録する作業をしたいと思います。
通知メールの受信サーバーが、何らかの原因で一時的にメールを受け取れない状態になっていた場合、このサーバ内のメールキューにメールが貯まるはずです。本来その再送処理を行わないといけないはずですが、DragonFly Mail Agent を使うのは初めてですので、今後要研究ですね。

なお、この記事は、FreeBSD + KDE のデスクトップ環境を使って書きました :grin:

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?