EasyBlocks Syslog × Zabbix連携で「直近ログを自動CSV添付メール送信」してみた

はじめに

過去にEasyBlocks SyslogとZabbixサーバーを連携させ、Zabbixのトリガーをきっかけにメール通知を行う方法を試しました。

その時の解説ブログがこちらの記事です。

今回はその「上級編」をやりたいと思います。

単純なアラート通知にとどまらず、EasyBlocks SyslogのAPI機能を活用し、「直近10分間のログをCSVとして自動添付」して送信する仕組みを構築します。

この仕組みは、ChatGPTに要件を伝えながらスクリプト設計を行い、実際の自動化構成を一緒に作り上げたものです。AIをうまく活用することで、実装までの試行錯誤の時間を大幅に短縮できました。

これにより、メール受信と同時に「直前に何が起きていたのか」をすぐに把握でき、ログ確認のために管理画面へアクセスする手間を省き、運用レスポンスを大幅に向上させることができます。

Zabbix連携で「直近ログを自動CSV添付メール送信」する

機能説明と構成イメージ

EasyBlocks Syslogで受信したログについて、特定の文字列やPriorityに合致したログのみをZabbixサーバーへ転送します。各種ログ送信元装置、EasyBlocks Syslog、Zabbixサーバーの構成イメージとしては以下のようになります。

仕組みの概要

Zabbixサーバーへ転送されたタイミングで、以下の流れが自動で実行されます。

1. Zabbixからスクリプトを実行
2.スクリプトがEasyBlocks SyslogのAPIを呼び出し、直近10分間のログをCSVで取得
3.CSVをメールに添付して送信

EasyBlocks SyslogのAPI機能を活用する

EasyBlocks Syslogには、蓄積したログをAPI経由で取得できるCSVエクスポートAPI機能が標準で用意されています。これを利用することで、日時・ホスト・メッセージ内容などを条件に絞ってログを取得可能です。

API機能に関する詳細はぜひマニュアルもご参照ください。

EasyBlocks Syslog APIの呼び出し部分

上記のようなAPIを使うことで、今回はZabbixトリガーを起点に「対象ホストの直近ログだけを即時に抽出」しています。

たとえば、SSH認証失敗などの異常検知時に、その直前のログまで含めて確認できるようになります。

遅延吸収の工夫

Zabbixトラッパー経由で受信してからすぐAPIを実行すると、ログ登録のタイミングがわずかにずれて取りこぼしが発生することがあります。

そこでスクリプト内で30秒スリープし、ログ登録完了を待ってから取得処理を行います。

ログ取得時間調整部分

実際には「10分+余裕1分」の範囲で抽出するように設定しており、確実に直近ログをカバーできるようにしています。

メール通知とCSV添付

取得したログは一時ファイルとして保存し、メール本文と一緒に添付します。

本文にはZabbixのアラート情報を、添付ファイルにはSyslogの直近ログを含めることで、1回のメールで状況確認が完結します。

受信メールを確認する

件名・本文・添付ファイル付きメールのスクリーンショット例です。

こちらは本文含め設定者次第で様々な変更が可能です。

添付CSVの内容を確認する

今回の例では、25行目にある「Login failed for SSH: 172.16.7.104″」が実際にはZabbix連携でZabbixトラッパーへ送信されたログですが、その前後のログが添付されていることで、迅速な障害対応が可能になると思います。

従来と今回の仕組みを比較した運用メリット

観点 従来 今回の仕組み
アラート確認 通知メールを確認後、GUIで検索 メール受信時点でログも確認可能
対応スピード 数分遅れ 即対応
ログ調査の精度 人の操作次第 自動で同一条件の範囲を抽出
応用性 メール通知専用 API活用で任意条件抽出等も可能

まとめ

今回紹介したスクリプトは、ChatGPTを活用して生成・改良したものです。

そのため、本スクリプトの動作や結果については保証いたしかねます。ご利用の際は、内容を十分ご確認のうえ、自己責任にてご活用ください。

しかし、うまく活用することでZabbixへ通知を送るだけでなく、EasyBlocks SyslogのAPIを利用して直近ログを自動取得・添付することで、より実運用に近い「現場で役立つ通知運用」を実現しています。

この取り組みのポイントは、アイデアは社内で生まれたものの、実際のスクリプト実装をChatGPTにサポートさせることで、短期間で具体的な形にできたという点です。

このように、生成AIを実装補助として使う発想を組み合わせることで、より柔軟で実用的な運用改善が実現できることを実感できた取り組みでした。

タイトルとURLをコピーしました