0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSD を Zabbix6(LTS) で監視する

Last updated at Posted at 2025-03-01

しまねソフト研究開発センター(略称 ITOC)にいます、東です。

以前、FreeBSD14 に Zabbix6(LTS) をインストールする というタイトルで、Zabbixサーバーのインストール記事を書きました。今回は、監視対象クライアントの設定とクライアントが出すログファイルの監視について記事にします。

目標

  • FreeBSD マシンを Zabbix Agent を使って監視する
  • 加えて、任意のログファイルの監視設定を追加する
  • ログ監視では、指定の文字列検出によるエラー発生と解消を検出する
  • Zabbix server - agent 間の通信を、暗号化する

準備するもの

基本設定

Zabbix Agent のインストール

pkg コマンドでインストールします。

pkg install zabbix6-agent

設定ファイルを変更します。以下の3行を見つけて書き換えます。

/usr/local/etc/zabbix6/zabbix_agentd.conf
# ZabbixServer の IPもしくはFQDN
Server=192.168.108.60
ServerActive=192.168.108.60

# 当ホストのホスト名
Hostname=freebsd-client01

起動設定

設定ファイル /etc/rc.conf にエージェントを自動起動する設定を追加します。

/etc/rc.conf
zabbix_agentd_enable="YES"

これで再起動して zabbix_agentd が自動起動することを確認します。

Zabbix Server への登録

ウェブフロントエンドを使い、クライアントを登録します。
まずはデフォルトの平文通信で登録して、動作を確認します。
代表的な項目を監視するテンプレートが用意されていますので、それを使う方法を説明します。

左ペインのメニューから 設定 > ホスト とクリックし、右ペイン上部に表示された [ホストの作成] をクリックします。

202502_102955.png

「新しいホストの作成」ダイアログが表示されるので、先ほど zabbix_agentd.conf の Hostname= に指定したホスト名を入力します。

202502_103659.png

テンプレート欄は、右の [選択] をクリックします。
「テンプレート」ダイアログが表示されるので、ホストグループ右の [選択] をクリックします。

202502_104053.png

Templates/Operating systems をクリックして選びます。

202502_104134.png

FreeBSD by Zabbix agent をクリックして選びます。

202502_104157.png

グループ名は、新規に FreeBSD servers とつけようと思います。
グループ欄に、FreeBSD servers と入力すると、すぐ下に FreeBSD servers(新規) と表示された行がポップアップしますので、それをクリックして新規追加します。次回からは、[選択] ボタンをクリックして選ぶことができます。

インターフェース欄は、追加 > エージェント とクリックすると行が追加されるので、クライアントの IP アドレスを入力します。

202502_103659.png

右下の [追加] をクリックして、登録完了です。
202502_103734.png

トラブルシュート

server, agent とも、エラーがあればログファイルに出力してくれるので、そちらを参照するとだいたい何が原因かを判断できます。

サーバー

/var/log/zabbix/zabbix_server.log

クライアント(エージェント)

/var/log/zabbix/zabbix_agentd.log

テンプレートの一部変更(カスタマイズ)

トレンドグラフのY軸最小値を0に変更する

FreeBSD by Zabbix agent テンプレートでは、いくつかのグラフが用意されています。
このうち、例えばメモリ使用量 (Memory usage) のグラフY軸はゼロから始まっていたほうが見やすいと思いますので、テンプレートを変更します。

202502_160614.png

左ペインのメニューから 設定 > テンプレート とクリックし、右ペインに表示された FreeBSD by Zabbix agent 行の、グラフ をクリックします。

202502_160248.png

FreeBSD: Memory usage をクリックします。

202502_160308.png

Y軸の最小値 欄を、固定 に変更し、値を0 にします。

202502_160640.png

[更新] をクリックして終了です。

スワップ使用量のグラフを、パイチャートからトレンドグラフに変更する

スワップ使用量のグラフだけ、初期設定ではパイチャートが使ってあります。トレンドも見たいので、トレンドグラフに変更します。

左ペインのメニューから 設定 > テンプレート とクリックし、右ペインに表示された FreeBSD by Zabbix agent 行の、グラフ をクリックします。

FreeBSD: Swap usage をクリックします。

グラフのタイプを、円グラフからノーマルに変更する他、下図を参考にパラメータを書き換えます。

202502_161446.png

スワップ使用量が。トレンドグラフになりました。

202502_161459.png

ログ監視の設定

ログ監視の設定を追加します。

ここでは例として /var/log/messages ファイルに、ERROR という文字列が現れたら障害と判定し、RESOLVED という文字列が現れたら解消と判定する事とします。

「アイテム」「トリガー」「アクション」の3箇所に設定が必要です。

アイテムの追加

左ペインのメニューから 設定 > ホスト とクリックし、右ペインに表示された対象サーバー行の、アイテム をクリックします。
右上の アイテムの作成 をクリックします。

202502_164310.png

 名前: ログ監視 messages(任意の名前をつける)
 タイプ: Zabbixエージェント(アクティブ)
 キー: log["/var/log/messages", "(ERROR|RESOLVED)" ]
 データ型: ログ
 監視間隔: 10s

