编写python脚本,使用zabbix进行监控

1、编写python脚本 cpu_top.py
import os
import sys

def cpu_top():
    """cpu 使用率top10的进程"""

    a = sys.argv[1]  #获取命令行参数

    cpu =os.popen('ps aux | sort -k3rn | head -10') #获取cpu使用率的top10
    i = cpu.readlines()[int(a)]          
    total = i.split(maxsplit=10) 
    aaa = float(total[2])
    print(aaa)

if __name__ == '__main__':
    cpu_top()
$ python3 cpu_top.py 0  #0就是cpu使用率排第一的
2.5 

然后把它上传zabbix服务器


2、更改zabbix配置
 pwd
/etc/zabbix/zabbix_agentd.d
 cat cpu_top.conf
UserParameter=cpu_top1,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 0
UserParameter=cpu_top2,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 1
UserParameter=cpu_top3,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 2
UserParameter=cpu_top4,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 3
UserParameter=cpu_top5,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 4
UserParameter=cpu_top6,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 5
UserParameter=cpu_top7,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 6
UserParameter=cpu_top8,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 7
UserParameter=cpu_top9,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 8
UserParameter=cpu_top10,python3 /etc/zabbix/oto_saas_yunwei/cpu_top.py 9


重启

service zabbix-agent restart


测试

[root@i-pumjfiuu zabbix_agentd.d]# /usr/bin/zabbix_get -s 192.168.1.70 -p 10050 -k "cpu_top2"
0.3
[root@i-pumjfiuu zabbix_agentd.d]# /usr/bin/zabbix_get -s 192.168.1.70 -p 10050 -k "cpu_top1"
2.5
[root@i-pumjfiuu zabbix_agentd.d]# /usr/bin/zabbix_get -s 192.168.1.70 -p 10050 -k "cpu_top3"
0.1
[root@i-pumjfiuu zabbix_agentd.d]# /usr/bin/zabbix_get -s 192.168.1.70 -p 10050 -k "cpu_top1"
2.5

-s 指定zabbix服务器地址
-p 指定 zabbix_agentd 的端口号(默认10050)
-k 指定监控项的名字


3、配置监控项

在这里插入图片描述

在这里插入图片描述


4、图形

在这里插入图片描述
在这里插入图片描述


5、触发器

在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是将自定义监控MySQL的Python脚本配置在Zabbix的ALScripts中的步骤: 1. 在Zabbix服务器上创建一个目录,用于存储自定义脚本。例如:/usr/local/zabbix/scripts。 2. 在该目录下创建一个Python脚本,例如:mysql_monitor.py。在脚本编写监控MySQL的代码,并确保脚本能够正常运行。例如: ```python #!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb # MySQL连接信息 mysql_host = 'localhost' mysql_port = 3306 mysql_user = 'root' mysql_password = 'password' mysql_db = 'mysql' # 连接MySQL conn = MySQLdb.connect( host=mysql_host, port=mysql_port, user=mysql_user, passwd=mysql_password, db=mysql_db, charset='utf8' ) # 执行SQL查询 cursor = conn.cursor() cursor.execute('show global status like "Threads_connected"') result = cursor.fetchone() threads_connected = result[1] # 输出结果 print threads_connected ``` 3. 为脚本添加可执行权限。例如: ```bash chmod +x /usr/local/zabbix/scripts/mysql_monitor.py ``` 4. 在Zabbix服务器上创建一个新的命令,用于执行Python脚本。在Zabbix Web界面中,转到“Administration”>“General”>“Commands”,然后单击“Create command”按钮。在“Create command”页面中,输入以下信息: - Name:命令的名称,例如:MySQL Monitor。 - Type:命令的类型,选择“Custom script”。 - Command:命令的内容,例如:/usr/local/zabbix/scripts/mysql_monitor.py。 单击“Add”按钮以创建命令。 5. 在Zabbix服务器上创建一个新的自动发现规则,用于发现MySQL实例,并将其关联到刚刚创建的命令。在Zabbix Web界面中,转到“Configuration”>“Discovery”,然后单击“Create discovery rule”按钮。在“Create discovery rule”页面中,输入以下信息: - Name:规则的名称,例如:MySQL Discovery。 - Type:规则的类型,选择“Zabbix agent”。 - Key:规则的键,例如:mysql.discovery。 - Update interval:更新间隔,例如:60s。 - Command:命令的名称,例如:MySQL Monitor。 单击“Add”按钮以创建规则。 6. 在Zabbix服务器上创建一个新的模板,用于监控MySQL实例。在Zabbix Web界面中,转到“Configuration”>“Templates”,然后单击“Create template”按钮。在“Create template”页面中,输入以下信息: - Name:模板的名称,例如:MySQL Template。 单击“Add”按钮以创建模板。 7. 在新创建的模板中添加自动发现规则。在“MySQL Template”页面中,单击“Discovery”选项卡,然后单击“Add”按钮。在“Add discovery”页面中,输入以下信息: - Name:规则的名称,例如:MySQL Discovery。 - Type:规则的类型,选择“Zabbix agent”。 - Key:规则的键,例如:mysql.discovery。 - Update interval:更新间隔,例如:60s。 - Command:命令的名称,例如:MySQL Monitor。 单击“Add”按钮以将规则添加到模板中。 8. 在模板中添加新的监控项。在“MySQL Template”页面中,单击“Items”选项卡,然后单击“Create item”按钮。在“Create item”页面中,输入以下信息: - Name:监控项的名称,例如:MySQL Threads Connected。 - Type:监控项的类型,选择“Zabbix agent”。 - Key:监控项的键,例如:mysql.threads_connected。 - Type of information:信息类型,例如:Numeric (unsigned)。 - Update interval:更新间隔,例如:60s。 - Application:应用,例如:MySQL。 单击“Add”按钮以创建监控项。 9. 在模板中添加新的触发器。在“MySQL Template”页面中,单击“Triggers”选项卡,然后单击“Create trigger”按钮。在“Create trigger”页面中,输入以下信息: - Name:触发器的名称,例如:MySQL Threads Connected is too high。 - Expression:触发器的表达式,例如:{MySQL Template:mysql.threads_connected.last()}>100。 单击“Add”按钮以创建触发器。 10. 将模板关联到MySQL主机。在“MySQL Template”页面中,单击“Linked hosts”选项卡,然后单击“Link new hosts”按钮。选择要关联的MySQL主机,将其添加到“Selected hosts”列表中,然后单击“Link”按钮。 11. 等待Zabbix服务器执行自动发现操作,并监视MySQL实例的状态。 通过上述步骤,您可以将自定义监控MySQL的Python脚本配置在Zabbix的ALScripts中,并在Zabbix中监视MySQL实例的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值