搭建 ELK 日志管理系统(Elasticsearch + Logstash + Kibana,现代常配合 Beats 使用,称为 Elastic Stack)一般遵循以下步骤。下面以 Linux(CentOS / Ubuntu) 环境为例,给出一个可落地的搭建方案。
典型架构:
应用/服务器
↓ (Filebeat)
Logstash(可选,做过滤/解析)
↓
Elasticsearch(存储 + 检索)
↓
Kibana(可视化)
# Elasticsearch
9200
# Kibana
5601
# Logstash(如启用)
5044
cat > /etc/yum.repos.d/elastic.repo <<EOF
[elastic-8.x]
name=Elastic repository for 8.x
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
yum install -y elasticsearch
vi /etc/elasticsearch/elasticsearch.yml
常用配置:
network.host: 0.0.0.0
discovery.type: single-node
xpack.security.enabled: false # 测试环境可关闭
systemctl enable elasticsearch
systemctl start elasticsearch
curl http://localhost:9200
yum install -y kibana
修改配置:
vi /etc/kibana/kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
启动:
systemctl enable kibana
systemctl start kibana
访问:
http://服务器IP:5601
在需要收集日志的服务器上安装:
yum install -y filebeat
配置示例:
vi /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["http://ES_IP:9200"]
启动:
systemctl enable filebeat
systemctl start filebeat
适合需要复杂日志解析的场景(如 Nginx、Java 日志)。
yum install -y logstash
示例配置:
vi /etc/logstash/conf.d/logstash.conf
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:time} %{LOGLEVEL:level} %{GREEDYDATA:msg}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
启动:
systemctl enable logstash
systemctl start logstash
Filebeat 的 output 改为
logstash:5044
filebeat-* 或 logs-*)如果你只是想快速用:
如果你需要,我可以: ✅ 给你一份 Docker ELK 配置 ✅ 按 Nginx / Spring Boot / Docker 日志 场景定制 ✅ 帮你做 日志格式解析规则
告诉我你的使用场景即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。