相关文章推荐
打酱油的乌冬面  ·  Flutter多渠道打包问题_flutter ...·  1 年前    · 
斯文的豆浆  ·  大主宰:清衍静摧毁魔刑天元神,消灭黄龙至尊, ...·  1 年前    · 
气宇轩昂的弓箭  ·  使用post请求建立长连接实现sse_sse ...·  2 年前    · 
聪明伶俐的电影票  ·  中国好声音歌手谢丹受千万粉丝追捧,背后原因揭 ...·  2 年前    · 
卖萌的青椒  ·  《拆弹专家2》:继承传统,认真地娱乐一下_有 ...·  2 年前    · 
Code  ›  zabbix 监控 es 集群 - 云+社区 -
elk日志分析 zabbix elastic
https://cloud.tencent.com/developer/article/1654425
1043605696
5 年前
菜单 腾讯云
备案 控制台
云+社区
  • 专栏
  • 清单
  • 问答
  • 沙龙
  • 团队主页
  • 开发者手册
  • 智能钛AI
  • 腾讯云大学
  • TVP
搜索
写文章 提问
登录 注册
展开

腾讯云·社区

登录

云+社区

  • 首页
  • 专栏
  • 问答
  • 沙龙
  • 团队主页
  • 开发者手册
  • 智能钛AI
  • 腾讯云大学
  • TVP
返回腾讯云官网

Kevin song

73 篇文章

zabbix 监控 es 集群

专栏首页 运维监控日志分析 zabbix 监控 es 集群
3 0
分享
  • 分享文章到朋友圈

  • 分享文章到 QQ
  • 分享文章到微博
  • 复制文章链接到剪贴板

海报分享

zabbix 监控 es 集群

2020-07-02 2020-07-02 14:25:47 阅读 148 0

主机清单(es集群生产环境建议三节点以上)

hostname

ip

software

system os

elk-node1

192.168.99.185

elasticsearch-6.8.4zabbix-agent-4.2.7

CentOS 7.5.1804

elk-node2

192.168.99.186

elasticsearch-6.8.4zabbix-agent-4.2.7

CentOS 7.5.1804

zabbix-server

192.168.99.50

zabbix-server-4.2.7zabbix-agent-4.2.7

CentOS 7.5.1804

es _cat/health?v 详解

[root@elk-node1 elasticsearch_monitor]# curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -s http://192.168.99.185:9200/_cat/health?v
epoch      timestamp cluster     status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1578208577 07:16:17  elk-cluster green           2         2    998 499    0    0        0             0                  -                100.0%

参数含义

cluster ,集群名称
status,集群状态 green代表健康;yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;
red代表部分主分片不可用,可能已经丢失数据。
node.total,代表在线的节点总数量
node.data,代表在线的数据节点的数量
shards, active_shards 存活的分片数量
pri,active_primary_shards 存活的主分片数量 正常情况下 shards的数量是pri的两倍。
relo, relocating_shards 迁移中的分片数量,正常情况为 0
init, initializing_shards 初始化中的分片数量 正常情况为 0
unassign, unassigned_shards 未分配的分片 正常情况为 0
pending_tasks,准备中的任务,任务指迁移分片等 正常情况为 0
max_task_wait_time,任务最长等待时间
active_shards_percent,正常分片百分比 正常情况为 100%

_cat/health?h 检查集群状态

(由于es集群开启用户身份认证,user:elastic ,password:qZXo7EkxoxmKvDqQIwn5 )

[root@elk-node1 /]# curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://192.168.99.185:9200/_cat/health?h=node.total"
[root@elk-node1 /]# curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://192.168.99.185:9200/_cat/health?h=cluster"
elk-cluster
[root@elk-node1 /]# curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://192.168.99.185:9200/_cat/health?h=active_shards_percent"
100.0%

es 环境变量配置脚本(es集群主机建议三台以上,防止单一节点宕机导致数据丢失)

[root@elk-node1 elasticsearch_monitor]# cat es_env.sh
# es监控环境变量配置文件
# es节点ip和端口
ESADDR="192.168.99.185:9200, 192.168.99.186:9200"

es 集群健康检查脚本

