> 技术文档 > 一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (一)_elasticsearch收集日志

一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (一)_elasticsearch收集日志


整体链路

[应用服务器] --> [Filebeat] --> [Logstash] --> [Elasticsearch] --> [Kibana]

组件职责

  • Kibana: 可视化和分析日志数据
  • Elasticsearch: 存储和索引日志数据
  • Logstash: 解析、转换和丰富日志数据
  • Filebeat: 收集和转发日志

Elasticsearch 配置

核心配置(elasticsearch.yml)

安全配置

xpack.security.enabled: truexpack.security.enrollment.enabled: truexpack.security.http.ssl: enabled: true keystore.path: certs/http.p12xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12

集群与网络配置

cluster.name: my-elasticsearchnode.name: node-1network.host: localhosthttp.port: 9200

路径与内存配置

path.data: ./datapath.logs: ./logsbootstrap.memory_lock: false

关键注意事项

必须为 Elasticsearch 设置专用 JDK 环境变量:

ES_JAVA_HOME

若未设置,启动时可能因找不到 tools.jar 报错 。

初始化超级用户密码

bin\\elasticsearch-reset-password -u elastic

Kibana 配置

核心配置(kibana.yml)

服务器与连接配置

server.port: 5601server.host: \"localhost\"elasticsearch.hosts: [\"https://localhost:9200\"] elasticsearch.ssl.verificationMode: none

安全与加密配置

elasticsearch.serviceAccountToken: \"AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYS10b2tlbjpaQldYekwyUlFHaWhKbkltV3FJQUxn\"xpack.security.encryptionKey: \"something_at_least_32_characters_long\"

生成加密密钥(可选)

Kibana需要加密密钥来支持告警功能,但是这一步不配置也不影响功能,只是控制台会有报错信息:生成加密密钥并更新Kibana配置:

bin\\kibana-encryption-keys generate --force

创建服务账号 Token(重要)

禁止使用 elastic 超级用户运行 Kibana!

它不能直接使用elastic超级用户账号来运行Kibana,因为这是一个安全风险。我们需要使用服务账号(Service Account)来代替。

curl -k -X POST -u elastic:elastic \"https://localhost:9200/_security/service/elastic/kibana/credential/token/kibana-token\"

完了就可以启动了