Logstashサーバーのログ閲覧と設定



Page content


内部ログ

Logstashのログは以下いずれかの配下に吐かれる。

  • /var/log/logstash
  • ${LS_HOME}/logs

logstash-plain.logが通常のログ。
logstash-slowlog-plain.logが時間のかかった処理のログとなっている。


ログ設定閲覧

外部からGETで見ることが出来る。

curl -XGET 'localhost:9600/_node/logging?pretty'

以下例のようなレスポンスが返る。

{
...
  "loggers" : {
    "logstash.agent" : "INFO",
    "logstash.api.service" : "INFO",
    "logstash.basepipeline" : "INFO",
    "logstash.codecs.plain" : "INFO",
    "logstash.codecs.rubydebug" : "INFO",
    "logstash.filters.grok" : "INFO",
    "logstash.inputs.beats" : "INFO",
    "logstash.instrument.periodicpoller.jvm" : "INFO",
    "logstash.instrument.periodicpoller.os" : "INFO",
    "logstash.instrument.periodicpoller.persistentqueue" : "INFO",
    "logstash.outputs.stdout" : "INFO",
    "logstash.pipeline" : "INFO",
    "logstash.plugins.registry" : "INFO",
    "logstash.runner" : "INFO",
    "logstash.shutdownwatcher" : "INFO",
    "org.logstash.Event" : "INFO",
    "slowlog.logstash.codecs.plain" : "TRACE",
    "slowlog.logstash.codecs.rubydebug" : "TRACE",
    "slowlog.logstash.filters.grok" : "TRACE",
    "slowlog.logstash.inputs.beats" : "TRACE",
    "slowlog.logstash.outputs.stdout" : "TRACE"
  }
}

ログ設定変更

外部からPUTで変更出来る。

curl -XPUT 'localhost:9600/_node/logging?pretty' -H 'Content-Type: application/json' -d'
{
    "logger.logstash.outputs.elasticsearch" : "DEBUG"
}
'

リセットする際は_node/logging/resetを叩く。

curl -XPUT 'localhost:9600/_node/logging/reset?pretty'

(おまけ)/var/logへのログ出力

初期設定のままだと、val/log/messagesにもlogstashのログを出力する。
これを防ぎたければ。systemctlの設定ファイル(/etc/systemd/system/logstash.service)でStandardOutputStandardErrorをnullに設定する。

...
[Service]
...
StandardOutput=null
StandardError=null
...

参考