ELK日志分析系统完整部署:从零搭建日志中心全流程

开始之前:确认环境与准备工作

在动手搭建 ELK日志分析系统完整部署 之前,先确认你的服务器满足以下条件:

  • 操作系统:建议 CentOS 7.x 或 Ubuntu 20.04,本文以 CentOS 7 为例。
  • 内存:至少 4GB,如果只是测试可以 2GB,但 Elasticsearch 会吃内存。
  • Java 环境:Elasticsearch 依赖 JDK 8 或 11,推荐 OpenJDK 11。
  • 关闭防火墙(测试环境)systemctl stop firewalld && systemctl disable firewalld。生产环境请按需开放端口。
  • 域名或 IP:准备好服务器公网 IP 或内网 IP,后面 Kibana 需要用。

需要安装的组件

  • Elasticsearch(存储与搜索日志)
  • Logstash(收集与解析日志)
  • Kibana(可视化展示)

建议顺序:Elasticsearch → Kibana → Logstash,因为 Kibana 和 Logstash 都要连接 ES。

第一步:安装并启动 Elasticsearch

Elasticsearch(简称 ES)是整个日志中心的核心,负责存储和检索。

1. 安装 GPG key 和仓库

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/elastic.repo << 'EOF'
[elastic-7.x]
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

2. 安装并启动

yum install -y elasticsearch
systemctl enable elasticsearch
systemctl start elasticsearch

3. 验证是否启动成功

curl -X GET 'http://localhost:9200'

如果返回带 cluster_nameversion 的 JSON,说明 ES 正常运行。

注意:默认 ES 只监听本地地址,如果需要在其他机器访问,需要修改 /etc/elasticsearch/elasticsearch.yml 中的 network.host: 0.0.0.0,并重启服务。生产环境建议绑定内网 IP 并启用 X-Pack 安全认证。

第二步:安装 Kibana 并连接到 ES

Kibana 是日志的可视化仪表盘,让非技术人员也能轻松查看日志。

1. 安装 Kibana

yum install -y kibana

2. 修改配置连接 ES

编辑 /etc/kibana/kibana.yml,修改以下两行:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

server.host 设为 0.0.0.0 表示允许所有 IP 访问(生产建议绑定内网 IP)。

3. 启动 Kibana

systemctl enable kibana
systemctl start kibana

4. 验证访问

浏览器打开 http://你的服务器IP:5601,如果看到 Kibana 欢迎界面,说明安装成功。
如果无法访问,检查防火墙是否放行 5601 端口。

第三步:安装 Logstash 并配置日志采集

Logstash 负责从各种来源(文件、TCP、Syslog)采集日志,经过过滤后发送到 ES。

1. 安装 Logstash

yum install -y logstash

2. 创建一个简单的配置,监听系统日志文件

新建配置文件 /etc/logstash/conf.d/syslog.conf

input {
  file {
    path => ["/var/log/messages"]
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok {
    match => { "message" => "%{SYSLOGLINE}" }
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "syslog-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}
说明:这里演示采集 /var/log/messages(系统日志),grok 过滤器可以自动解析常见日志格式。实际生产应用中,可根据日志格式自定义正则。

3. 启动 Logstash 并验证

systemctl enable logstash
systemctl start logstash

查看日志 /var/log/logstash/logstash-plain.log 确认无报错。
如果一切正常,几秒后 Kibana 即可添加索引 syslog-* 并看到数据。

常见问题与避坑指南

Q1:Elasticsearch 启动失败,提示 max virtual memory areas vm.max_map_count [65530] is too low

解决方案
临时执行 sysctl -w vm.max_map_count=262144
永久写入 /etc/sysctl.conf 添加 vm.max_map_count=262144

Q2:Kibana 无法连接到 Elasticsearch?

先确认 ES 是否正在运行:curl http://localhost:9200
如果 ES 拒绝连接,检查 /etc/elasticsearch/elasticsearch.ymlnetwork.host 是否设置正确,并重启 ES。

Q3:Logstash 采集不到日志?

确保 path 指向的文件存在且 Logstash 用户有读取权限(Logstash 默认以 logstash 用户运行)。
可以临时在 output 部分加上 stdout 调试,观察日志是否输入到控制台。

避坑要点

  • 内存分配:ES 默认使用 1GB 堆内存,如果服务器只有 2GB,建议修改 /etc/elasticsearch/jvm.options-Xms1g-Xmx1g 为 512m。
  • 版本一致性:Elasticsearch、Kibana、Logstash 的版本必须严格一致(本文使用 7.x 最新版本),否则可能无法通信。
  • 目录权限:Logstash 采集日志时,确保 /etc/logstash/conf.d/ 下的配置文件属主为 logstash:logstash

验证日志系统是否正常工作

1. 检查 ES 是否有新索引

curl -X GET 'http://localhost:9200/_cat/indices?v'

看到类似 syslog-2025.03.27 的索引即表示已成功接收 Logstash 发送的数据。

2. 在 Kibana 中查看日志

  • 打开 Kibana (http://IP:5601)
  • 点击左侧菜单 Discover
  • 第一次需要创建索引模式:输入 syslog-*,选择 @timestamp 作为时间字段
  • 创建后即可看到实时日志,可以按关键字搜索、筛选

3. 写入测试日志验证

echo "test log entry from ELK setup" >> /var/log/messages

等待几秒后刷新 Kibana,应该能搜索到这条日志。
如果能看到,说明 ELK日志分析系统完整部署 顺利闭环。

总结

从环境准备到三组件安装,再到日志采集验证,你已经走完了 ELK日志分析系统完整部署 的全流程。
记住非生产环境务必做三点:修改 ES 和 Kibana 的 bind 地址(建议内网 IP)、启用 X-Pack 安全认证定期清理旧索引(可用 Curator 或 ILM 策略)。
遇到问题优先回看本文的“常见问题与避坑指南”,希望这套教程能帮你快速落地一套实用的日志分析平台。

分享到:
上一篇
监控大屏Grafana可视化搭建:零基础完整教程
下一篇
零基础入门:消息队列RabbitMQ服务器配置完整指南
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意