Zabbix Elasticsearch 的脚本及模版文件打包 Elasticsearch-zabbix-monitor-master.zip下载
解压后目录结构
│ ├── discovery_es_mon.sh
│ ├── es_mon.conf
│ └── es_mon.sh
├── README.md
└── zabbix_templates
├── es_discovery.conf
└── zbx_elasticsearch_templates.xml
zabbix_templates目录下的es_discovery.conf需要放置在/etc/zabbix/zabbix_agentd.d/目录下,如果zabbix自定义安装路径,则需要按照自己的部署路径调整
zabbix_templates目录下的zbx_elasticsearch_templates.xml需要在zabbix的WEB操作页面下创建模板进行导入 (模版导出文件注意如果希望此模版在 默认的 Temples组中 请自行更改Group)
<group>
<name>online_elasticsearch</name>
</group>
</groups>
默认安装的如 debain apt-get 安装的模板中还有一个需要更改的地方
zbx_elasticsearch_templates.xml
找到 elasticsearch_proc_status 这个模块的 KEY proc.num[,es,all,elasticsearch] (第32行)
更改为 : proc.num[java]
原因 :
elasticsearch 启动后进程大概如下:
elastic+ 24275 1 0 06:14 ? 00:00:36 /usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/share/elasticsearch -cp /usr/share/elasticsearch/lib/elasticsearch-2.4.4.jar:/usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start -Des.pidfile=/var/run/elasticsearch/elasticsearch.pid -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.conf=/etc/elasticsearch
zabbix_get -s 127.0.0.1 -k proc.num[,es,all,elasticsearch]
zabbix_get -s 127.0.0.1 -k proc.num[elasticsearch]
获取不到数据 将其更改为 zabbix_get -s 127.0.0.1 -k proc.num[java] 可获取到当前ES启动的进程 1
elasticsearch_mon目录下的文件需要放置到es_discovery.conf 文件指定的路径,如需更改,请同时更新es_discovery.conf 文件
es_discovery.conf 需要注意或者修改的地方 FILE_DIR (第30行)
declare -r FILE_DIR="./es_mon.conf" 你存放的路劲 建议更改为绝对路径: declare -r FILE_DIR="/etc/zabbix/shell/es_mon.conf"
es_mon.conf 需要注意或者修改的地方 PORT 更改为当前使用的端口
declare -r PORT=9200
仅适用于Linux及Bash2.0+环境,Elasticsearch 5.0+版本测试可用,其他版本未经测试
脚本依赖的JSON处理工具jq下载页面地址:https://stedolan.github.io/jq/,请下载jq后将其移动到系统的$PATH路径下
如果是 debain or ubuntu 系统可以apt-get 安装 apt-get install jq
我当前zabbix 的目录结构
/etc/zabbix/
│ ├── apache_status.sh
│ ├── memcache_low_discovery.sh
│ ├── memcache-tool.pl
│ └── ngx_status.sh
├── zabbix_agentd.conf
└── zabbix_agentd.d
├── apache.conf
├── memcached.conf
├── userparameter_mysql.conf.bak
└── zabbix-nginx.conf
使用方法如下:
将 elasticsearch_mon 中的文件传到 shell中;
将 zabbix_templates 中的 es_discovery.conf 传到 zabbix_agentd.d
将 zbx_elasticsearch_templates.xml 导入zabbix后台模板中;
重启 zabbix-agent 不抱错几本就是没问题了
获取数据测试
1
root@backup:# zabbix_get -s 127.0.0.1 -k discovery_es_cluster_health
{
"data":[{"{#KEY}":"es_cluster.health.","{#ARGV}":"status"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"active_primary_shards"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"shards"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"initializing_shards"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"number_of_pending_tasks"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"relocating_shards"},
{"{#KEY}":"es_cluster.health.","{#ARGV}":"unassigned_shards"}
]
}
root@backup:# zabbix_get -s 127.0.0.1 -k discovery_es_node_fs
{
"data":[{"{#KEY}":"es_node.fs.","{#ARGV}":"total_available_in_bytes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_io_op"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_io_size_in_bytes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_read_size_in_bytes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_reads"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_write_size_in_bytes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_disk_writes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_free_in_bytes"},
{"{#KEY}":"es_node.fs.","{#ARGV}":"total_total_in_bytes"}
]
}
原文 https://github.com/chaubeau/Elasticsearch-zabbix-monitor
没有评论