您的位置:首页 > 运维架构 > Nginx

ELK收集nginx日志一例

2020-02-07 12:07 239 查看

数据总体流向
filebeat(收集) --> logstash(数据过滤处理) --> elasticsearch(数据存储) --> kibana(数据展示)

filebeat.yml配置

---

filebeat.inputs:
- type: log
enabled: true
paths:
-  /var/log/nginx/access.log
tags: ["nginx-access-log"]
fields:
logtype: nginx-access

output.logstash:
hosts: ["192.168.60.156:5044"]

如果要收集多个不同应用的日志文件,可以用这个字段区分,以便创建不同的索引

logstash.yml配置

input {
beats {
port => 5044
codec => "json"
}
}

output {
if [fields][logtype] == "nginx-access" {
elasticsearch {
hosts => ["http://192.168.60.133:9200"]
index => "nginx-access-node1-%{+YYYY.MM.dd}"
}
}
}

if判断从filebeat过来的日志类型

elasticsearch和kibana只要绑定ip和端口就行,然后需要在kibana中创建index pattern。
至此在kibana的discover里就可以看到数据了。

如果在filebeat和logstash中有kafka,则
filebeat.yml如下

- type: log
enabled: true
paths:
-  /var/log/nginx/access.log
tags: ["nginx-access-log"]

#output.logstash:
#  hosts: ["192.168.60.156:5044"]

output.kafka:
hosts: ["10.10.120.42:9092"]
topic: "filebeat"
codec.json:
pretty: true

logstash.conf

input {
kafka {
bootstrap_servers => "10.10.120.42:9092"
topics => ["filebeat"]
codec => "json"
}
}

output {
elasticsearch {
hosts => ["http://192.168.60.133:9200"]
index => "nginx-access-node1-%{+YYYY.MM.dd}"
# pipeline => "%{[@metadata][pipeline]}"
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
202001201034 发布了25 篇原创文章 · 获赞 0 · 访问量 263 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: