当前位置:编程学堂 > 分布式监控系统Zabbix

分布式监控系统Zabbix

  • 发布:2023-09-29 07:35

Zabbix3.0 Server会自带MySQL插件来监控mysql数据库的模板。您只需配置Agent客户端,然后在Web端向主机添加模板即可。
以下是公司线上zabbix3.0环境下添加mysql监控的操作记录:

Zabbix_agent客户端操作
1)首先在客户端的mysql中添加权限,即本机使用zabbix账号连接本地mysql
mysql> grant all on *.* to zabbix@'localhost 'identified by "123456";
mysql>flush权限;
2)在zabbix_agent服务目录下创建.my.cnf连接文件
zabbix在线安装目录为/usr/local/zabbix
[root @ff_db_master1 ~]# cd /usr/local/zabbix/etc/
[root@ff_db_master1 etc]# cat .my.cnf
[客户端]
user=zabbix
密码= 123456

------------------------------------------------------------ --- ---------------------------------------------------------- --- -------------
注:
如果数据库授予授权是针对localhost,则无需在.my.cnf中添加host参数【配置为上面]
但是如果授权授权是针对本地IP(如192.168.1.25),那么就必须在.my.cnf文件中添加host参数来指定
即.my.conf文件。 cnf 文件必须加上:

[client]
host=192.168.1.25
socket=/Data/app/mysql5.6.25/var/mysql.sock 【这一行不用加,默认会找到的]
用户=zabbix
密码=123456
------------------------------------------------ ---- ---------------------------------------------------------- ---- --------------------------

3)配置MySQL密钥文件
这个可以在zabbix3.0安装时从解压包中复制
(网上是zabbix_server服务器安装解压后的目录/usr/local/src/zabbix3.0.3/conf/zabbix_agentd/userparameter_mysql.conf复制到zabbix_agent客户端上的/usr/local/zabbix /etc/ zabbix_agentd.conf.d/目录)
[root@ff_db_master1 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
[root@ff_db_master1 zabbix_agentd.conf.d]# ls userparameter_mysql.conf
userparameter_mysql.conf
然后检查userparameter_mysql.conf文件,看到类似HOME=/var/lib/zabbix的路径设置。将所有路径替换为/usr/local/zabbix/etc/,即上面的.my.cnf文件所在的目录路径。 。
另外,注意userparameter_mysql.conf文件中的mysql命令路径(提前做好mysql系统环境变量,防止mysql命令被系统识别)

如下:

[root@ff_db_master1 zabbix_agentd.conf.d]# cat userparameter_mysql.conf
# 对于以下所有命令,HOME 应设置为包含密码信息的 .my.cnf 文件的目录。

#灵活的参数来获取全局变量。在前端,使用 mysql.status[Com_insert] 等键。
# 键语法为 mysql.status[variable]。
UserParameter=mysql.status[*],echo "show global status where Variable_name=' 1 ';" | HOME=/usr/local/zabbix/etc/mysql -N | awk '{print $$2}'

# 灵活的参数来确定数据库或表的大小。在前端,使用 mysql.size[zabbix,history,data] 等键。
# 键语法为 mysql.size[,

,]。
# 数据库可能是数据库名称或“全部”。默认为“all”。
#Table 可以是表名或“all”。默认为“all”。
# 类型可以是“data”、“index”、“free”或“both”。两者都是数据和索引的总和。默认为“both”。
#如果指定了表,则数据库是必需的。类型可以始终指定。
# 返回以字节为单位的值。
# 当我们获取整个数据库而不是单个表的信息时,需要对 data_length 或 index_length 进行“求和”
UserParameter=mysql.size [*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free" ;; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = “全部” || !“$2”]]|| echo "and table_name=\"$2\"");" | HOME=/usr/local/zabbix/etc/ mysql -N'

UserParameter=www.sychzs.cn, HOME= /usr/local/zabbix/etc/ mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

4)如上修改后检查,然后重启zabbix_agent
[root@ff_db_master1 ~]# pkill -9 zabbix_agent
[root@ff_db_master1 ~]# /usr/local/zabbix/sbin/zabbix_agentd

然后在zabbix_server服务器上进行命令行测试【下面的192.168.1.25是客户端的IP】

[root@Zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.25 -p 10050 -k "mysql.status[Uptime]"
12085434
[root@Zabbix-server ~ ]#

如果出现一串类似这个键的数字,说明配置没问题,服务器可以监控客户端的mysql数据了!
成功后在监控界面添加主机对应的MySQL模板就可以了。 (上面命令中-k后面添加了key值,可以在zabbix界面中对应的模块中找到,例如在某台主机的“主动发现”规则中可以看到该key值)

5)登录zabbix监控界面,在“配置”-“模板”中可以看到内置的mysql监控模板

0 {IMG_0: Ahr0CHM6LY9PBWFNZXMYMYMDE1LMNUYMXVZ3MUY2JSB2CVOTK2LZIWMTYWOS85MDC1OTMJA5MDEXMDEYNJG3NJG3NJUZMTE3L nbuzw ==/}

只需在相应主机监控配置中添加mysql监控模板(zabbix自带)即可。


以下为mysql监控项效果图:

【1】监控mysql的带宽:可以在zabbix前端实时查看mysql发送和接收的字节数。其中,bytesreceived表示从所有客户端接收的字节数,bytessent表示发送给所有客户端的字节数。


【2】监控mysql的运行状态:可以在zabbix前端实时查看各种SQL语句每秒的操作次数。

相关文章