質問するログイン新規登録

Q&A

0回答

791閲覧

monitのlog監視にて特定の文字列を除外して通知をしたい

amasok

総合スコア7

Monit

Monitは、UNIXシステムのプロセスやプログラム、ディレクトリなどを監視・管理するためのシステムマネジメントツールです。HTTPレスポンス内容やプロセス監視といった機能を搭載。プロセスの監視・制御がブラウザからできるWebインタフェースも持ちます。

0グッド

0クリップ

投稿2018/03/26 04:19

編集2018/03/26 06:10

0

0

前提・実現したいこと

特定の文字列を除外した上でmonitのlog監視にてヒットした文字列をslack通知をしたいです。

発生している問題・エラーメッセージ

monitを再起動した際のエラー

Starting monit: +:5: Error: regex parsing error:Invalid preceding regular expression 'warning'

該当のソースコード

monit

1check file graphql_error_log with path /var/log/error.log 2 if match "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(?!.*UnauthorizedError).*$" 3 then exec "/home/user/slack_notification.rb -e production -i warning -c warning" 4

通知させたくないerror.logの文字列

2018-03-26 00:44:46 +09:00: UnauthorizedError

通知させたいerror.logの文字列

2018-03-26 00:44:46 +09:00: TestError: TestTestTest

※ 先頭行が[2018-03-26 00:44:46]などでUnauthorizedErrorが含まれていなければ通知させたい

試したこと

どうやら、monitの正規表現では完全にPOSIX準拠で否定先読み (?!PATTERN)等が使えないようです。

monit

1check file graphql_error_log with path /var/log/error.log 2 if match "UnauthorizedError" 3 else if match "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}" 4 then exec "/home/user/slack_notification.rb -e production -i warning -c warning"

上記のようにelse if等ないか試してみたのですが、

Error: syntax error 'else'

シンタックスエラーが出てしまいました。

https://mmonit.com/monit/documentation/monit.html#GENERAL-SYNTAX
こちらを見てる位限り、else ifも使えそうなのですが。。

特定のエラー文言のみ除外した上でslack通知をおこないたいのですが、何か良い方法はないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問