视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Zabbix服务器监控系统部署之自定义监控项的添加及配置(二)
2020-11-09 13:12:17 责编:小采
文档


上一篇文章(Zabbix分布式服务器监控系统安装及部署(一))记录了Zabbix整套系统的安装及部署,其中包含Server端和client段,主要是说安装及配置的事儿了,本文章主要记录Zabbix的自定义监控项配置。 因为我用到只是监控mysql的一些数据等信息,所以也只记

上一篇文章(Zabbix分布式服务器监控系统安装及部署(一))记录了Zabbix整套系统的安装及部署,其中包含Server端和client段,主要是说安装及配置的事儿了,本文章主要记录Zabbix的自定义监控项配置。

因为我用到只是监控mysql的一些数据等信息,所以也只记录这一块儿的,按照官方帮助文档中的说法,Zabbix提供了mysql的监控的模板,需要用户自己下载导入,官方下载地址,或者下载我提供的备用的:template_MySql。

下载后在Zabbixweb管理页面中导入,Configuration— Templates — Import Templates.选择相应xml模板导入即可。

编辑 etc/zabbix 下的配置文件,zabbix_agentd.conf 最下方,将以下内容前面的#去掉,记得将mysql的账号跟密码换掉:

UserParameter=mysql.ping,mysqladmin -uroot -ppasswd ping|grep alive|wc -l
UserParameter=mysql.uptime,mysqladmin -uroot -ppasswd status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads,mysqladmin -uroot -ppasswd status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions,mysqladmin -uroot -ppasswd status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries,mysqladmin -uroot -ppasswd status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps,mysqladmin -uroot -ppasswd status|cut -f9 -d":"
UserParameter=mysql.version,mysql -V

以上自带的监控参数比较简单。
若不够的话,可以将在上述目录下执行以下命令:

vi mysql_status.py

创建这样一个新的文件,在里面输入以下内容:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
#File:mysql_status.py 
import MySQLdb,sys 
user = 'root'
passwd = 'passwd'
a = sys.argv[1] 
try: 
 conn = MySQLdb.connect(host = '127.0.0.1',user = user,passwd = passwd,connect_timeout = 2) 
 cursor = conn.cursor() 
 sql = "SHOW STATUS"
 cursor.execute(sql) 
 alldata = cursor.fetchall() 
 for data in alldata: 
 if data[0] == a : 
 #print data[0],data[1] 
 print data[1] 
 break
 cursor.close() 
 conn.close() 
except Exception, e: 
 print e 
 sys.exit() 
'''''Open_tables 
Opened_tables 
Max_used_connections 
Threads_connected 
Qcache_free_blocks 
Qcache_total_blocks 
Handler_read_first 
Handler_read_key 
Handler_read_rnd_next 
Slow_queries'''

保存。然后在zabbix_agentd.conf下方加入以下内容:

UnsafeUserParameters=1
UserParameter=mysql.Open_tables,/etc/zabbix/mysql_status.py Open_tables 
UserParameter=mysql.Opened_tables,/etc/zabbix/mysql_status.py Opened_tables 
UserParameter=mysql.Max_used_connections,/etc/zabbix/mysql_status.py Max_used_connections 
UserParameter=mysql.Threads_connected,/etc/zabbix/mysql_status.py Threads_connected 
UserParameter=mysql.Qcache_free_blocks,/etc/zabbix/mysql_status.py Qcache_free_blocks 
UserParameter=mysql.Qcache_total_blocks,/etc/zabbix/mysql_status.py Qcache_total_blocks 
UserParameter=mysql.Handler_read_first,/etc/zabbix/mysql_status.py Handler_read_first 
UserParameter=mysql.Handler_read_key,/etc/zabbix/mysql_status.py Handler_read_key 
UserParameter=mysql.Handler_read_rnd_next,/etc/zabbix/mysql_status.py Handler_read_rnd_next 
UserParameter=mysql.Slow_queries,/etc/zabbix/mysql_status.py Slow_queries

接着便可以在web中添加图形之类的直观数据了。。

下面记录添加自定义的监控,如:监控用户数的增长,或者某个端口的情况等…
在zabbix_agentd.conf中,加入以下内容:

UserParameter=myhost.user,mysql -u root -ppasswd -e "use you_dbname;select count(*) from user" |tail -1

解释:
myhost.user 为Key,回头web设置中需要用到;
-u root -ppasswd 为mysql的用户名密码;
you_dbname 你要操作的数据库;
select count(*) from user sql语句;

UserParameter=myhost.port1005,netstat -ant | sed -n '1,2!p'|awk '{ if($6!="LISTEN") {if(match($4,"'1005'")) c=c+1}} END{print c}'

以上一句为端口监听。将1005换成你需要监听的端口号就可以。

重启Zabbix-agentd服务。

sudo service zabbix-agent restart

然后可以在Zabbix Server服务器上测试下是否监听成功,命令:

zabbix_get -s 192.168.1.106 -k myhost.user

若成功的话,便会显示出查得的数据了。
接着在 web中添加items,操作步骤,找到:Configuration —— Hosts —— 点击相应host的itmes,进入后会列出当前该主机的itmes列表,点击右上角Create item。

完成后,在创建图表的时候,便可以选择这个监控项了。

相关阅读:
[备忘]Zabbix分布式服务器监控系统安装及部署(一)

下载本文
显示全文
专题