1 ES启动后,本机可以通过localhost访问,但无法通过IP发访问
修改配置文件
vim ${ES_HOME}/config/elasticsearch.yml
新增如下配置:
http host: "[::]"
重启ES即可。
2 ES启动后,外网无法访问
外网IP被防火墙拦掉了,用户根据公司环境选择暂时关闭或者永久关闭防火墙。
1)暂时关闭防火墙
systemctl stop firewalld
service iptables stop
2)永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
3)开放端口
#--permanent永久生效,若无此参数重启后失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重新载入
firewall-cmd --reload
3 Kibana安装过程遇到问题
3.1 Kibana的安装
1)启动单节点ES,查看集群健康状态
http://${ES_IP}:9200/_cluster/health?pretty
返回的status是绿色,说明集群健康
2)安装Kibana
vim ${KIBANA_HOME}}/config/kibana.yml
添加以下配置:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://${ES_IP}:9200"
kibana.index: ".kibana"
logging.dest: ${KIBANA_HOME}}/log/kibana.log
在${KIBANA_HOME}目录启动kibana
bin/kibana
访问kibana的首页:
http://${KIBANA_IP}:5601
如果能显示正常说明搭建成功
3.2 Failed to poll for work: [cluster_block_exception] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
通过df -h
查看磁盘的剩余空间,发现Kibana所在挂载点的磁盘空间不足,
将kibana移到磁盘空间较大的目录下即能解决。
3.3 访问kibana的首页,返回Kibana server is not ready yet
1)首先排查Kibana的版本要和ES版本是否一致。博主的Kibana是6.x,而ES是7.x,需要换成相同版本。
2)再次访问http://${KIBANA_IP}:5601
,还是报错“Kibana server is not ready yet”
3)查看Kibana的日志,报错信息为“Another Kibana instance appears to be migrating the index ”
博主根据提示删除Kibana在ES中相关的索引,重启ES和Kibana,任然没解决问题。
4)尝试插入一条数据
curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}' http://${IP}:9200/testidex/test
发现居然插不进去,此时ES的集群状态为红色,说明此时主分片和从分片都不可以使用。
5)排查ES日志
发现ES报错。从这里可以说明Kibana装不上是因为ES发生故障导致的,因为Kibana安装成功后会在ES中生成索引,并写入数据。
Primary shard is not active or isn't assigned is a known node. Timeout: [1m]
联想到3.2的错误,博主发现ES所在磁盘也快满了,于是将它移动到另外一个大空间的目录下。重新安装ES和Kibana,随后一切正常。
6)查看Kibana的开发工具
再次向ES中插入数据,通过Kibana 的开发工具敲下GET testindex/test/_search
,点击运行按钮即可查看插入的数据