【Zabbix】保存前処理まとめ -テキスト編-

本記事は TechHarmony Advent Calendar 2025 12/4付の記事です

こんにちは、アドベントカレンダー第4走者の坂木です。

本記事では、保存前処理の中でもテキストデータの加工処理に焦点を当て、以下の5つの機能について、具体的な設定例を交えながら解説します。

  • 正規表現
  • 置換
  • 前後文字列削除
  • 末尾文字列削除
  • 先頭文字列削除

保存前処理について

保存前処理とは、Zabbixが監視対象から取得したデータをデータベースに保存する直前に、その値を加工・変換するための機能です。例えば、取得した値の単位を変換したり、JSONデータから特定の値だけを抽出したり、正規表現で不要な文字を削除したりできます。

これにより、不要なデータを保存せずに済むためデータベースの負荷を軽減できるほか、データを整形することで、より柔軟で高度な監視や分かりやすいグラフ描画を実現できます。

2 アイテムの値の保存前処理

 

正規表現

正規表現は、取得したテキストデータから特定のパターンに一致する部分を抽出・加工できます。
パラメータとして「パターン」と「出力」を指定し、パターンに一致した部分をどのように出力するかを定義します。これにより、複雑なテキストデータも柔軟に扱うことができ、監視の精度を大幅に向上させることが可能です。

 

ユースケース

  • コマンドの実行結果から、特定の数値だけを抜き出す
  • ログメッセージからステータスコードやエラーメッセージを抜き出す
  • ログからIPアドレスを抽出して接続元を監視する

 

実例

以下の/var/log/httpd/error_logから、エラーログの内容のみ抽出する保存前処理を設定します。

# cat /var/log/httpd/error_log
[Tue Nov 25 04:42:11.673140 2025] [suexec:notice] [pid 2043:tid 2043] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Nov 25 04:42:11.728157 2025] [lbmethod_heartbeat:notice] [pid 2043:tid 2043] AH02282: No slotmem from mod_heartmonitor
[Tue Nov 25 04:42:11.729082 2025] [systemd:notice] [pid 2043:tid 2043] AH10497: SELinux is enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Nov 25 04:42:11.747259 2025] [mpm_event:notice] [pid 2043:tid 2043] AH00489: Apache/2.4.64 (Amazon Linux) configured -- resuming normal operations
[Tue Nov 25 04:42:11.747282 2025] [core:notice] [pid 2043:tid 2043] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

 

アイテムおよび保存前処理の設定は以下のとおりです。

 

設定した正規表現は、行の先頭から見て、最後の” ] “とスペースに続く部分をすべて取得する、という設定となっています。

正規表現のパラメータ 設定値 説明
パターン ^.*\] (.*) 行頭からすべての文字を読み取り、最後の部分をキャプチャ
出力 \1 キャプチャした部分(.*)を返す

 

こちらのように取得されます。

 

置換

置換は、収集したデータに含まれる特定の値や文字列を、データベースに保存する前に別の値や文字列に置き換える機能です。

これにより、特定のコードを意味の分かりやすいテキストに変換したり、不要な文字を取り除いたりすることが可能となります。

 

ユースケース

  • MB, GB などの単位や不要な記号を空欄に置換して、必要な文字列だけに整形する
  • UP, DOWN のようなステータス文字列を 1, 0 のような数値に変換して、グラフ化やトリガー条件に使いやすくする

 

実例

以下のようにメモリの利用量を取得するスクリプトに対し、単位を削除して数値だけに整形する保存前処理を設定します。

▼監視対象スクリプト
# /etc/zabbix/work/mem.sh
1.01 GB

 

アイテムおよび保存前処理の設定は以下のとおりです。今回利用しているアイテム(system.run)の利用方法はこちらをご参照ください。

 

置換のパラメータ 設定値 説明
検索文字列 <単位> 削除する(空欄に置換する)単位を記載
置換文字列 <空欄> 単位を削除するため空欄のまま

 

こちらのように取得されます。

 

文字列削除

文字列削除は、保存前処理のパラメータに含まれる文字を、アイテムが取得した値の先頭や末尾から削除する機能です。

文字列削除機能には、以下の3種類があります。

保存前処理名 説明
前後文字列削除 データの先頭と末尾にある特定の文字を削除
末尾文字列削除 データの末尾にある特定の文字を削除
先頭文字列削除 データの先頭にある特定の文字を削除

 

ユースケース

  • ログ収集の過程で付加される可能性のある、先頭や末尾の余分なスペースを整形する

 

実例

以下の文字列に対して、指定した文字(今回は「#」)を削除する保存前処理を設定します。
(本来は末尾のスペースを削除したかったのですが、Zabbixのインターフェース上ではスペースの有無が分かりにくいため、見えやすい「#」を削除する例で説明します。)

▼書き込んだ文字列
te##st
test###
###test
###test###

 

アイテムおよび保存前処理の設定は以下のとおりです。

 

保存前処理名 文字列削除のパラメータ 設定値 説明
前後文字列削除 文字列のリスト # 先頭と末尾の#を削除
末尾文字列削除 文字列のリスト # 末尾の#を削除
先頭文字列削除 文字列のリスト # 先頭の#を削除

 

こちらのように取得されます。

 

まとめ

Zabbixの保存前処理は、未加工のデータを「使える情報」に変えるための重要な機能です。

正規表現や置換で柔軟な抽出・変換が可能で、前後・先頭・末尾の文字列削除により不要な情報を除去できます。

本記事を参考にぜひ保存前処理を利用してみてください。

 

弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。

★Zabbixの基礎をまとめたeBookを公開しております!★

Zabbix資料ダウンロード|SCSK Plus サポート for Zabbix
Zabbix監視構築に必要な知識と最新機能についての資料をダウンロードできるページです。世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします。

 

★SCSK Plus サポート for Zabbix★

SCSK Plus サポート for Zabbix
世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします。

 

★SCSK Zabbixチャンネル★

SCSK Zabbixチャンネル
SCSK Zabbixチャンネルでは、最新のZabbixトレンドや実際の導入事例を動画で解説。明日から使える実践的なノウハウを提供します。 今すぐチャンネル登録して、最新情報を受け取ろう!
タイトルとURLをコピーしました