|
使用elasticsearch的健康检查命令来监控其集群状态:
curl -s -XGET 192.168.1.22:9200/_cluster/health?pretty
{
"cluster_name" : "elastic",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 5,
"active_shards" : 10,
"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
}
配置键值参数
在zabbix存放自定义参数模板路径下创建如下文件:
cat /etc/zabbix/zabbix_agentd.d/userparameter_elastic.conf
UserParameter=estic.status,/bin/sh /scripts/elastic_zabbix.sh status
UserParameter=estic.timed_out,/bin/sh /scripts/elastic_zabbix.sh timed_out
UserParameter=estic.number_of_nodes,/bin/sh /scripts/elastic_zabbix.sh number_of_nodes
UserParameter=estic.number_of_data_nodes,/bin/sh /scripts/elastic_zabbix.sh number_of_data_nodes
UserParameter=estic.active_primary_shards,/bin/sh /scripts/elastic_zabbix.sh active_primary_shards
UserParameter=estic.active_shards,/bin/sh /scripts/elastic_zabbix.sh active_shards
UserParameter=estic.relocating_shards,/bin/sh /scripts/elastic_zabbix.sh relocating_shards
UserParameter=estic.initializing_shards,/bin/sh /scripts/elastic_zabbix.sh initializing_shards
UserParameter=estic.unassigned_shards,/bin/sh /scripts/elastic_zabbix.sh unassigned_shards
UserParameter=estic.delayed_unassigned_shards,/bin/sh /scripts/elastic_zabbix.sh delayed_unassigned_shards
UserParameter=estic.number_of_pending_tasks,/bin/sh /scripts/elastic_zabbix.sh number_of_pending_tasks
UserParameter=estic.number_of_in_flight_fetch,/bin/sh /scripts/elastic_zabbix.sh number_of_in_flight_fetch
UserParameter=estic.task_max_waiting_in_queue_millis,/bin/sh /scripts/elastic_zabbix.sh task_max_waiting_in_queue_millis
UserParameter=estic.active_shards_percent_as_number,/bin/sh /scripts/elastic_zabbix.sh active_shards_percent_as_number 执行脚本可以放在自定义的目录中,和上面定义的参数对应:
cat /scripts/elastic_zabbix.sh
#!/bin/bash
URL="192.168.1.22:9200/_cluster/health"
ESstatus="`curl -s -XGET $URL`"
#echo $ESstatus
status=`echo $ESstatus|awk -F '[:,}]' '{print $4}'`
timed_out=`echo $ESstatus|awk -F '[:,}]' '{print $6}'`
number_of_nodes=`echo $ESstatus|awk -F '[:,}]' '{print $8}'`
number_of_data_nodes=`echo $ESstatus|awk -F '[:,}]' '{print $10}'`
active_primary_shards=`echo $ESstatus|awk -F '[:,}]' '{print $12}'`
active_shards=`echo $ESstatus|awk -F '[:,}]' '{print $14}'`
relocating_shards=`echo $ESstatus|awk -F '[:,}]' '{print $16}'`
initializing_shards=`echo $ESstatus|awk -F '[:,}]' '{print $18}'`
unassigned_shards=`echo $ESstatus|awk -F '[:,}]' '{print $20}'`
delayed_unassigned_shards=`echo $ESstatus|awk -F '[:,}]' '{print $22}'`
number_of_pending_tasks=`echo $ESstatus|awk -F '[:,}]' '{print $24}'`
number_of_in_flight_fetch=`echo $ESstatus|awk -F '[:,}]' '{print $26}'`
task_max_waiting_in_queue_millis=`echo $ESstatus|awk -F '[:,}]' '{print $28}'`
active_shards_percent_as_number=`echo $ESstatus|awk -F '[:,}]' '{print $30}'`
get_values(){
case $1 in
status) echo $status
;;
timed_out) echo $timed_out
;;
number_of_nodes) echo $number_of_nodes
;;
number_of_data_nodes) echo $number_of_data_nodes
;;
active_primary_shards) echo $active_primary_shards
;;
active_shards) echo $active_shards
;;
relocating_shards) echo $relocating_shards
;;
initializing_shards) echo $initializing_shards
;;
unassigned_shards) echo $unassigned_shards
;;
delayed_unassigned_shards) echo $delayed_unassigned_shards
;;
number_of_pending_tasks) echo $number_of_pending_tasks
;;
number_of_in_flight_fetch) echo $number_of_in_flight_fetch
;;
task_max_waiting_in_queue_millis) echo $task_max_waiting_in_queue_millis
;;
active_shards_percent_as_number) echo $active_shards_percent_as_number
;;
*)
echo error
esac
}
main (){
get_values $1
}
main $1 这里是三个节点的Elastic组成的集群,在每个节点上配置以上的参数和脚本。
导入配置模板
附件是对应自定义的zabbix监控模板,可以根据自己的需要进行修改:
3.2
2017-05-10T07:40:20Z
Templates
Template Elastic Search
Template Elastic Search
Templates
Elasticsearch healthcheck
estic.active_primary_shards
0
1
estic.active_primary_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.active_shards
0
1
estic.active_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.active_shards_percent_as_number
0
1
estic.active_shards_percent_as_number
300
30
30
0
0
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.delayed_unassigned_shards
0
1
estic.delayed_unassigned_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.initializing_shards
0
1
estic.initializing_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.number_of_data_nodes
0
1
estic.number_of_data_nodes
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.number_of_in_flight_fetch
0
1
estic.number_of_in_flight_fetch
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.number_of_nodes
0
1
estic.number_of_nodes
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.number_of_pending_tasks
0
0
estic.number_of_pending_tasks
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.relocating_shards
0
1
estic.relocating_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.status
0
0
estic.status
300
30
0
0
1
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.task_max_waiting_in_queue_millis
0
1
estic.task_max_waiting_in_queue_millis
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.timed_out
0
0
estic.timed_out
300
30
0
0
1
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
estic.unassigned_shards
0
1
estic.unassigned_shards
300
30
30
0
3
0
0
0
0
1
0
0
0
Elasticsearch healthcheck
{Template Elastic Search:estic.status.str("\"green\"")}=0
0
elastic is down
0
0
3
0
1
estic.number_of_pending_tasks
900
200
0.0000
100.0000
1
1
0
1
0
0.0000
0.0000
0
0
0
0
0
0
1A7C11
0
2
0
Template Elastic Search
estic.active_primary_shards
1
0
F63100
0
2
0
Template Elastic Search
estic.active_shards
2
0
2774A4
0
2
0
Template Elastic Search
estic.number_of_data_nodes
3
0
A54F10
0
2
0
Template Elastic Search
estic.number_of_nodes
附件:http://down.运维网.com/data/2366648
|
|
|