mysql 步骤 :这里用的是mysql自带的模板
1模板中选择点击添加,选择TemplateApp MySQL,点击存档
2添加mysql监控脚本:位置一般为
/usr/script/chk_mysql.sh
Ps:这个脚本要付权限赋权语句见下面
Ps:最后如果获取不到数据就把脚本中的用户名密码注释掉
然后把用户名名密码 vim /etc/my.cnf
将账号密码添加进去
[mysqladmin]
Username=用户名
Password=密码
重启mysql服务
##测试不用帐户密码就可以执行mysqladmin命令
$ mysqladmin ping | grep -c alive
1
添加脚本内容:
vi check_mysql.sh
#!/bin/bash
# 用户名
#MYSQL_USER='zabbix'
# 密码
#MYSQL_PWD='123456'
# 主机地址/IP
MYSQL_HOST='127.0.0.1'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin-h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne"1" ];then
echo"arg error!"
fi
# 获取数据
case $1 in
Uptime)
result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1-d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status |grep -w"Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1-d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status |grep -w"Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status |grep -w"Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1-d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status |grep -w"Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status |grep -w"Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status |grep -w"Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent"|cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status |grep -w"Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut-d"|" -f3`
echo $result
;;
*)
echo"Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
ps:注意脚本的权限设置 赋权语句
chmodu+x /usr/local/zabbix/chk_mysql.sh
chown -R zabbix.zabbix/usr/local/zabbix/chk_mysql.sh
3、修改zabbix代理参数前
Vim /etc/Zabbix/Zabbix_agentd.conf
将include前的注释去掉
然后vi /usr/local/zabbix/etc/zabbix_agentd.d/userparameter_mysql.conf
将里边的全部注释添加脚本
# 获取mysql版本
UserParameter=mysql.version,mysql-V
# 获取mysql性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/usr/local/zabbix-2.4.4/scripts/chk_mysql.sh$1
# 获取mysql运行状态
UserParameter=mysql.ping,mysqladmin-uzabbix -p123456 -P3306 -h127.0.0.1 ping | grep -c alive
Ps:注意脚本位置和参数中的位置是不是一样
4数据库中新建zabbix账户 Zabbix 密码 123456
授权GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.*TO zabbix@'127.0.0.1' IDENTIFIED BY 'ys_ipowerlong0418';
5ps:注意我们在脚本中配置的mysql.sock文件的位置必须和mysql中的位置是一致的
如果发现监控没有数据,请排查如下问题
1.zabbix客户端是否重启
2.脚本是否有执行权限
3.数据库是否有权限
4.环境变量是否有问题
5.请看zabbix item列,鼠标移至红色叉上,有错误提示。
6.如果数据库密码保存在脚本中,会导致监控没有数据会不断的报错为Warning: Using a password on the command line interface can beinsecure.需要将帐号密码等配置添加到my.cnf中。
最后启动的时候带上配置文件 命令:/usr/sbin/zabbix_agentd-c /etc/zabbix/zabbix_agentd.conf
tomcat :tomcat 自动支持zabbix监控 只需
tomcat开启Jmx 支持 编辑catalina.sh 添加:
CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=18090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.10.25.32"
ps:hostname为zabbix在服务端的名字必须一致
oracle :zabbix 监控oracle借助于orabbix 这个工具
1参考地址 https://www.linuxidc.com/Linux/2017-10/147224.htm