私は、syslogメッセージを中央のrsyslogサーバに送信する大規模なサーバ群を持っています。これらのサーバは、それらをlogstashに送信します。私が持っている問題は、送信サーバーが "localhost"または内部eth0 NICの10.0.0.0/8 IPアドレスとしてマシン名を送信していることです。これはrsyslogサーバーがログファイルを送信元IP上にあり、サーバのremote-server-1.2.3.4.logファイルにログを記録します。この問題は、rsyslogサーバーがlogstashに(*.* @logstash
とともに)送信した後に、送信元IP情報を持たない場合に発生します。rsyslogで転送するときにフィールドを書き換えることはできますか?
ソースマシンのIPアドレスを含むようにrsyslogでソースマシン名/ IPを変更することができます。そのため、logstashは正しいソースIPに集約できますか?
これは、フィールドを書き換えることrsyslogのは不可能である
input {
udp {
port => 514
type => syslog
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => "esearch1:443"
ssl => "true"
manage_template => false
}}
おかげ
./samplicate -d 5 -S -p 514 -s 10.3.1.183 10.3.1.183/1554 10.3.1.183/1555'''と '' 'samplate''を' '' –