EFK是ELK日志监控架构中一个较为简单的、轻量级的日志监控框架,主要使用到了Filebeat 、Elasticsearch以及Kibana。Filebeat采集日志,并通过配置为某一类日志(如Tomcat的日志、Nginx的日志等等)创建独立的索引。如果不做独立的配置,那么Filebeat将所有的日志都采用同一个默认索引。
这里使用的EFK的版本都为7.16.2版本,Elastic安装为单节点。EFK的安装配置,我之前的文章有详细说明,这里就不做介绍了。
下面直接上重点!
Filebeat使用rpm包安装,安装后的配置目录为/etc/filebeat/,这里我们需要为filebeat服务的首次启动创建配置信息。下面两处标红的配置,是网上铺天盖地使用的配置,但是实际测试发现,加上之后,在Kibana里面无法展示自定义的索引,但是并不影响索引模板的展示。
# vi /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: filestream
enabled: false
paths:
- /var/log/*.log- type: log
enable: true
paths:
- /app/tomcat/logs/access.*.log
# json.keys_under_root: true
# json.overwrite_keys: true
fields:
index: hawebfilebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: falsesetup.ilm.enabled: false # 自定义索引必须要配置的一个参数,索引生命周期管理ilm默认开启,开启时默认索引名只能为filebeat-*;
setup.template.name: "tomcat-haweb-log"
setup.template.pattern: "tomcat-*"
setup.template.overwrite: true
setup.template.enabled: truesetup.template.settings:
index.number_of_shards: 1setup.kibana:
host: "192.168.223.10:5601"output.elasticsearch:
hosts: ["192.168.223.10:9200"]
index: "tomcat-%{[fields.index]}-*"
indices:
- index: "tomcat-haweb-%{+yyyy-MM-dd}"
when.equals:
fields:
index: "haweb"
username: "elastic"
password: "3d8h#5v0M"processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
配置好以后,执行下面的命令
# filebeat setup
# systemctl start filebeat.service
然后,在kibana的管理页面中就可以看到我们创建的索引和索引模板了。
首页 - 管理 - Stack Management - 数据 - 索引管理
创建索引模式
根据自定义的索引,查看对应的服务日志信息
另外,如果在测试过程中,删除了之前生成的索引和索引模板,再执行filebeat setup后,只出现索引模板,而没有出现索引,则需要删除下面的目录。
# cd /var/lib/fileabeat && rm -rf ./registry