zabbix监控jvm、mysql、redis、es的配置方法

952 阅读2分钟

java 版本:1.8
zabbix 版本:4.4
redis 版本:3.2.12
mysql 版本:5.6.43-84.3
python 版本:2.7.5

监控 jvm

Java 服务:

启动脚本增加如下参数:

-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(服务所在 IP 地址。测试过用域名或者 127.0.0.1,zabbix 都无法监测到) \
-Dcom.sun.management.jmxremote.authenticate=false(关闭安全监测) \
-Dcom.sun.management.jmxremote.ssl=false(关闭 ssl 加密) \
-Dcom.sun.management.jmxremote.port=10052(监听端口) \

zabbix 页面:

1、点击配置-主机-选择一个主机-选择模板-添加 Template App Generic Java JMX 模板。

image.png

2、添加 JMX 接口,地址填写主机的地址,端口填写服务对外开放的 jmx 监控端口。

image.png

zabbix 服务器:

1、引入 zabbix-java-gateway 的数据源:

rpm -ivh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

2、安装 zabbix-java-gateway:

yum install zabbix-java-gateway

3、启动 zabbix-java-gateway:

service zabbix-java-gateway start

4、可以根据需求修改 zabbix-java-gateway 的配置文件,配置文件地址在:/etc/zabbix/zabbix_java_gateway.conf。

START_POLLERS=5     #采集数据的进程数,默认为 5

监控 redis

zabbix 页面:

1、导入模板redis-template.xml

redis-template.xml

2、去主机上添加模板——RedisMontior

image.png

redis 服务器:

1、添加文件/etc/zabbix/zabbix_agentd.d/userparameter_redis.conf 内容如下:

#redis
UserParameter=Redis.Status,status=`redis-cli -h 127.0.0.1 -a password -p 6379 ping 2>/dev/null |grep -c PONG` &&echo $status
UserParameter=Redis.Info[*],/etc/zabbix/zabbix_agentd.d/redisStatus.sh $1 $2

2、在相同路径下添加 redisStatus.sh

redisStatus.sh

3、重启 zabbix-agent 服务:

service zabbix-agent restart

监控 mysql

zabbix 页面:

1、去主机上添加模板——Template DB MySQL

image.png

mysql 服务器:

1、可以使用 zabbix 安装目录下的 conf/zabbix_agentd/userparameter_mysql.conf 给的官方模板。或者使用如下文件:

#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*], HOME=/etc mysqladmin ping
UserParameter=mysql.get_status_variables[*], mysql -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s version
UserParameter=mysql.db.discovery[*], mysql -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -sNX -e "show slave status"

(HOME 的值为 my.cnf 文件的位置)

2、修改 my.cnf,添加用户名(user)和密码(password)

[client]
user="xxxx"
password="xxxx"

3、可以检测下模板是否有效:

zabbix_agentd -t mysql.ping -c /etc/zabbix/zabbix_agentd.conf.d/userparameter_mysql.conf

4、重启 zabbix-agent 服务:

service zabbix-agent restart

监控 elasticsearch

方法以及文件来源: https://github.com/Wasim37/zabbix-es

zabbix 页面:

1、创建数值映射,管理-一般-右侧下拉列表选择值映射-创建值映射:

image.png

image.png

2、导入模板 ESzabbix_templates.xml

https://github.com/Wasim37/zabbix-es/blob/master/ESzabbix_templates.xml

3、在绑定模板的主机上新建一个宏{$NODENAME} ,值为 elasticsearch.yml 中的 node.name 的值

4、添加模板

image.png

elasticsearch 服务器:

1、下载ESzabbix.py

https://github.com/Wasim37/zabbix-es/blob/master/ESzabbix.py

2、在/etc/zabbix/zabbix_agentd.d下添加文件userparameter_es.conf,内容如下:

UserParameter=ESzabbix[*],/etc/zabbix/externalscripts/ESzabbix.py $1 $2

3、安装 pip,安装用到的 python 库——elasticsearch

如果没法直接 yum install python-pip,可以使用如下方法:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
yum install python-pip
pip install elasticsearch
(这时会提示更新 pip,我更新之后 pip 就坏了。。。)

4、检测脚本是否生效:

./ESzabbix.py cluster status

具体监控项内容

zabbix监控jvm、mysql、redis、es的监控项