Elasticsearch-logstash-filebeat-kibana を使用して、集中ログ用にシステムを正常にセットアップしました。
Kibana で filebeat テンプレート インデックスを使用してログを表示できません。ログ ファイルを適切に解析するために、logstash フィルタを作成しようとすると、問題が発生します。
私は grok パターンを使用しているので、最初にこのパターンを作成しました (/opt/logstash/patterns/grok-patterns):
CUSTOMLOG %{TIMESTAMP_ISO8601:timestamp} - %{USER:auth} - %{LOGLEVEL:loglevel} - \[%{DATA:pyid}\]\[%{DATA:source}\]\[%{DATA:searchId}\] - %{GREEDYDATA:logmessage}
そして、これはログスタッシュ フィルターです (/etc/logstash/conf.d/11-log-filter.conf):
filter {
if [type] == "log" {
grok {
match => { "message" => "%{CUSTOMLOG}" }
patterns_dir => "/opt/logstash/patterns"
}
mutate {
rename => [ "logmessage", "message" ]
}
date {
timezone => "Europe/London"
locale => "en"
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss,SSS" ]
}
}}
コマンドラインからテストすると、パーサーは正常に動作しているようです。
[root@XXXXX logstash]# bin/logstash -f test.conf
Settings: Default pipeline workers: 4
Logstash startup completed
2016-06-03 12:55:57,718 - root - INFO - [27232][service][751282714902528] - here goes my message
{
"message" => "here goes my message",
"@version" => "1",
"@timestamp" => "2016-06-03T11:55:57.718Z",
"host" => "19598",
"timestamp" => "2016-06-03 12:55:57,718",
"auth" => "root",
"loglevel" => "INFO",
"pyid" => "27232",
"source" => "service",
"searchId" => "751282714902528"
}
ただし...ログはKibanaに表示されず、「_grokparsefailure」タグも表示されないため、パーサーが機能していることを推測しますが、ログを見つけることができます。
私は何を間違っていますか?私は何かを忘れていますか?
前もって感謝します。
編集
入力 (02-beats-input.conf):
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
出力 (30-elasticsearch-output.conf):
output {
elasticsearch {
hosts => ["localhost:9200"]
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}