[追加] をクリックし、登録完了します。

キーには、log[] 関数を使います。

  • 第1引数:ログファイルの絶対パス。
  • 第2引数:正規表現で指定。合致した行のみを取得する。

以降第9引数までありますが、あまり使う機会はないと思います。詳細はマニュアルを参照してください。

トリガーの追加

左ペインのメニューから 設定 > ホスト とクリックし、右ペインに表示された対象サーバー行の、トリガー をクリックします。
右上の トリガーの作成 をクリックします。

202502_183544.png

以下の通り入力します。
 名前: messages にエラー発生 (任意の名前をつける)
 深刻度: 重度の障害
 条件式: [追加] ボタンをクリックし、「トリガー条件式」ダイアログを表示させる

202502_182949.png

 アイテム: [選択] ボタンをクリックし、ログ監視 messages をクリックして選ぶ。
 関数: find()... を選ぶ。
 V: ERROR と入力する。
 結果: = を選び 1 と入力する。

[挿入] ボタンで確定する。
「トリガー条件式」ダイアログが消えて、条件式欄に find... と補完されたのを確認し、[追加] ボタンで確定します。

トリガーには、find 関数を使います。この例では、前項で追加したアイテム「ログ監視 messages」に、"ERROR" という文字列があれば、このトリガーが発火するよう指定しています。find 関数の詳しい説明は、マニュアル の find 関数の項を参照してください。

アクションの確認

左ペインのメニューから 設定 > アクション > トリガーアクション とクリックし、右ペインに表示された Report problems to Zabbix administrators 行の右端「ステータス」を確認し、無効 になっていたらそこをクリックして 有効 に変えておきます。

202502_201950.png

テスト

障害発生

クライアントにログインし、以下のコマンドを打ってログに追記します。

logger "ERROR"

ウェブフロントエンド左ペインのメニューから 監視データ > ホスト とクリックし、右ペインに表示された対象サーバー行の、最新データ をクリックします。
ログ監視 messages 行の右端 ヒストリ をクリックします。
ログが表示されていれば、アイテムの追加設定は成功です。

202502_193552.png

次に、左ペインのメニューから 監視データ > 障害 とクリックし、右ペインに障害が表示されていれば、トリガーの設定は成功です。

202502_183826.png

障害解消

クライアントにログインし、以下のコマンドを打ってログに追記します。

logger "RESOLVED"

少し待つか、ブラウザをリロードして、先ほどの障害が解決済みになったのを確認します。

202502_192129.png

サーバー側の設定で、メール等でレポートするように設定していれば、この時点で「障害発生」と「解決」の2通のメールが届いているはずです。

通信の暗号化

Zabbix server - agent 間の通信を、暗号化します。
この記事では、共通鍵を使った方法を説明します。

クライアント(エージェント)の設定

クライアントにログインし、設定ファイルに以下の内容を追加します。

/usr/local/etc/zabbix6/zabbix_agentd.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK_freebsd-client01
TLSPSKFile=/usr/local/etc/zabbix6/zabbix_agentd.psk

以下のコマンドを使って共通鍵を作ります。

cd /usr/local/etc/zabbix6
openssl rand -hex 32 > zabbix_agentd.psk
chown zabbix:zabbix zabbix_agentd.psk
chmod 400 zabbix_agentd.psk

このあと使いますので、共通鍵を表示して確認しておきます。

# cat zabbix_agentd.psk
416b35e9b4d5143a3f8fdec96cf2f14e0da09dcc606abe9897beb9968220a415

エージェントプロセスをリスタートします。

/usr/local/etc/rc.d/zabbix_agentd restart
もしくは
service zabbix_agentd restart

サーバーの設定

ウェブフロントエンドを使い、クライアントの設定を変更します。

左ペインのメニューから 設定 > ホスト とクリックし、対象サーバーの名前をクリックします。
202502_113540.png

表示されたダイアログ上部の 暗号化 をクリックします。
202502_111230.png

次の項目を入力します。
202502_111702.png
 ホストへの接続: PSK
 ホストからの接続: PSK のみ
 PSKアイデンティティ: PSK_freebsd-client01
 PSK: 416b35e9b4d5143a3f8fdec96cf2f14e0da09dcc606abe9897beb9968220a415

PSKアイデンティティには、設定ファイルの TLSPSKIdentity で指定した文字列を入力します。
PSKには、catコマンドで確認した 16新文字列を入力します。

[更新] ボタンで確定します。

一覧表示の「エージェント暗号化」欄が、PSK になったのを確認します。
202502_112009.png

これで暗号化通信の設定は完了です。

おわりに

一通り、FreeBSD 機の監視ができるようになりました。当記事では FreeBSD をターゲットにしましたが、*Linux でもほぼ一緒だと思います。
Zabbix は、高性能であるがゆえにか設定が結構難しい感じがしますが、応用範囲も広いのでこれからも使っていこうと思います。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?