Zabbixでログファイル監視する手順をSyslogとイベントログともに詳しく解説

この記事では筆者の実際の経験と検証を元に、Zabbixでログファイル監視を行う手順や仕組みを詳しく解説します。また、無料かつ5分でログファイル監視を始める方法も紹介していますので参考にしてみてください。

目次

Zabbixにおけるログファイル監視の仕組み

Zabbixサーバーは、監視対象のサーバーに導入されたZabbixエージェントと連携して監視対象リソースの情報を得ます。すでにZabbixでの監視を行っている環境ではこのような情報のルートができているはずですので、次に必要になるのは「監視対象リソース」としてログの情報を追加することとなります。

Zabbixによる監視の仕組み(図1)

Zabbixにおける監視対象の構成は以下のように定義されます。

監視対象サーバーは「Host」として登録し、そのサーバー上での監視項目(監視対象リソース)を「Item」として登録します。さらに監視する上で何を見るかを「Trigger」として登録することにより監視が可能になります。今回はWindowsのイベントログ監視やSyslog監視の設定を「Item」として登録することになります。

Zabbixによる監視の仕組み(図2)

それでは、ログファイル監視を行うための具体的な方法を解説します。

Zabbixでログファイル監視する手順

1. Zabbixサーバーの構築

Zabbixサーバーの構築手順はこちらの記事をご確認ください。AWS上のCentOS 8にZabbix 5.0を構築する手順を詳しく説明しています。

2. Zabbixエージェントのインストール

Zabbixエージェントのインストール手順はこちらの記事をご確認ください。Windows編、Linux編に分けて詳しく説明しています。

3. Windowsイベントログ監視編

ここからは、Windowsのイベントログを監視するための設定手順を解説します。Linux Syslog編通知設定も合わせてご参照ください。

3-1. アイテムの作成

メインメニューから->設定->ホストで対象となるホストを選択します。

Zabbixでログ監視する手順01

ホストの画面で上部にある「アイテム」をクリックします。

Zabbixでログ監視する手順02

さらに、「アイテムの作成」をクリックします。

Zabbixでログ監視する手順03

アイテムの追加画面で、イベントログに関する情報を次の図に記述したように入力します。ここで重要なのは、「タイプ」に「Zabbixエージェント(アクティブ)」を指定することです。「キー」に指定するのはeventlog[イベントログのタイプ]になります。ここではsystemを指定しています。「データ型」は「ログ」です。入力が終了したら、下にある「追加」ボタンを押して設定を保存します。

Zabbixでログ監視する手順04

3-2. トリガーの作成

次に行うのはトリガーの作成です。ホストの画面の「トリガー」をクリックして、さらに「トリガーの作成」ボタンを押します。

Zabbixでログ監視する手順05

「トリガー作成」画面で、必要な情報を入力し、「追加」ボタンを押して保存します。今回「キー」の項目に指定したのはsystemのイベントログで「警告」のマークがついたものを拾うという内容です。

Zabbixでログ監視する手順06

これでイベントログ監視の設定は完了です。通知設定も合わせてご参照ください。

無料かつ5分でログファイル監視を始める方法はこちら

4. Linux Syslog監視編

次に、Linuxのsyslogの監視方法を解説します。

4-1. アイテムの作成

メインメニューから->設定->ホストで対象となるホストを選択します。

Zabbixでログ監視する手順07

ホストの画面の上部にある「アイテム」をクリックし、「アイテムの作成」をクリックします。

Zabbixでログ監視する手順08

アイテムの追加画面で、Syslogに関する情報を入力します。

図に記述したように入力します。ここで重要なのは、「タイプ」に「Zabbixエージェント(アクティブ)」を指定することです。「Zabbixエージェント」を選択するとログの監視はできません。「キー」に指定するのはlog[ファイルの名前]になります。入力したら「追加」ボタンを押して保存します。

Zabbixでログ監視する手順09

