一、监控远程主机上的系统文件大小(内部情况):
需求:监控远程node1系统文件:/etc/services(其它以此类推)
步骤:先在客户端上添加相关监控项,再在web界面上添加次监控项(这里要注意的是:客户端和web界面上的键值必须保持一致)
1、在node1上的/etc/zabbix/zabbix_agentd.d/目录下添加一个monitor_file.conf文件并重启agent,内容如下:
[root@node1 ~]# cat /etc/zabbix/zabbix_agentd.d/monitor_file.conf UserParameter=monitor_file,stat -c %s /etc/services [root@node1 ~]# systemctl restart zabbix-agent.service
2、在web界面上依次点击:配置 ----> 主机 ----> node1(监控项)----> 创建监控项 ,具体情况如下:
二、监控远程主机上的80端口是否开启(对外提供的服务):
主要步骤是:先确认远程主机上确实对外提供了某端口,再在web界面上添加相关监控项
1、node1上装上http并启动该服务:
# yum install httpd -y # systemctl enable httpd.service # systemctl start httpd.service
2、web界面上添加相关监控项,具体情况如下下图(这里监控远程主机上httpd的80端口):
上述是对一台主机的内部、外部监控大概方法(也就这样了,对不对)
三、监控MySQL主从复制状态
主要步骤是:
1、在node1上的/etc/zabbix/zabbix_agentd.d/目录下添加一个replication.conf文件并重启agent,内容如下
UserParameter=mysql.replication,/etc/zabbix/zabbix_agentd.d/check_slave.py
添加监控脚本,这里提供两种:
python(推荐):
[root@node1 zabbix_agentd.d]# cat check_slave.py #!/usr/bin/env python # -*- coding: UTF-8 -*- import MySQLdb #import pymysql #''' #使用show slave status命令获取主从复制状态, #判断下面两个线程是否是 Yes # Slave_IO_Running: Yes # Slave_SQL_Running: Yes #都为Yes输出0,否则输出1 #''' hostname = "127.0.0.1" username = "root" password = "你账号的密码" port = 3306 #con = pymysql.connect(host=hostname, port=port, user=username, passwd=password) con = MySQLdb.connect(host=hostname, port=port, user=username, passwd=password) cur = con.cursor() cur.execute('show slave status;') status = cur.fetchall() #for item in status: # print(item) if status[0][10] and status[0][11] == "Yes": print(1) else: print(0) con.close() [root@node1 zabbix_agentd.d]#
shell脚本:
[root@node1 tmp]# cat mysql_slave_check.sh #/bin/bash mysql -uroot -p'你的账号密码' -e "show slave status G;" 2>/dev/null| grep -E 'Slave_IO_Running: Yes|Slave_SQL_Running: Yes' | grep -c Yes [root@node1 tmp]#
2、web界面上添加相关监控项——和上述类似,这里就不写了(请原谅)
四、解决乱码问题
1、上传windows上找的你自己喜欢的字体,上传到zabbix服务端的:/usr/share/zabbix/assets/fonts/ 目录下,并改名为:graphfont.ttf;由于我这里已经改了,就贴个图吧:
2、刷新web界面吧,应该发现已经正常了:
三个小点,先这样