作者:到处旅游增加阅历入 | 来源:互联网 | 2023-07-09 12:39
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端口
密码设置
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版本以上的免费使用密码认证