ELK Stack日志可视化实现步骤
一 架构与组件
二 快速落地流程
filebeat.inputs:
- type: filestream
enabled: true
paths:
- /var/log/nginx/*.log
output.logstash:
hosts: ["logstash:5044"]
input { beats { port => 5044 } }
filter {
# 示例1:Nginx 访问日志
grok {
match => { "message" => "%{IPORHOST:client_ip} - %{USER:user} \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:path} HTTP/%{NUMBER:http_version}\" %{NUMBER:status} %{NUMBER:body_bytes_sent} \"%{DATA:referrer}\" \"%{DATA:user_agent}\"" }
}
date { match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] target => "@timestamp" }
useragent { source => "user_agent" target => "user_agent_info" }
mutate { remove_field => ["message","timestamp"] }
# 示例2:通用“时间 级别 内容”范式
# grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:content}" } }
# date { match => ["timestamp", "ISO8601"] target => "@timestamp" }
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logs-%{+YYYY.MM.dd}"
user => "elastic"
password => "YourStrongPassword"
}
}
三 关键配置与最佳实践
四 常见问题排查
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。