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密码时建议不要有符号加入。