お世話になります。
以下のようなログ監視を想定しています。
①aaa@<ホスト名>.log ⇒監視対象 ②aaa@<ホスト名>yyyymmdd.log ⇒監視対象外 ③aaa@<ホスト名>_auth.log ⇒監視対象 ④aaa@<ホスト名>_auth_yyyymmdd.log ⇒監視対象外
上記ケースにて、log[ ]あるいはlogrt[ ]でファイル名を指定する際にどのように指定すれば、 良いのでしょうか?
同様の運用をされている方、お教え願います。
ホスト名に何らかの命名規則はありますか? あと、どのように日付付きのファイルが生成されるかもお教えください。
----- 追記 ----- 頂いている情報の範囲で改めて考えてみたのですが、まず、ログ監 視の設定として、1つのアイテムで監視できるのは1つのファイルの みです。 なので、監視したいファイルとして挙げられていたログファイルは、 恐らく2つのアイテムで、
①aaa@<ホスト名>.log
用と
③aaa@<ホスト名>_auth.log
用の2つのアイテムの設定が必要になります。 これらを1つにまとめることはできません。 もちろん、アイテム1つで1つのファイルですから、ホストごとにア イテムを分けることも必須です。
ということで、ホスト名も固定になりますので、結局のところファ イルごとにアイテムを作成するだけになると思います。 ログのローテーションにも対応しないのであれば、log[]を使えば 良いと思います。
もしも、ログのローテーションに対応することが必要で、日付の付 いたファイル名がそのローテーションされたログであるとしたなら ば、logrt[]では対応できません。
Zabbixのlogrt[]を利用したログ監視の機能では、ファイル名の最 後に番号や日付が付加されるようなファイル名に対応しています。
例えば、元のログファイル名が、
aaa@<ホスト名>.log
だったとすると、
aaa@<ホスト名>.log.1 aaa@<ホスト名>.log.2 aaa@<ホスト名>.log.3
や
aaa@<ホスト名>.log-20160401 aaa@<ホスト名>.log-20160402 aaa@<ホスト名>.log-20160403
といったパターンです。
対応しているパターンではないので、logrt[]は使えないでしょう。
ただし、ログローテーションが行われているファイルをlog[]で監 視する場合、Zabbixエージェントがログの情報を読み取ったあとに、 何らかのログが出力され、その出力されたログをZabbixエージェン トが読み込む前にログファイルのローテーションが行われてしまう と、Zabbixエージェントが以前読み込んだ位置よりも後ろのログは Zabbixエージェントが取得できないので監視できないこととなりま す。
ご注意ください。
TNK様
ご回答ありがとうございます。
>ホスト名に何らかの命名規則はありますか? ⇒「srv-」から始まる文字列です。
>あと、どのように日付付きのファイルが生成されるかもお教えください。 ⇒毎週日曜日 or 容量が5MBとなった場合に当該日付を付与します。
>アイテム1つで1つのファイルですから、ホストごとにアイテムを分けることも必須です。 ⇒了解しました。 各サーバ共通のアイテムができればと思っていましたが、地道にアイテムを作成しようと 思います。
各サーバ共通のアイテムができればと思っていましたが、地道にアイテムを作成しようと 思います。
監視対象のホスト上で、各監視対象のホストの名前と同じ名前でフ ァイル名が決まるのであれば、テンプレートとしてマクロを利用し てアイテムのキーにホストの名前をパスに含むよう指定することは できたと思います。
しかし、特定のログ収集用サーバに、複数のサーバー用のログが集 まってきているような環境では、個別にアイテムを作成するしかあ りません。
というのも、log[]、logrt[]、eventlog[]などのログ監視用のアイ テムは、Zabbixサーバーや監視対象のホストを再起動した時なども 考慮して、ログファイル内の何行目まで読み込んだかをアイテムの 情報として保存し管理しています。 つまり、ログ監視を再開したときに、ファイルのどこから読み込む かが保存されているので、続きのログから読み取れるようになって いるのです。
1つのアイテムで複数のファイルが候補になってしまうと、ファイ ルを検索してそのファイルからログを取得しようとしたときに、別 のファイルが対象になってしまうと、ファイルごとに読み込み済の 行は異なるでしょうから、本来取得すべき行から読み取ることがで きなくなってしまうでしょう。
何度も回答頂き、恐縮です。
>特定のログ収集用サーバに、複数のサーバー用のログが集 >まってきているような環境では、個別にアイテムを作成するしかあ >りません。
⇒収集サーバではないので、 Aサーバでは、「aaa_srv-A.log」「aaa_srv-A-auth.log」 Bサーバでは、「aaa_srv-B.log」「aaa_srv-B-auth.log」 : というようになります。
>監視対象のホスト上で、各監視対象のホストの名前と同じ名前でフ >ァイル名が決まるのであれば、テンプレートとしてマクロを利用し >てアイテムのキーにホストの名前をパスに含むよう指定することは >できたと思います。
⇒「aaa_{HOST.NAME}.log」 「aaa_{HOST.NAME}-auth.log」 のような感じで捉えていますが、間違えてないですかね?
※都合により検証できる環境がないため、くどくどと聞いてしまい すみません。。。m(_ _)m
利用されているZabbixの詳細なバージョンをお教えください。
お世話お掛けします。
>利用されているZabbixの詳細なバージョンをお教えください。
⇒Server、Agent共に「2.4.6」となります。
実際に2.4系の環境を構築して試してみましたが、log[]の引数とし て「{HOST.NAME}」のマクロを使用することができました。
ですので、各ホスト上でそのホスト名を含むパスを指定するという パターンであれば、マクロを利用してテンプレート化できると思い ます。
最後に、他の方への回答でも書かせて頂いていますが、2.4系は サポートが終了してしまいましたので、バージョンアップを検討 されることをお勧めします。
アカウント名 Didier0802
Zabbix関連
TNK - 投稿数: 4769
ホスト名に何らかの命名規則はありますか?
あと、どのように日付付きのファイルが生成されるかもお教えください。
----- 追記 -----
頂いている情報の範囲で改めて考えてみたのですが、まず、ログ監
視の設定として、1つのアイテムで監視できるのは1つのファイルの
みです。
なので、監視したいファイルとして挙げられていたログファイルは、
恐らく2つのアイテムで、
①aaa@<ホスト名>.log
用と
③aaa@<ホスト名>_auth.log
用の2つのアイテムの設定が必要になります。
これらを1つにまとめることはできません。
もちろん、アイテム1つで1つのファイルですから、ホストごとにア
イテムを分けることも必須です。
ということで、ホスト名も固定になりますので、結局のところファ
イルごとにアイテムを作成するだけになると思います。
ログのローテーションにも対応しないのであれば、log[]を使えば
良いと思います。
もしも、ログのローテーションに対応することが必要で、日付の付
いたファイル名がそのローテーションされたログであるとしたなら
ば、logrt[]では対応できません。
Zabbixのlogrt[]を利用したログ監視の機能では、ファイル名の最
後に番号や日付が付加されるようなファイル名に対応しています。
例えば、元のログファイル名が、
aaa@<ホスト名>.log
だったとすると、
aaa@<ホスト名>.log.1
aaa@<ホスト名>.log.2
aaa@<ホスト名>.log.3
や
aaa@<ホスト名>.log-20160401
aaa@<ホスト名>.log-20160402
aaa@<ホスト名>.log-20160403
といったパターンです。
対応しているパターンではないので、logrt[]は使えないでしょう。
ただし、ログローテーションが行われているファイルをlog[]で監
視する場合、Zabbixエージェントがログの情報を読み取ったあとに、
何らかのログが出力され、その出力されたログをZabbixエージェン
トが読み込む前にログファイルのローテーションが行われてしまう
と、Zabbixエージェントが以前読み込んだ位置よりも後ろのログは
Zabbixエージェントが取得できないので監視できないこととなりま
す。
ご注意ください。
Didier0802 - 投稿数: 37
TNK様
ご回答ありがとうございます。
>ホスト名に何らかの命名規則はありますか?
⇒「srv-」から始まる文字列です。
>あと、どのように日付付きのファイルが生成されるかもお教えください。
⇒毎週日曜日 or 容量が5MBとなった場合に当該日付を付与します。
>アイテム1つで1つのファイルですから、ホストごとにアイテムを分けることも必須です。
⇒了解しました。
各サーバ共通のアイテムができればと思っていましたが、地道にアイテムを作成しようと
思います。
TNK - 投稿数: 4769
監視対象のホスト上で、各監視対象のホストの名前と同じ名前でフ
ァイル名が決まるのであれば、テンプレートとしてマクロを利用し
てアイテムのキーにホストの名前をパスに含むよう指定することは
できたと思います。
しかし、特定のログ収集用サーバに、複数のサーバー用のログが集
まってきているような環境では、個別にアイテムを作成するしかあ
りません。
というのも、log[]、logrt[]、eventlog[]などのログ監視用のアイ
テムは、Zabbixサーバーや監視対象のホストを再起動した時なども
考慮して、ログファイル内の何行目まで読み込んだかをアイテムの
情報として保存し管理しています。
つまり、ログ監視を再開したときに、ファイルのどこから読み込む
かが保存されているので、続きのログから読み取れるようになって
いるのです。
1つのアイテムで複数のファイルが候補になってしまうと、ファイ
ルを検索してそのファイルからログを取得しようとしたときに、別
のファイルが対象になってしまうと、ファイルごとに読み込み済の
行は異なるでしょうから、本来取得すべき行から読み取ることがで
きなくなってしまうでしょう。
Didier0802 - 投稿数: 37
TNK様
何度も回答頂き、恐縮です。
>特定のログ収集用サーバに、複数のサーバー用のログが集
>まってきているような環境では、個別にアイテムを作成するしかあ
>りません。
⇒収集サーバではないので、
Aサーバでは、「aaa_srv-A.log」「aaa_srv-A-auth.log」
Bサーバでは、「aaa_srv-B.log」「aaa_srv-B-auth.log」
:
というようになります。
>監視対象のホスト上で、各監視対象のホストの名前と同じ名前でフ
>ァイル名が決まるのであれば、テンプレートとしてマクロを利用し
>てアイテムのキーにホストの名前をパスに含むよう指定することは
>できたと思います。
⇒「aaa_{HOST.NAME}.log」
「aaa_{HOST.NAME}-auth.log」
のような感じで捉えていますが、間違えてないですかね?
※都合により検証できる環境がないため、くどくどと聞いてしまい
すみません。。。m(_ _)m
TNK - 投稿数: 4769
利用されているZabbixの詳細なバージョンをお教えください。
Didier0802 - 投稿数: 37
TNK様
お世話お掛けします。
>利用されているZabbixの詳細なバージョンをお教えください。
⇒Server、Agent共に「2.4.6」となります。
TNK - 投稿数: 4769
実際に2.4系の環境を構築して試してみましたが、log[]の引数とし
て「{HOST.NAME}」のマクロを使用することができました。
ですので、各ホスト上でそのホスト名を含むパスを指定するという
パターンであれば、マクロを利用してテンプレート化できると思い
ます。
最後に、他の方への回答でも書かせて頂いていますが、2.4系は
サポートが終了してしまいましたので、バージョンアップを検討
されることをお勧めします。