zabbix通过简单shell命令监控elasticsearch集群状态
简单命令监控elasticsearch集群状态
原理:
使用curl命令模拟访问任意一个es节点可以反馈的集群状态,集群的状态需要为green
curl -sXGET http://serverip:9200/_cluster/health/?pretty
{
"cluster_name" : "yunva-es",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 7,
"number_of_data_nodes" : 6,
"active_primary_shards" : 66,
"active_shards" : 132,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
前端使用了nginx验证,需要模拟登陆
curl模拟用户登录命令格式:
curl -u username:password -sXGET http://serverip:9200/_cluster/health/?pretty | grep "status"|awk -F '[ "]+' '{print $4}'
1.修改客户端zabbix配置:
vim /etc/zabbix/zabbix_agentd.conf
UserParameter=es_status,curl -u elkadmin:elkpass -sXGET http://serverip/_cluster/health/?pretty | grep "status"|awk -F '[ "]+' '{print $4}'|grep -c 'green'
重启zabbix-agent使配置生效
service zabbix-agent restart
在zabbix-server端测试
zabbix_get -s ip -p 10050 -k es_status
2.在zabbix的web页面添加对应的监控:
添加监控项item
Confuguration --> Hosts --> 找到对应的主机,点开 Items --> Create item
创建触发器:
Name
es_status_check
es_cluster_status is not green
3.针对es集群中的每个节点做进程监控,如果进程挂了自动重启
配置监控进程item
配置触发器
配置action,看参考
zabbix系列(九)zabbix3.0实现自动触发zabbix-agent端shell脚本任务
http://blog.csdn.net/reblue520/article/details/52315154
触发脚本:
/usr/local/zabbix-agent/scripts/start_es.sh #!/bin/bash
# if elasticsearch exists kill it
source /etc/profile
count_es=`ps -ef|grep elasticsearch|grep -v grep|wc -l`
if [ $count_es -gt 1 ];then
ps -ef|grep elasticsearch|grep -v grep|/bin/kill `awk '{print $2}'`
fi
# start it su yunva -c "cd /data/elasticsearch-5.0.1/bin && /bin/bash elasticsearch &"
执行:
sudo /bin/bash /usr/local/zabbix-agent/scripts/start_es.sh
报错:
which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)
Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME
解决办法:
在脚本中添加
source /etc/profile
以root用户运行elasticsearch
报错:
can not run elasticsearch as root
网上的方法,针对elasticsearch5.1不起作用
解决方法1:
在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
./elasticsearch -Des.insecure.allow.root=true
解决办法2:
用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
解决办法:
su yunva -c "cd /data/elasticsearch-5.0.1/bin && /bin/bash elasticsearch &"
自动拉起kibana服务的脚本:
cat /usr/local/zabbix/scripts/restart_kibana.sh
#!/bin/bash
# if kibana exists kill it
count_kibana=`ps -ef|grep kibana|grep -v grep|wc -l`
if [ $count_kibana -eq 1 ];then
ps -ef|grep kibana|grep -v grep|/bin/kill `awk '{print $2}'`
fi
# start it
排错思路:
针对每台es的节点进行检查,发现有无法访问的,问题就出在这里了
# curl http://10.27.1.10:9200/
curl: (56) Recv failure: Connection reset by peer
zabbix通过简单shell命令监控elasticsearch集群状态的更多相关文章
- zabbix通过简单命令监控elasticsearch集群状态
简单命令监控elasticsearch集群状态 原理: 使用curl命令模拟访问任意一个es节点可以反馈的集群状态,集群的状态需要为green curl -sXGET http://serverip: ...
- 如何监控 Elasticsearch 集群状态?
Marvel 让你可以很简单的通过 Kibana 监控 Elasticsearch.你可以实时查看你 的集群健康状态和性能,也可以分析过去的集群.索引和节点指标.
- Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间
Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...
- zabbix监控Elasticsearch集群
本节以 zabbix 为例,介绍如何使用监控系统完成 Elasticsearch 的监控报警. github 上有好几个版本的 ESZabbix 仓库,都源自 Elastic 公司员工 unterge ...
- Prometheus监控elasticsearch集群(以elasticsearch-6.4.2版本为例)
部署elasticsearch集群,配置文件可"浓缩"为以下: cluster.name: es_cluster node.name: node1 path.data: /app/ ...
- 6.监控elasticsearch集群---放弃采用(获取不到数据),建议看另一篇文章:监控elasticsearch
prometheus监控es,同样采用exporter的方案. 项目地址: elasticsearch_exporter:https://github.com/justwatchcom/elastic ...
- zabbix的简单操作(监控客户端MySQL数据包库)
环境准备: 192.168.175.102 zabbix服务端 192.168.175.106 zabbix客户端(监控MySQL) 命令:iptables -F #清空防火 ...
- ElasticSearch集群状态查看命令大全
Elasticsearch中信息很多,同时ES也有很多信息查看命令,可以帮助开发者快速查询Elasticsearch的相关信息. _cat $ curl localhost:9200/_cat =^. ...
- shell脚本监控k8s集群job状态,若出现error通过触发阿里云的进程监控报警
#!/bin/bash while [ 1 ] do job_error_no=`kubectl get pod -n weifeng |grep -i "job"|grep -c ...
随机推荐
- docker的memory和cpu资源限制
这里仅针对docker本身,不涉及任何编排工具compose或者k8s等. 按照惯例,官文撸起来. 重要的部分是一些选项,用来限制资源大小. Memory Most of these options ...
- ASP.NET服务器端控件原理分析
服务器端控件触发事件分两种: 1.服务器端控件Button被渲染成客户端的 <input type="submit" name="Button1" val ...
- OI生涯回忆录 2017.9.10~2018.11.11
然而并没有退役 为了这两天,也准备了一年. 高一零基础的蒟蒻,NOIP2017仅有80pts 之后看着luogu的倒计时, 300天,200天,100天,30天, 直到10天.1天. 10号,11号的 ...
- xor定理证明
xor 证明: 0 xor 0=0 0 xor 1=1 1 xor 0=1 1 xor 1=0 0 xor 其它数,数值不会改变1 xor 其它数,数值会反转 所以x个数0和y个数1进行xor运算(0 ...
- HTML中使用<input>添加的按钮打开一个链接
在HTML中,<form>表单的<input type="button">可以添加一个按钮.如果想让该按钮实现<a> 的超链接功能,需要如下实现 ...
- mac 上传下载iterm2
1.安装Homebrew,目的是执行 brew 命令,解决 brew: command not found问题 ruby -e "$(curl -fsSL https://raw.githu ...
- 20145215《网络对抗》Exp5 MSF基础应用
20145215<网络对抗>Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit就相当于是载具,将真正要负责攻击的代码 ...
- loadrunner之Java Vuser协议脚本编写
步骤:1.根据自己使用的lr版面选择jdk 1)LR11 1.6 32位 2)LR12 1.7 32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...
- springmvc 中@Controller和@RestController的区别
@Controller和@RestController的区别? 官方文档:@RestController is a stereotype annotation that combines @Respo ...
- Hi3519v101-uboot-start.S分析
00032: #include <config.h>00033: #include <version.h> 1)#include <config.h>.config ...