Я использую следующую систему / пакет:
$ 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
из сообщения как @timestamp
в Кибане?Случай 1. Если у вас есть отметка времени в сообщении как @timestamp, измените ее на корневой уровень, изменив json.keys_under_root: true, затем измените "json.overwrite_keys: true
Случай 2. Добавьте @timestamp в свое приложение, например, если в вашем журнале есть данные как {"@timestamp": "2017-01-18T11: 41: 28.753Z", "message": "Some log"}
Затем измените "json.overwrite_keys: false" на true в filebeat.yml, и теперь @timestamp совпадает
В message
Поле - это текст, а не то, что Кибана умеет использовать в качестве метки времени. Вам нужно добавить дополнительный синтаксический анализ, чтобы преобразовать временную метку из вашего файла журнала в date
тип данных. Вы можете узнать больше о типах данных Elasticsearch, прочитав соответствующая документация.
Вы настроили Filebeat для вывода непосредственно в Elasticsearch. Чтобы проанализировать метку времени (и, возможно, другие поля) из вашего файла журнала, вам необходимо: настроить Filebeat для вывода в Logstash вместо. Затем Logstash можно использовать для изменения данных журнала, синтаксического анализа отметки времени, а также выполнения других сопоставлений с образцом.
Сказав все это, похоже, вы используете Filebeat для чтения файла системного журнала. Это нормально, но также возможно Logstash для прямого получения данных системного журнала, что может упростить вашу общую настройку.