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:

  1. 访问 http://服务器IP:5601
  2. “Management” → “Index Patterns” 中添加 logstash-*
  3. 进入 “Discover”,查看日志数据是否成功收集

7. 结论

至此,ELK 环境搭建完成,并可用于日志收集与分析。可以根据业务需求进行进一步优化,例如:

  • 配置 Logstash 解析更多格式的日志
  • 在 Kibana 里创建可视化报表
  • 配合 Filebeat 进行分布式日志收集

如果你在企业环境部署 ELK,建议:

  1. Elasticsearch 采用 集群模式(多台服务器,提高可用性)
  2. Kibana 配置 身份认证(防止未授权访问)
  3. 日志清理:定期删除旧数据,防止占用过多磁盘空间
  4. 优化 Logstash 性能:使用 Kafka 等组件进行日志缓存

你现在的运维环境里是否需要 ELK?如果有具体的日志需求,可以再进一步优化配置!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