Конфигурирование Logstash после установки¶
Note
Предполагается что установка осуществлялась в соответствии с базовым руководством производителя.
Изменения вносятся в единственный файл /etc/logstash/conf.d/base.conf:
- Секция input:
1 2 3 4 5 6 7 | input {
beats {
type=> "fromFileBeat"
port => 5044 # Либо любой желаемый порт
client_inactivity_timeout => 360
}
}
|
- Секция filter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | filter {
if [fields][log_type] == "robot" {
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:syslog_timestamp}%{SPACE}%{WORD:syslog_level}%{SPACE}%{HOSTNAME:syslog_hostname}%{SPACE}%{NOTSPACE:syslog_source}%{SPACE}%{NOTSPACE:syslog_pid}%{SPACE}%{GREEDYDATA:json_part}"
}
}
mutate {
add_field => {
"[robot_log][message]" => "%{message}"
"[robot_log][creation_date_time]" => "%{syslog_timestamp}"
"[robot_log][level]" => "%{syslog_level}"
"[robot_log][hostname]" => "%{syslog_hostname}"
"[robot_log][source]" => "%{syslog_source}"
"[robot_log][pid]" => "%{syslog_pid}"
}
}
json {
source => "json_part"
target => "[robot_log][json]"
}
mutate {
remove_field => ["syslog_timestamp","syslog_level","syslog_hostname","syslog_source","syslog_pid","message","json_part"]
}
}
if [fields][log_type] == "application" {
grok{
match => {
"message" => "%{CISCOTIMESTAMP:timestamp}%{SPACE}%{HOSTNAME:hostname}%{SPACE}%{NOTSPACE:debug_level}%{SPACE}%{GREEDYDATA:json_part}"
}
}
json{
source => "json_part"
target => "json_payload"
}
mutate {
remove_field => ["json_part","message"]
gsub => ["debug_level","<",""]
gsub => ["debug_level",">",""]
}
}
}
|
- Секция output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | output {
if [fields][log_type] == "robot" {
elasticsearch {
hosts => ["<указываем IP:порт или fqdn:порт elastic>"]
index => "robot-logs-%{+YYYY.MM.dd}"
}
}
if [fields][log_type] == "application" {
elasticsearch {
hosts => ["<указываем IP:порт или fqdn:порт elastic>"]
index => "application-logs-%{+YYYY.MM.dd}"
}
}
}
|
Note
В зависимости от режима развертывания в секции hosts указывается либо ip/fqdn:port сервера elastic либо входная точка координатора кластера