docker安装es、logstash、kibana

1、安装es

拉取镜像:
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.1

运行容器:
docker run -d --name es --restart="always" -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.3.1

进入容器:
docker exec -it es /bin/bash

cd config    

# 修改配置文件 
vi elasticsearch.yml 
# 加入跨域配置 
http.cors.enabled: true 
http.cors.allow-origin: "*"

重启容器
docker restart es

验证是否安装成功 访问9200端口

docker安装es、logstash、kibana_第1张图片

 密码设置

config文件加上配置如下:
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
然后重启容器
然后进入容器执行命令(需要进入到/bin/sh命令里,否则会执行失败) bin/elasticsearch-setup-passwords interactive  设置各个用户的密码
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://192.168.1.54:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

 2、安装logstash

创建文件夹 (用于容器文件的挂载)
mkdir /opt/logstash/conf.d
logstash下新建logstash.yml文件
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
conf.d下新建test.conf文件
input {
    beats {
    port => 5044
    codec => "json"
}
}


output {
  elasticsearch { hosts => ["http://192.168.1.54:9200"] }
  stdout { codec => rubydebug }
}

docker run -it -d -p 5044:5044 --name logstash --restart="always" --net host -v /opt/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /opt/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.0.0

3、安装kibana

docker pull kibana:7.2.0
docker run --name kibana --link=es:test  -p 5601:5601 -d kibana:7.2.0
docker run --name kibana --restart="always" -e ELASTICSEARCH_URL=http://192.168.1.54:9200 -p 5601:5601 -d kibana:7.2.0

添加kibana.yml文件,内容如下
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.1.54:9200" ]
elasticsearch.username: "elastic"
elasticsearch.password: "123456"

kibana的登录用户密码是es的

http://localhost:5601

 4、问题汇总

第一点:KB、ES版本不一致(网上大部分都是这么说的)

解决方法:把KB和ES版本调整为统一版本

第二点:kibana.yml中配置有问题(通过查看日志,发现了Error: No Living connections的问题)

解决方法:将配置文件kibana.yml中的elasticsearch.url改为正确的链接,默认为: http://elasticsearch:9200

改为http://自己的IP地址:9200,如果存在密码的话需要加上下面两句话

elasticsearch.username: "elastic"

elasticsearch.password: "123456"

第三点:浏览器没有缓过来

解决方法:刷新几次浏览器。

第四点: es磁盘空间满会导致只读 问题(ES 写索引报错 FORBIDDEN/12/index read-only / allow delete (api)

解决方案: https://blog.csdn.net/zheng45/article/details/92383323 

第5点:es密码不能包含@符号的因为连接的时候其实是拼接的url,会导致冲突   http://user:pass@localhost:9200  

第6点;es加了密码验证之后命令基本带上-u elastic   ,只有7.3版本以上的免费使用密码认证

 

你可能感兴趣的:(elk,es,logstash,kibana,日志服务,搜索引擎)