2

Heka に Monolog ファイルを読み取らせようとしています (Kibana を使用してそれらを表示できるようにするため) が、一致するものがないと何度も言われます。

これが私match_regexのHeka構成からの私のものです:

match_regex = "^\\[(?P<Timestamp>.*)\\] (?P<Channel>.+?)\\.(?P<Severity>[A-Z]+): (?P<Message>.*)"

そして、ここにログからのサンプル行があります

[2014-03-24 19:07:08] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelTerminate"

regex101 (こちらを参照) によると、正規表現はまったく問題ありません。それでも、ヘラは私に一致しないと言います。

誰かが私を正しい方向に向けてください.

編集: Heka と Monolog に関して私が見つけることができる唯一のドキュメントは、これらのスライドです。

編集:これを見つけました:https ://regoio.herokuapp.com/

これは、次を使用して動作する必要があることを示しています。

match_regex = '^\[(?P<Timestamp>.*)\] (?P<Channel>.+?)\.(?P<Severity>[A-Z]+): (?P<Message>.*)'

しかし、そうではありません。

4

1 に答える 1

1

明らかに、私は昨日きちんと起きていませんでした。正規表現が正しいことを 15 回確認した後、忘れていたことに気付きました

[LogOutput]
 message_matcher = "TRUE"

[ElasticSearchOutput]
 message_matcher = "TRUE"

私のhekad.tomlファイルに

私の完全なファイルは次のようになります。

[pos_log]
type = "LogfileInput"
logfile = "/home/sam/git/PosBranch/app/logs/dev.log"
decoder = "monolog_decoder"

[monolog_decoder]
type = "PayloadRegexDecoder"
match_regex = '^\[(?P<Timestamp>.*)\] (?P<Channel>.+?)\.(?P<Severity>[A-Z]+): (?P<Message>.*)'
timestamp_layout = "2006-01-02 15:04:05"
timestamp_location = "UTC" # optional, default value

[monolog_decoder.severity_map]
DEBUG = 7
INFO = 6
NOTICE = 5
WARNING = 4
ERROR = 3
CRITICAL = 2
ALERT = 1
EMERGENCY = 0

[monolog_decoder.message_fields]
Type = "monolog_log"
Logger = "sam"
Hostname = "local"
Channel = "%Channel%"
Message = "%Message%"
Payload = ""

[LogOutput]
 message_matcher = "TRUE"

[ElasticSearchOutput]
 message_matcher = "TRUE"

そしてメッセージは今キバナに転がっています:)

于 2014-03-25T09:32:05.157 に答える