整体链路
[应用服务器] --> [Filebeat] --> [Logstash] --> [Elasticsearch] --> [Kibana]
组件职责
- Kibana: 可视化和分析日志数据
- Elasticsearch: 存储和索引日志数据
- Logstash: 解析、转换和丰富日志数据
- Filebeat: 收集和转发日志
Elasticsearch 配置
核心配置(elasticsearch.yml)
安全配置
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
集群与网络配置
cluster.name: my-elasticsearch
node.name: node-1
network.host: localhost
http.port: 9200
路径与内存配置
path.data: ./data
path.logs: ./logs
bootstrap.memory_lock: false
关键注意事项
必须为 Elasticsearch 设置专用 JDK 环境变量:
ES_JAVA_HOME
若未设置,启动时可能因找不到 tools.jar 报错 。

初始化超级用户密码
bin\elasticsearch-reset-password -u elastic

Kibana 配置
核心配置(kibana.yml)
服务器与连接配置
server.port: 5601
server.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"

完了就可以启动了


