ELK(Elasticsearch + Logstash + Kibana)是一套用于日志收集、存储、分析和可视化的开源解决方案
·
ELK(Elasticsearch + Logstash + Kibana)是一套用于日志收集、存储、分析和可视化的开源解决方案。搭建 ELK 需要安装这三个组件,并进行基本配置。
1. 环境准备
- 操作系统:CentOS 7 / Ubuntu / Debian(建议使用 Linux 服务器)
- JDK:Elasticsearch 7.x 及以上自带 JDK,无需单独安装
- 内存:至少 4GB(建议 8GB 以上)
2. 安装 Elasticsearch
2.1 下载并安装
# 添加 Elasticsearch 官方源
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 创建 YUM 源配置文件
cat <<EOF | tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 安装 Elasticsearch
yum install -y elasticsearch
2.2 配置 Elasticsearch
编辑配置文件 /etc/elasticsearch/elasticsearch.yml
# 监听本机所有 IP(默认是 localhost )
network.host: 0.0.0.0
# 设置集群名称(默认是 "elasticsearch")
cluster.name: my-cluster
# 设置节点名称
node.name: node-1
# 是否启用单节点模式(如果只有一台机器)
discovery.type: single-node
2.3 启动 Elasticsearch
# 设置开机自启
systemctl enable elasticsearch
# 启动服务
systemctl start elasticsearch
# 检查状态
systemctl status elasticsearch
2.4 测试 Elasticsearch
curl -X GET "http://localhost:9200/"
返回如下内容说明启动成功:
{
"name" : "node-1",
"cluster_name" : "my-cluster",
"cluster_uuid" : "xxx",
"version" : {
"number" : "7.x.x",
"build_flavor" : "default",
...
}
}
3. 安装 Logstash
3.1 安装
yum install -y logstash
3.2 配置 Logstash
创建 Logstash 配置文件 /etc/logstash/conf.d/logstash.conf
input {
file {
path => "/var/log/messages" # 监听系统日志
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:hostname} %{GREEDYDATA:logmessage}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
3.3 启动 Logstash
systemctl enable logstash
systemctl start logstash
4. 安装 Kibana
4.1 安装
yum install -y kibana
4.2 配置 Kibana
编辑 /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
4.3 启动 Kibana
systemctl enable kibana
systemctl start kibana
4.4 访问 Kibana
在浏览器中访问 http://服务器IP:5601,可以看到 Kibana 的 Web 界面。
5. 配置 Filebeat(可选,日志采集)
Filebeat 主要用于采集日志并传输到 Logstash 或 Elasticsearch。
5.1 安装
yum install -y filebeat
5.2 配置 Filebeat
编辑 /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
- /var/log/nginx/*.log
output.logstash:
hosts: ["localhost:5044"]
5.3 启动 Filebeat
systemctl enable filebeat
systemctl start filebeat
6. 验证 ELK 是否正常
6.1 检查 Elasticsearch
curl -X GET "http://localhost:9200/_cat/indices?v"
如果 Logstash 采集到日志,应该能看到 logstash-YYYY.MM.DD 的索引。
6.2 检查 Kibana
进入 Kibana:
- 访问
http://服务器IP:5601 - 在 “Management” → “Index Patterns” 中添加
logstash-* - 进入 “Discover”,查看日志数据是否成功收集
7. 结论
至此,ELK 环境搭建完成,并可用于日志收集与分析。可以根据业务需求进行进一步优化,例如:
- 配置 Logstash 解析更多格式的日志
- 在 Kibana 里创建可视化报表
- 配合 Filebeat 进行分布式日志收集
如果你在企业环境部署 ELK,建议:
- Elasticsearch 采用 集群模式(多台服务器,提高可用性)
- Kibana 配置 身份认证(防止未授权访问)
- 日志清理:定期删除旧数据,防止占用过多磁盘空间
- 优化 Logstash 性能:使用 Kafka 等组件进行日志缓存
你现在的运维环境里是否需要 ELK?如果有具体的日志需求,可以再进一步优化配置!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)