使用 ELK(Elasticsearch + Logstash + Kibana) 监控服务器日志,一般流程是:采集日志 → 传输/过滤 → 存储 → 可视化/告警。下面给你一套从 0 到 1 的实战方案(也包含更常见的 Filebeat + ELK 架构)。
生产推荐架构:
服务器日志
↓
Filebeat(轻量采集)
↓
Logstash(过滤/解析)
↓
Elasticsearch(存储/检索)
↓
Kibana(可视化/监控/告警)
✅ 为什么用 Filebeat?
比 Logstash 更轻量,不占用服务器资源,专门干“采集+发送”。
# 以 CentOS 为例
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elasticsearch.repo
内容:
[elasticsearch]
name=Elasticsearch
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
enabled=1
安装:
yum install elasticsearch -y
systemctl start elasticsearch
验证:
curl http://localhost:9200
yum install kibana -y
systemctl start kibana
访问:
http://服务器IP:5601
yum install logstash -y
示例配置 /etc/logstash/conf.d/server-log.conf:
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "server-log-%{+YYYY.MM.dd}"
}
}
yum install filebeat -y
配置 /etc/filebeat/filebeat.yml:
filebeat.inputs:
- type: log
paths:
- /var/log/messages
- /var/log/nginx/access.log
output.logstash:
hosts: ["logstash服务器IP:5044"]
启动:
systemctl start filebeat
server-log-*level: ERROR✅ 使用 ILM(索引生命周期) 自动清理旧日志
✅ Filebeat 开启 multiline(多行日志合并)
✅ 日志加 host.name 字段区分多台服务器
✅ 生产环境启用 Elasticsearch 安全认证
如果你日志格式简单:
Filebeat → Elasticsearch → Kibana
跳过 Logstash,性能更好,适合中小规模。
如果你愿意,我可以:
你现在的服务器是 什么系统 + 什么日志类型?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。