[root@elk-node1 elasticsearch_monitor]# cat  es_cluster_health.sh 
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
#echo $0
cd $(dirname $0)
HOMEPATH=$(pwd)
source es_env.sh
[ $? -ne 0 ] && echo "ERROR: es_env.sh not not found." >&2 && exit 1
[ X$1 = X ] && echo "ERROR: type empty." >&2 && exit 1
for addr in $(echo ${ESADDR} |sed -e 's/,/ /g')
  curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://$addr/_cat/health?h=$1" 2>/dev/null
  [ $? -eq 0 ] && break
done

es node 节点自动发现脚本

[root@elk-node1 elasticsearch_monitor]# cat es_nodes_discovery.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
#echo $0
cd $(dirname $0)
HOMEPATH=$(pwd)
source es_env.sh
[ $? -ne 0 ] && echo "ERROR: es_env.sh not not found." >&2 && exit 1
# 连接es节点,获取索引,自动发现监控项
for addr in $(echo ${ESADDR} |sed -e 's/,/ /g')
  curl  -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://$addr/" &>/dev/null
  [ $? -ne 0 ] && echo "WARN: connect to $addr failed." >&2 && continue
  # 获取索引列表
  # 日索引
  list=( $(curl  -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://$addr/_cat/nodes?h=name" 2>/dev/null) )
  #echo -e "${list[*]}\n\n"
  #[ x$list = x ] && echo "ERROR: no discovery data list found." >&2 && exit 1
  # 将列表list,转换为发送给zabbx的json数据。length=${#list[@]}
  #printf "{\n"
  printf '{\"data\":[ '
  for ((i=0;i<$length;i++))
    printf "{\"{#NAME}\":\"${list[$i]}\"}"
    if [ $i -lt $[ $length-1 ] ];then
      printf ','
  #printf  "\n\t]\n"
  #printf "}\n"
  printf  " ]}"
  break
done

es node 节点监控脚本

[root@elk-node1 elasticsearch_monitor]# cat es_node_monitor.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
#echo $0
cd $(dirname $0)
HOMEPATH=$(pwd)
source es_env.sh
[ $? -ne 0 ] && echo "ERROR: es_env.sh not not found." >&2 && exit 1
[ X$1 = X ] && echo "ERROR: node name empty." >&2 && exit 1
[ X$2 = X ] && echo "ERROR: type empty." >&2 && exit 1
for addr in $(echo ${ESADDR} |sed -e 's/,/ /g')
  curl  -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://$addr/_cat/nodes?bytes=b&size=b&h=name,$2" 2>/dev/null |grep "^$1" |awk '{print $2}' 
  [ $? -eq 0 ] && break
done

document count 表示可用文档的数量,不包括未被合并进程清理的已删除文档。

[root@elk-node1 elasticsearch_monitor]# cat es_index_monitor.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
#echo $0
cd $(dirname $0)
HOMEPATH=$(pwd)
source es_env.sh
[ $? -ne 0 ] && echo "ERROR: es_env.sh not not found." >&2 && exit 1
# index count
indices_count() {
  local indexfilter=$1
  for addr in $(echo ${ESADDR} |sed -e 's/,/ /g')
    curl -u elastic:qZXo7EkxoxmKvDqQIwn5 -XGET "http://$addr/_cat/count/$indexfilter*?h=count" 2>/dev/null
    [ $? -eq 0 ] && break
# 检查类型
case $1 in
  count)
    indices_count $2
 
推荐文章
打酱油的乌冬面  ·  Flutter多渠道打包问题_flutter 多渠道打包找不到路径-CSDN博客
1 年前
斯文的豆浆  ·  大主宰:清衍静摧毁魔刑天元神,消灭黄龙至尊,重创黑龙至尊_腾讯新闻
1 年前
气宇轩昂的弓箭  ·  使用post请求建立长连接实现sse_sse连接_安陌乐轩的博客-CSDN博客
2 年前
聪明伶俐的电影票  ·  中国好声音歌手谢丹受千万粉丝追捧,背后原因揭秘!_歌曲
2 年前
卖萌的青椒  ·  《拆弹专家2》:继承传统,认真地娱乐一下_有戏_澎湃新闻-The Paper
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号