filebeat将收集来的日志存储到自定义名称的es索引(四)
filebeat自定义索引名称
环境准备
IP | 服务 |
---|---|
192.168.81.210 | es+kibana |
192.168.81.220 | es+filebeat+nginx |
192.168.81.230 | filebeat+nginx |
1.配置filebeat使用自定义的索引名称
我们配置192.168.81.220的filebeat使用自定义的索引名称
1.1.配置nginx开启json格式的日志
[root@node-2 ~]# vim /etc/nginx/nginx.conf
http {
log_format main '{"客户端内网地址":"$remote_addr",'
'"时间":"$time_iso8601",'
'"URL":"$request",'
'"状态码":$status,'
'"传输流量":$body_bytes_sent,'
'"跳转来源":"$http_referer",'
'"浏览器":"$http_user_agent",'
'"客户端外网地址":"$http_x_forwarded_for",'
'"请求响应时间":$request_time,'
'"后端地址":"$upstream_addr"}';
}
[root@node-2 ~]# systemctl reload nginx
1.2.配置filebeat使用自定义的索引名
自定义索引名主要修改output的配置,自定义索引名,必须新设置一个模板,否则会报错
配置解释:
output.elasticsearch:
hosts: [“192.168.81.210:9200”]
index: “nginx-jiangxl-access-%{+yyyy.MM}” //自定义索引名,这里配置的日期是按月进行创建索引了,也就是1个月创建一个索引,个人还是建议以天来创建索引,这样容易备份setup.template.name: “nginx” //设置一个新的模板,模板的名称
setup.template.pattern: “nginx-*” //模板匹配那些索引,这里表示以nginx开头的所有的索引
setup.template.enabled: false //关掉默认的模板配置
setup.template.overwrite: true //开启新设置的模板
1.修改配置
[root@node-2 ~]# vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
json.keys_under_root: true
json.overwrite_keys: true
output.elasticsearch:
hosts: ["192.168.81.210:9200"]
index: "nginx-jiangxl-access-%{+yyyy.MM}"
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.enabled: false
setup.template.overwrite: true
2.重启filebeat
[root@node-2 ~]# systemctl restart filebeat
1.3.查看es是否增加了新的索引
可以看到自定义的索引已经创建好了,但是由于我们启用了新的模板,则应用了es默认的配置,5个分片1个副本,旁边的索引使用的是默认的filebeat配置,3个分片1个副本
1.4.在kibana上关联es索引
点击Managerment—索引模式—创建索引
索引名使用通配符的形式,这样以后索引的nginx-jiangxl开头的索引库收集来的日志可以聚合展示了,否则每个月甚至每天都需要创建索引
可以看到在选择字段的时候也比原来的要少,因为是自定义的模板,因此字段只有我们定义的内容,默认的模板把所有支持的字段都会加上
创建成功
目录 返回
首页