ELK(ElasticSearch+Logstash+Kibana)配置中的一些坑基于7.6版本

三个组件都是采用Docker镜像安装,过程简单不做赘述,直接使用Docker官方镜像运行容器即可,注意三个组件版本必须一致

运行容器时最好将三个组件的核心配置文件与主机做映射,方便直接在主机修改不用每次进入容器修改。

ES配置文件elasticsearch.yml:(配置了ES用户名和密码,也可以不开启认证)

cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP
transport.host: 0.0.0.0
# elasticsearch节点名称
node.name: node-1
# elasticsearch节点信息
cluster.initial_master_nodes: ["node-1"]
# 下面的配置是关闭跨域验证(可以不开启)
http.cors.enabled: true
http.cors.allow-origin: "*"
# 开启用户名密码认证
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
# 配置head插件认证
http.cors.allow-headers: Authorization

Kibana配置文件kibana.yml:(配置了Kibana用户名和密码,注意不是ES用户)

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["//ip:9200"]
# 操作界面语言设置为中文
i18n.locale: "zh-CN"
# 这里的用户名kibana我们会在ES设置
elasticsearch.username: "kibana"
elasticsearch.password: "kibana的密码"

Logstash配置文件:(Logstash新增了pipeline流水线运行方式,所以需要配置三个文件)

logstash.conf(此处需要填写ES用户的用户名密码,监听日志的端口5044,输出目标ES信息和索引)

input {
    tcp {
        port => 5044
        codec => json_lines
    }
}
filter {

}
output {
        stdout {
                codec => rubydebug
        }
        elasticsearch {
                hosts => ["ip:9200"]
                index => "logstash-%{[server_name]}-%{+YYYY.MM.dd}"
                user => elastic
                password => es密码
        }
}
pipeline.yml(这里我的logstash环境只有一个指向一个路径就可以了)
# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
#   https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html

- pipeline.id: main
  path.config: "/usr/share/logstash/pipeline/logstash.conf"

logstash.yml(此处需要填logstash_system用户的用户名密码)

http.host: "0.0.0.0"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: logstash密码
xpack.monitoring.elasticsearch.hosts: [ "//47.103.159.79:9200" ]

至此我们已经有三个用户了,ES用户,Kibana用户,logstash_system用户。

通俗来讲,ES用户超级管理员,Kibana和Logstash用户只能各司其职。

 

成功启用后你的Kibana会多出一些用户选项,以后可以直接在Kibana中修改密码了

 

 

 

 其他的用户用到的时候再设置就行。

 

在设置logstash的时候有个坑

 

 大体意思是执行logstash.conf时错误,一般是格式问题导致编译失败,但是这里是输入ES密码时出现了“=”等号,不在规定字符集中,所以设置ES密码时建议不要有符号加入。