七、ES故障排查

摘要:
es配置文件的原始权限。注意,我用rpm软件包安装了它。所有者是root用户。严格来说,es配置文件的所有者和组都应该是弹性搜索;安装rpm包后,将自动创建弹性搜索用户。我们只需要改变所有权组。许多其他文章都说必须使用es用户启动es。如果它在工作环境中不标准,我们需要注意。

在这里记录一下排查es服务故障的思路

1、查看端口

es服务会开启9200跟9300端口
kibana会开启5601端口
es-head会开启9100端口

ss -lntup | grep 9200
ss -lntup | grep 9300
ss -lntup | grep 5601
ss -lntup | grep 9100

2、curl查看

在服务器上使用curl查看是否有数据显示
七、ES故障排查第1张

在浏览器上查看是否有数据显示
七、ES故障排查第2张

这两步可以排除es是否在服务器上是否运行,以及是否是因为防火墙等原因,浏览器访问不到

3、检查配置文件

常用的配置如下所示

$ grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml 
cluster.name: tz_linux_es #集群名
node.name: es01.tzlinux.com #节点名
path.data: /var/lib/elasticsearch #数据存放路径
path.logs: /var/log/elasticsearch #日志存放路径
bootstrap.memory_lock: true #锁定内存
network.host: 10.154.0.110,127.0.0.1 #本机IP地址
http.port: 9200 #端口
discovery.seed_hosts: ["es01.tzlinux.com","es02"] #允许发现主机域名或IP
cluster.initial_master_nodes: ["es01.tzlinux.com"] #master主机域名或IP
http.cors.enabled: true #跨域配置
http.cors.allow-origin: "*" #跨域配置

如果在配置文件中使用的是域名,则需要检查解析是否正确

ping es01.tzlinux.com

4、查看日志

日志分为系统日志、es服务日志、es集群日志三种

#实时查看系统日志
tail -f /var/log/messages

#实时查看es服务日志
tail -f /var/log/elasticsearch/elasticsearch.log

#实时查看es集群日志
tail -f /var/log/elasticsearch/tz_linux_es.log

注意,es集群日志是使用配置文件里设置的集群名命名的,我的集群名是tz_linux_es

也可使用less命令查看

less /var/log/elasticsearch/elasticsearch.log

5、es-head插件问题

我是用es-head插件连接es数据库,发现有时候连接不上,这里总结一下原因。

1、集群存活主机少于预定个数
假设配置了两台es服务器,一台主一台从,主或从其中一台宕机了,即使主未宕机,使用es-head也是连接不上。

2、未设置跨域
这里看第3步,加入倒数两行配置即可。

注意,设置完跨域后,需要耐心等待几分钟才能连接上,不要一直重启服务

3、集群主机宕机后恢复正常
例如我有两台es服务器,10.154.0.110跟10.154.0.111,110是主,111是从
111宕机再恢复后,这时es-head插件时连接不上110的,但是可以连接111
我看了下110的服务状态都是正常的,就是当时死活连不上,需要过一段时间才行(这段时间得好几分钟),这时连接111即可

6、排错案例

这里的环境是

es01 10.0.0.80
es02 10.0.0.81
es03 10.0.0.82

1)第一个问题案例
遇到问题不要慌,先查看系统日志,系统日志叫你查看集群日志
七、ES故障排查第3张

查看集群日志,这里主要查看ERROR的内容,集群日志叫你检查配置文件IP
七、ES故障排查第4张

发现10.0.0.81机器的配置文件中写的是80的地址,改为81的地址即可
七、ES故障排查第5张

2)第二个问题案例
查看es服务日志,发现配置文件被拒绝访问
七、ES故障排查第6张

问题起因,scp复制配置文件到其他机器,文件的权限会被改为root属主跟root属组,这样es就不能访问配置文件了。
七、ES故障排查第7张

es配置文件原来权限,注意我是用rpm包安装的,属主是root,严格来说es配置文件属主跟属组都应该是elasticsearch;
rpm包安装完成后会自动创建elasticsearch用户,我们只要改改属主跟属组即可,另外很多文章说es必须使用es用户来启动,我这里如果是在工作环境中是不规范的,需要注意。
七、ES故障排查第8张

问题解决方式一

#使用scp -p复制配置文件可保留原来文件的权限
scp -p /etc/elasticsearch/elasticsearch.yml 10.154.0.111:/etc/elasticsearch/elasticsearch.yml

问题解决方式二

#修改文件权限
chown root.elasticsearch /etc/elasticsearch/*
chmod 660 /etc/elasticsearch/elasticsearch.yml

参考资料
老男孩教育_day105_视频

免责声明:文章转载自《七、ES故障排查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇zookeeper安装及环境变量设置JAVA 几款Json library的比较下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Weblogic 12c 集群环境搭建

注:本文来源为:《Weblogic 12c 集群环境搭建》 一:环境说明 本文是在windows7操作系统下配置的,jdk版本1.8 ,weblogic版本12.1.3.0.0. 二:搭建集群前的规划 其中AdminServer是总控制端,server1、server2、server3是集群中的三个服务节点. 其中Adminserver也叫做管理服...

Net分布式系统之五:C#使用Redis集群缓存

本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层。 一、背景 系统考虑到高并发的使用场景。对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决。对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能。业界缓存组件有Redis、Memcached...

elasticsearch 高级搜索示例 es7.0

1 基础数据 1.1 创建索引 PUT mytest { "mappings": { "properties": { "title": { "type": "text", "fields": { "keyword": { "type": "text",...

rabbitmq+haproxy+keepalived实现高可用集群搭建

  项目需要搭建rabbitmq的高可用集群,最近在学习搭建过程,在这里记录下可以跟大家一起互相交流(这里只是记录了学习之后自己的搭建过程,许多原理的东西没有细说)。 搭建环境   CentOS7 64位   RabbitMQ 3.6.2   Keepalived 1.2.21   主机:192.168.0.1   192.168.0.2   192.16...

zookeeper 介绍与集群安装

zookeeper 介绍 ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooK...

Redis系列九 Redis集群

1、 redis-cluster架构图      redis-cluster投票:容错      架构细节   ①所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.   ②节点的fail是通过集群中超过半数的节点检测失效时才生效.   ③客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有...