elasticsearch - How to define seperated indexes for different logs in Filebeat/ELK? -
i wondering how create separated indexes different logs fetched logstash (which later passed onto elasticsearch), in kibana, can define 2 indexes them , discover them.
in case, have few client servers (each of installed filebeat) , centralized log server (elk). each client server has different kinds of logs, e.g. redis.log, python logs, mongodb logs, sort them different indexes , stored in elasticsearch.
each client server serves different purposes, e.g. databases, uis, applications. hence give them different index names (by changing output index in filebeat.yml?).
in filebeat configuration can use document_type identify different logs have. inside of logstash can set value of type field control destination index.
however before separate logs different indices should consider leaving them in single index , using either type or custom field distinguish between log types. see index vs type.
example filebeat prospector config:
filebeat: prospectors: - paths: - /var/log/redis/*.log document_type: redis - paths: - /var/log/python/*.log document_type: python - paths: - /var/log/mongodb/*.log document_type: mongodb example logstash config:
input { beats { port => 5044 } } output { # customize elasticsearch output filebeat. if [@metadata][beat] == "filebeat" { elasticsearch { hosts => "localhost:9200" manage_template => false # use filebeat document_type value elasticsearch index name. index => "%{[@metadata][type]}-%{+yyyy.mm.dd}" document_type => "log" } } }
Comments
Post a Comment