rsyslog から logtash および elasticsearch にログを送信できません。

rsyslog から logtash および elasticsearch にログを送信できません。

私はUbuntuを使用しており、同じシステムにELKスタックバージョン8.5がインストールされています。各サービス(logstash、elasticsearch、kibana)に対して必要な設定を作成し、同様にrsyslogを設定してログをlogstash(毎日作成されるインデックス定義)に送信し、logstashからelasticsearchに送信します。問題は、logstashにrsyslogと入力するとelasticsearchにログが表示されないことです。同時に、ファイルパスでファイル入力を使用すると機能します(elasticsearchとkibanaでもインデックスを表示できます)。一部のファイルが表示されないことに気づきました。したがって、一部のファイルでは機能しますが、他のファイルでは機能しません。では、何が問題になるのでしょうか?

rsyslog.confファイル

#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

/etc/rsyslog.d ディレクトリの構成ファイル

01-json-template.conf file

    template(name="json-template"
  type="list") {
    constant(value="{")
      constant(value="\"@timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
      constant(value="\",\"@version\":\"1")
      constant(value="\",\"message\":\"")     property(name="msg" format="json")
      constant(value="\",\"sysloghost\":\"")  property(name="hostname")
      constant(value="\",\"severity\":\"")    property(name="syslogseverity-text")
      constant(value="\",\"facility\":\"")    property(name="syslogfacility-text")
      constant(value="\",\"programname\":\"") property(name="programname")
      constant(value="\",\"procid\":\"")      property(name="procid")
    constant(value="\"}\n")
}

50-default.confファイル

    #  Default rules for rsyslog.
#
#                       For more information see rsyslog.conf(5) and /etc/rsyslog.conf

*.*                                                     @localhost:514

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
kern.*                          -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
mail.*                          -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
mail.err                        /var/log/mail.err

60-output.confファイル

    # This line sends all lines to defined IP address at port 10514,
# using the "json-template" format template

*.*                                             @localhost:10514;json-template

rsyslog の Logstash 構成ファイル

    input {
  udp {
    host => "localhost"
    port => 10514
    codec => "json"
    type => "rsyslog"
  }
}


    output {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "rsyslog-%{+YYYY.MM.dd}"
  }
}

ベストアンサー1

おすすめ記事