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 模板。
2、添加 JMX 接口,地址填写主机的地址,端口填写服务对外开放的 jmx 监控端口。
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
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
mysql 服务器:
1、可以使用 zabbix 安装目录下的 conf/zabbix_agentd/userparameter_mysql.conf 给的官方模板。或者直接把如下内容写入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、创建数值映射,管理-一般-右侧下拉列表选择值映射-创建值映射:
2、导入模板 ESzabbix_templates.xml
ESzabbix_templates.xml
3、在绑定模板的主机上新建一个宏{$NODENAME}?,值为 elasticsearch.yml 中的 node.name 的值
4、添加模板
elasticsearch 服务器:
1、从git中下载ESzabbix.py和ESzabbix.userparm两个文件
ESzabbix_templates.xml
ESzabbix.py
2、安装 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 就坏了。。。)
3、检测脚本是否生效:
./ESzabbix.py cluster status