それぞれの入力値に関する詳しい情報はZabbixのマニュアルに記載されていますので、参照してください(https://www.zabbix.com/documentation/4.0/manual)。以下の図はその抜粋です。

Zabbixでログ監視する手順10

4-2. Syslogファイルの属性変更

ここで、問題が発生します。単純にSyslogをアイテムとして追加した状態ではエラーになってしまいます。

これは、「ファイルを読む権限が無い」というエラーです。これは下の図を見るとわかるようにSyslogの属性でroot以外のユーザーに読み込みが許可されていないことが原因です。Zabbixエージェントはzabbixというユーザー(および同名のグループ)で稼働していますので、権限が無いことになります。

Zabbixでログ監視する手順11

前述のエラーを回避する方法は、いくつかありますが監視対象サーバーでのセキュリティのリスクを考慮すると、Syslogのみの権限変更で対応する方法が最もリスクが低いと考えられます。方法は以下の図のように、Syslogのオーナーのグループをzabbixエージェントのグループであるzabbixに変更した後に許可属性を変更することによって実施します。

Zabbixでログ監視する手順12

Syslogの属性の変更を行っただけだと、後々に問題が発生します。logrotateが実行されてしまうと属性が元に戻ってしまうことです。これを防ぐためには、logrotateの設定の中にグループと属性の指定を入れてしまう必要があります。これは以下の図のように行います。編集するファイルは/etc/logrotate.d/syslogです。

Zabbixでログ監視する手順13

4-3. トリガーの作成

次に行うのは、監視を行うアイテムに対するトリガーの設定です。ホストの画面の上部から「トリガー」をクリックし、さらに「トリガーの作成」ボタンを押します。

Zabbixでログ監視する手順14

トリガーの作成画面でトリガーの設定を行います。重要なのは「条件式」の部分です。記述する際の形式は以下のようになります。詳細な情報についてはZabbixのマニュアルの「トリガーの条件式」の項目を参照してください。

{<server>:<key>.<function>(<parameter>)}<operator><constant>

今回のSyslogの設定においては、検知する文字列を”warning”として設定しています。

Zabbixでログ監視する手順15

この設定により、Syslog上に「warning」という文字が書き込まれると、監視ダッシュボード上に表示されます。

無料かつ5分でログファイル監視を始める方法はこちら

5. 通知設定

ここまで行った設定によって、ログファイル監視を行うことができますが、通知につなげるためにはさらに設定が必要です。ここでメールによって通知を行うための設定のやり方を解説します。

5-1. アクションの追加

設定->アクションで「アクションの作成」ボタンを押します。

名称に任意の名前を入れ、条件にトリガー名を指定して、追加ボタンを押します。最後に「実行内容」をクリックします。

「実行内容」の画面で、まずは「新規」の部分をクリックします。

「実行内容」に「メッセージの送信」、その下で送信先を「グループ」か「ユーザー」で指定、最後に「追加」ボタンを押して設定を保存します。

ここまでのステップによって、「トリガー」で設定した情報を検知した場合に、ここで指定した宛先にメールが送信されることになります。当然ですが、この設定とは別に、メールサーバー等の設定ができている必要があります。

以上の方法によって、検知したトリガーの状態の通知までを自動的に行うことができます。

無料かつ5分でログファイル監視を始める方法

Zabbixによる監視にトライして、わずらわしさや難しさを感じた方もいるかもしれません。そんな方はここで紹介する方法も試してみてください。

数あるサーバー監視ツールの中でも、監視を開始するまでの工数が最もかからないもののひとつがSaaS型ツールの「Site24x7(サイトトゥエンティーフォーセブン)」です。FREEプランが提供されているのも好評で、今ユーザーが増えています。

ここからは、そのSite24x7でログファイル監視を始める手順を紹介します。

1. アカウントの作成

まず、FREEプランのサインアップフォーム(https://www.site24x7.jp/signup.html?pack=1&l=ja)からSite24x7にサインアップします。サインアップフォームは非常にシンプルで、メールアドレスとパスワードを入力するのみです。

サインアップするのに1分もかかりません。FREEプランを試すのにクレジットカードの入力が不要なので、サブスクリプションタイプにありがちな課金停止漏れが発生しない安心設計となっています。

サインアップすると自動的にログインし、次の画面が表示されます。今回は「サーバー監視」をクリックします。

次の画面で、「Windows」または「Linux」をクリックします。

ここからは、Windowsイベントログ監視編Linux Syslog監視編、また通知設定に分けてそれぞれの手順を詳しく紹介します。

2. Windowsイベントログ監視編

Site24x7を既に使用中の方はホーム画面の「監視」の右にある「+」をクリックします。

Windowsサーバー監視を選びます。

エージェントをダウンロードします。デバイスキーは後ほど使いますのでこの画面のままにしておきます。

リモートデスクトップでWindowsサーバーへ接続し、ダウンロードしたエージェントを実行します。

以下のような画面になりますのでNextを押して進めていきます。

デバイスキーの入力を求められますので、先程のキーを入力します。

もしProxyを使っている場合は設定します。今回はデフォルトです。

インストールフォルダーの設定です。デフォルトのままとしました。

他のサーバーにもエージェントをインストールしないのでNoを選択して完了です。

エージェントのインストールが完了したら管理コンソールの左側のメニューから「管理」->「アプリケーションログ」を選択し、「ログプロファイル」をクリックします。エージェントをインストールしてSite24x7にデータが収集されるとログプロファイルができています。このプロファイルを使って設定します。

「このログプロファイルをこれらのサーバーに関連付ける」の項目に対象のWindowsサーバーを選択します。

管理コンソールの左側のメニューから「管理」->「アプリケーションログ」を選択し、「ログの種類」をクリックします。さきほどのログプロファイルが表示されていますので「無効化済み」となっているところをクリックして有効にします。

管理コンソールの左側のホーム画面にもどって対象のサーバーの「アプリケーションログ」を確認するとイベントログが取れていることが確認できます。

3. Linux Syslog監視編

Site24x7を既に使用中の方は、ホーム画面の「監視」の右にある「+」をクリックします。

Linuxサーバー監視の項目を選びます。

画面に表示されているコマンドを実行するだけです。

Linuxのサーバーに接続して、先程のコマンドをコピペで実行します。たった2回のコマンドでOKです。

エージェントのインストールが完了したら管理コンソールの左側のメニューから「管理」->「アプリケーションログ」を選択し、「ログプロファイル」をクリックします。エージェントをインストールしてSite24x7にデータが収集されるとログプロファイルができています。このプロファイルを使って設定します。

「このログプロファイルをこれらのサーバーに関連付ける」の項目に対象のLinuxサーバーを選択します。

管理コンソールの左側のメニューから「管理」->「アプリケーションログ」を選択し、「ログの種類」をクリックします。さきほどのログプロファイルが表示されていますので「無効化済み」となっているところをクリックして有効にします。

管理コンソールの左側のホーム画面にもどって対象のサーバーの「アプリケーションログ」を確認するとSyslogが取れていることが確認できます。

4. 通知設定

通知の設定では、テストでLinuxサーバーのSyslogに「ErrorErrorError」という文字列を検出したらメールを通知する設定をしてみます。Windowsサーバーのイベントログの場合も、通知設定の手順は同じです。

コンソールの「管理」->「アプリケーションログ」->「Saved Searches」を選択し、「Go To Search Page」に進みます。

Syslog選択するとメッセージが表示されますので、”ErrorErrorError”という文字列の左側の▽を選択します。

「Filter」をクリックします。

「ErrorErrorError」という文字列だけ抽出されますので、「Alerts」をクリックします。

テストでは以下の設定値にします。

  • 表示名「TEST」
  • Attribute「count >= 1」
  • チェック間隔「5分」
  • Alert Once「5分」
  • ユーザーアラートグループ「アプリケーションチーム」

これは1回以上「ErrorErrorError」という文字列が検出されたら「アプリケーションチーム」という宛先にメールを送信するという内容になります。

ユーザーアラートグループは「管理」->「ユーザーとアラートの管理」から「ユーザーアラートグループ」から変更することができます。

テストで、Linuxのコンソールから以下のコマンドを実行します。

$ logger -p syslog.err -t TEST "ErrorErrorError"

以下のようなメッセージをメールで受信していることが確認できました。

まとめ

この記事では、Zabbixを使用してログファイル監視を行うために実施すべきステップを解説し、同様のことをSite24x7で行うために必要なステップも述べてきました。お分かりのように、何も無い状態からの作業はSte24x7の方が簡単で迅速に行うことができます。また、ツールに関する専門的な知識も必要ありません。ただ、特殊な要件に応えるという観点では、Zabbixの方が拡張性があり、高度な作り込みも可能であるとも言えます。

ここで、考慮すべきは作業内容だけではなく、何が自分の目的にあっているかと言うことです。

例えば、管理するサーバーは分散していて台数もタイプも頻繁に変わってゆくような環境において必要なのは作り込める機能の豊富さよりは変更の容易さや設定に必要となる知識がどのくらいかと言うことになるため、Site24x7も選択肢に入ってきます。

今回、Zabbixでログファイル監視を行うことを考えていらっしゃる方は、この機会に一度Site24x7を使用して見ることによって、どちらが本来の自分の目的に合うか、今後の拡張に容易に対応できるかを改めて検討する機会を得ることができるでしょう。必要なのはメールアドレスのみなのでお気軽にお試しください。

プランと価格の詳細はこちら:
https://www.site24x7.jp/pricing.html

FREEプランのサインアップはこちら:
https://www.site24x7.jp/signup.html?pack=1&l=ja

ZabbixとSite24x7の機能比較一覧はこちら:
https://www.site24x7.jp/zabbix-alternative.html

関連記事