Zabbix5.0 监控mysql案列
文章目录
- Zabbix5.0 监控mysql案列
- 1.mysql监控什么?监控方式?
- 2.准备数据库
- 3.准备取值脚本
- 4.自定义模板
- 5.解决zabbix中文乱码
- 6.zabbix监控SNMP协议
- 7.部署snmp监控
1.mysql监控什么?监控方式?
#Mysql的基础监控
1.进程存活
2.检测端口
#Mysql的高级监控说明
Mysql提供show global status可以实现对Mysql的高级监控
高级监控包含监控Mysql连接数,增删改查数,流量等
#其他的监控mysql的方式
天兔
percona
2.准备数据库
#1.在zabbix-agent中安装mariadb
[root@zabbix-agent ~]# yum install mariadb-server -y
[root@zabbix-agent ~]# systemctl start mariadb
[root@zabbix-agent ~]# systemctl status mariadb
#设置mysql登录密码
[root@zabbix-agent ~]# mysqladmin password 123456
#监控命令详解mysql -uroot -p123456 -e 'show global status'
[root@zabbix-agent ~]# mysql -uroot -p123456 -e 'show global status'
Threads_connected:连接数
Com_select:查询总量
Com_insert:插入总量
Com_update:更新总量
Com_delete:删除总量
Bytes_received: 流入总流量
Bytes_sent:流出总流量
Slow_queries:慢查询总量
3.准备取值脚本
#1.准备取值脚本
[root@zabbix-agent ~]# cat /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh
#!/bin/bash
port=$1
key=$2
mysql -uroot -p123456 -P${port} -e "show global status" | grep "${key}\s" | awk '{print $2}'
#给脚本加执行权限
[root@zabbix-agent scripts]# chmod +x /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh
#2.测试一下取值是否正确
[root@zabbix-agent ~]# sh +x /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh 3306 Slow_queries
0
[root@zabbix-agent ~]# sh +x /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh 3306 Threads_connected
1
[root@zabbix-agent ~]# sh +x /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh 3306 Bytes_received
1103
#3.zabbix自定义监控项
[root@zabbix-agent ~]# cat /etc/zabbix/zabbix_agent2.d/mysql.conf
UserParameter=mysql.status[*],/bin/bash /etc/zabbix/zabbix_agent2.d/scripts/mysql_status.sh $1 $2
#4.重启zabbix-agent2
[root@zabbix-agent ~]# systemctl restart zabbix-agent2
#5.在zabbix-server中测试取值
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k mysql.status[3306,Threads_connected]
1
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k mysql.status[3306,Slow_queries]
0
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k mysql.status[3306,Bytes_received]
4954
#5.#使用Template DB MySQL模板监控Mysql 利用自带的模板改一改
mysql.status[3306,Threads_connected]
mysql.status[3306,Com_select]
mysql.status[3306,Bytes_received]
mysql.status[3306,Bytes_sent]
4.自定义模板
新建模板-----
创建应用集
创建监控项
测试一下
继续添加监控项
监控项就添加了这么多
添加触发器
查看最新数据
查看图形
5.解决zabbix中文乱码
# rpm -ql zabbix-web | grep fonts
#在我们windows中找一个字体,上传上来,然后将名字改为DejaVuSans.tt
/usr/share/zabbix/assets/fonts
# cd /usr/share/fonts/dejavu
# mv DejaVuSans.ttf DejaVuSans_bak.ttf
# mv msyh.ttf DejaVuSans.tt
6.zabbix监控SNMP协议
监控网络设备及固件
作用:snmp协议主要针对无法使用zabbix客户端监控的设备对象
#监控什么?
路由器 交换机 打印机 UPS,必须支持snmp协议,snmp服务端配置,交互zabbix服务端
#版本情况:
1.SNMPV1:最初版本,容易实现操作,成本低,海量数据的读取能力比较薄弱,没有合理安全机制
2.SNMPV2C:目前大部分网络设备厂商主要支持的协议,增加了GetBulk和inform操作
3.SNMPV3:安全性比较高,环境适应性比较好,容易扩展
MIB:被管理设备的数据通过变量构建成数据库,包含了各种对象集合
OID:对象标识符 http://oid-info.com/cgi-bin/display?tree=1.3.6.1.2.1.25.6#focus
7.部署snmp监控
#注意,在找一台机器安装snmp,不要用之前zabbix-agent那台机器
#1.客户端安装snmp服务端
#2.zabbix-server上安装snmp客户端
#安装
[root@ydds-10-69 ~]# yum install net-snmp -y
#查看包含那些文件目录
[root@ydds-10-69 ~]# rpm -ql net-snmp
#配置snmp服务端
[root@ydds-10-69 ~]# vim /etc/snmp/snmpd.conf
#修改snmp默认社区配置
com2sec notConfigUser 192.168.10.68 MrCao
#修改oid视图取值范围
view systemview included .1
#启动snmp
[root@ydds-10-69 ~]# systemctl start snmpd
[root@ydds-10-69 ~]# netstat -lntup |grep snmp
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 22864/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 22864/snmpd
#在zabbix-server服务端安装snmp客户端
[root@zabbix-server ~]# yum install net-snmp-utils -y
-s 指定取值的服务端是谁
-v 指定所用版本
-c MrCao #上面修改社区配置名
#通过snmpwalk取值测试
[root@zabbix-server ~]# snmpwalk -v 2c -c MrCao 192.168.10.69 .1
#监控最大连接数
[root@zabbix-server ~]# snmpwalk -v 2c -c MrCao 192.168.10.69 1.3.6.1.2.1.25.1.7
HOST-RESOURCES-MIB::hrSystemMaxProcesses.0 = INTEGER: 0
#监控系统运行时间
[root@zabbix-server ~]# snmpwalk -v 2c -c MrCao 192.168.10.69 1.3.6.1.2.1.25.1.1
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (16622625) 1 day, 22:10:26.25
在zabbix-web添加主机
创建主机
添加模板
主机snmp已经显示绿色
创建监控项
[root@zabbix-server ~]# snmpwalk -v 2c -c MrCao 192.168.10.69 1.3.6.1.4.1.2021.4.6
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 1815712 kB
#注意,在做监控项时不能写oid,识别不了,需要写用oid查出来的前面部分,如:UCD-SNMP-MIB::memAvailReal.0
测试一下