Я использую следующую систему / пакет:
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
$ rpm -q filebeat
filebeat-1.3.0-1.x86_64
$
с /etc/filebeat/filebeat.yml
:
$ cat /etc/filebeat/filebeat.yml
filebeat:
prospectors:
-
paths:
- /var/log/*.log
input_type: log
registry_file: /var/lib/filebeat/registry
output:
elasticsearch:
hosts: ["localhost:9200"]
shipper:
logging:
to_syslog: true
files:
$
"message": "8 сентября, 10:20:01 X CROND [11586]: (root) CMD (/ usr / lib64 / sa / sa1 1 1) ",
отметку времени
из сообщения как @timestamp
в Kibana? Поле сообщения
- это текст, а не то, что Кибана знает, как использовать его в качестве отметки времени. Вам нужно добавить дополнительный синтаксический анализ, чтобы преобразовать метку времени из вашего файла журнала в тип данных date
. Вы можете узнать больше о типах данных Elasticsearch, прочитав соответствующую документацию .
Вы настроили Filebeat для вывода непосредственно в Elasticsearch. Чтобы проанализировать метку времени (и, возможно, другие поля) из вашего файла журнала, вам необходимо настроить Filebeat для вывода в Logstash . Затем Logstash можно использовать для изменения данных журнала, анализа отметки времени, а также для выполнения других сопоставлений с образцом.
Сказав все это, похоже, что вы могли использовать Filebeat для чтения файла системного журнала. Это нормально, но Logstash также может напрямую получать данные системного журнала , что может упростить вашу общую настройку.
Случай 1. Если у вас есть отметка времени в сообщении как @timestamp, измените ее на корневой уровень, изменив json.keys_under_root: true, тогда изменить "json.overwrite_keys: true
Случай 2: Добавьте @timestamp в свое приложение, например, если в вашем журнале есть данные как (скрытый) журнал "}
Затем измените" json.overwrite_keys: false "на true в filebeat.yml, и теперь @timestamp совпадает с