构建监控系统-2-zabbix开发

参考

自定义

环境

前端启动
cd ~/go/src/monitor/zabbix_web
npm run start
后端启动
cd ~/go/src/monitor/zabbix_go
go run main.go

snmp指标数据快速获取、翻译

zabbix-server 安装snmp工具
 yum -y install net-snmp-utils
 snmpwalk -v 2c -c public 172.17.0.1
 
 获取具体配置信息
snmpwalk -v 2c -c public 172.17.0.1 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux bzy2c8nnb0dtlnbi 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

获取oid名称,获取oid值
snmpget -v 2c -c public -On 172.17.0.1  SNMPv2-MIB::sysDescr.0
.1.3.6.1.2.1.1.1.0 = STRING: Linux bzy2c8nnb0dtlnbi 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_641.3.6.1.2.1.1.1.0
 

原始信息
命令:snmpwalk -v 2c -c public 127.0.0.1
结果:SNMPv2-MIB::sysDescr.0 = STRING: Linux bzy2c8nnb0dtlnbi 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

命令:snmpget -v 2c -c public -On 127.0.0.1 SNMPv2-MIB::sysDescr.0
结果:.1.3.6.1.2.1.1.1.0 = STRING: Linux bzy2c8nnb0dtlnbi 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

监控配置的oid
1.3.6.1.2.1.1.1.0

  • 配置监控
    172.17.0.1
    system.descr
    1.3.6.1.2.1.1.1.0

Preprocessing 数据预处理

smp预处理参考
正则 ^(.*)SMP \1

官网监控项预处理

正则表达式官网参考

自动发现snmp数据

自动发现官网说明参考

  • 现获取全量 snmpwalk -v 2c -c public 172.17.0.1
  • 找到同类指标 snmpget -v 2c -c public -On 172.17.0.1 SNMPv2-MIB::sysORID
  • 获取oid之后
  • 测试同类oid snmpwalk -v 2c -c public 172.17.0.1 1.3.6.1.2.1.1.9.1.2
  • 原始数据样例
snmpwalk -v 2c -c public 172.17.0.1 1.3.6.1.2.1.1.9.1.2
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
  • 配置监控项原型oid discovery[{#IFDESCR},1.3.6.1.2.1.1.9.1.2]
  • 自动发现返回数据
[
    {
   
        "{#SNMPINDEX}":"1",
        "{#IFDESCR}":"SNMP-MPD-MIB::snmpMPDCompliance"
    },
    {
   
        "{#SNMPINDEX}":"2",
        "{#IFDESCR}":"SNMP-USER-BASED-SM-MIB::usmMIBCompliance"
    },
    {
   
        "{#SNMPINDEX}":"3",
        "{#IFDESCR}":"SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance"
    },
    {
   
        "{#SNMPINDEX}":"4",
        "{#IFDESCR}":"SNMPv2-MIB::snmpMIB"
    },
    {
   
        "{#SNMPINDEX}":"5",
        "{#IFDESCR}":"TCP-MIB::tcpMIB"
    },
    {
   
        "{#SNMPINDEX}":"6",
        "{#IFDESCR}":"IP-MIB::ip"
    },
    {
   
        "{#SNMPINDEX}":"7",
        "{#IFDESCR}":"UDP-MIB::udpMIB"
    },
    {
   
        "{#SNMPINDEX}":"8",
        "{#IFDESCR}":"SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup"
    },
    {
   
        "{#SNMPINDEX}":"9",
        "{#IFDESCR}":"SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance"
    },
    {
   
        "{#SNMPINDEX}":"10",
        "{#IFDESCR}":"NOTIFICATION-LOG-MIB::notificationLogMIB"
    }
]
  • 测试

  • 在这里插入图片描述

  • 也可写成 discovery[{#SYSORID}, sysORID]

  • 在这里插入图片描述

  • 添加监控项原型

  • snmp-自动发现-sysORID.{#SNMPINDEX}

  • snmp.sysORID.SNMPINDEX

  • 在这里插入图片描述

  • 在这里插入图片描述

监控指标快速获取

  • 快速匹配文档
  • 智能提供指标参数
  • 智能提示

进程数量
zabbix_get -s 172.17.0.1 -k proc.num[python3,]
全部进程数
zabbix_get -s 172.17.0.1 -k proc.num[,]
zabbix进程数
zabbix_get -s 172.17.0.1 -k proc.num[,zabbix]
cpu负载
zabbix_get -s 172.17.0.1 -k system.cpu.load
cpu数量
zabbix_get -s 172.17.0.1 -k system.cpu.num
cpu利用率百分比
zabbix_get -s 172.17.0.1 -k system.cpu.util
登录用户数
zabbix_get -s 172.17.0.1 -k system.users.num
目录大小
zabbix_get -s 172.17.0.1 -k vfs.dir.size[/tmp]
比特 /1024/1024 为M
监控项 检查 文件 最近的1个值不等于最近的第二个值责报警
last(/bzy2c8nnb0dtlnbi/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/bzy2c8nnb0dtlnbi/vfs.file.cksum[/etc/passwd,sha256],#2)

文件字符查找
zabbix_get -s 172.17.0.1 -k vfs.file.regmatch[/root/src/python/dabai/django/app/static/log/token.log,error]
ZBX_NOTSUPPORTED: Cannot open file /root/src/python/dabai/django/app/static/log/token.log: open /root/src/python/dabai/django/app/static/log/token.log: permission denied
页面加载时长
zabbix_get -s 172.17.0.1 -k web.page.perf[https://www.baidu.com]

snmp陷阱主动发送

官网参考

zabbix 配置mib库

官网参考

监控网卡总流量

zabbix_get -s 172.17.0.1 -k net.if.discovery
[{
   "{#IFNAME}":"br-c93c4438e934"},{
   "{#IFNAME}":"vethb618d20"},{
   "{#IFNAME}":"veth9f6b37b"},{
   "{#IFNAME}":"vethbe2a195"},{
   "{#IFNAME}":"eth0"},{
   "{#IFNAME}":"lo"},{
   "{#IFNAME}":"veth1b239df"},{
   "{#IFNAME}":"docker0"}]

zabbix_get -s 172.17.0.1 -k net.if.total[br-c93c4438e934]
10422461
实时流量数据
iftop

查看cpu使用率排名

ps aux|head -1;ps aux|sort -rn -k3 | grep zabbix_go

lld 自动发现

监控项原型
触发器原型
图像原型

自动发现趋势图

在这里插入图片描述

正则

[[ "$test" =~ ^[0-9]+$ ]]
 echo ${test}
 man bash
 [[ "$test" =~ ^[0-9]+$ ]] && echo 1 || echo 0
 0

test=666
[[ "$test" =~ ^[0-9]+$ ]] && echo 1 || echo 0
1
test=adjfia666
[[ "$test" =~ ^[0-9]+$ ]] && echo 1 || echo 0
0

自动发现-触发器

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

在这里插入图片描述

自动发现-监控项原型

监控端口是否可访问(内置的是否可访问)
监控进程占用cpu、内存大小
监控端口的连接数量,并发数
在这里插入图片描述

在这里插入图片描述
通过过滤器匹配规则
进程在过滤监控项的时候采用,自动发现一般不用

  • 自定义变量如何查看?
  • 1、主机-》宏;主机-》对应模版名称-》宏
  • 2、管理-》一般-》宏、正则表达式

自带监控原型
zabbix_get -s 172.17.0.1 -k net.tcp.port[,8202]
1存在 0不存在
使用 “{#PORTNAME}”

新的应用集 新的应用程序原型 :定义该监控比如该端口相关都在此集合里

监控端口"{#PORTNAME}"状态是否可以访问

  • 核心点 awk 变量传参 awk -vport=80 ‘$4~port’
  • 采用内置监控原型 键值 net.tcp.port[,“{#PORTNAME}”]
  • 查看端口 ss -lntup| awk -F ‘[ :]+’ ‘ 6   / [ 0 − 9 ] + 6~/^[0-9]+ 6 /[09]+/{print $6}’
  • 获取端口对应pid ss -lntup| grep -w *:80 | awk -F ‘pid=|,’ ‘{print $3}’
    在这里插入图片描述
    在这里插入图片描述
  • 检测端口并发数
  • ss -ant | grep -i estab | awk -vport=80 ‘$4~port’
  • 数量 ss -ant | grep -i estab | awk -vport=80 ‘$4~port’ | wc -l
  • ss -ant | grep -i estab | awk -vport=80 ‘$4~port{i++}END{print i}’ 存在问题
传参方式的监控端口连接数
tail -n 1 web.conf
UserParameter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
zatree 是来自国内58公司开发监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序。 安装方法: 1:下载文件 git clone https://github.com/spide4k/zatree.git zatree 2:复制相关文件 假如zabbix web目录位置在/var/www/zabbix,定义zabbix目录 ZABBIX_PATH=/var/www/zabbix 复制相关文件和目录 cp -rf zatree $ZABBIX_PATH/ cd $ZABBIX_PATH/zatree/addfile cp class.cchart_zabbix.php class.cgraphdraw_zabbix.php class.cimagetexttable_zabbix.php $ZABBIX_PATH/include/classes/ cp zabbix.php zabbix_chart.php $ZABBIX_PATH/ cp CItemValue.php $ZABBIX_PATH/api/classes/ 3:支持web interface,修改配置文件 vi $ZABBIX_PATH/zatree/zabbix_config.php 'user'=>'xxx', //你的用户名 'passowrd'=>'xxx', //你的密码 4:导航增加Zatree入口,修改menu.inc.php,main.js vi $ZABBIX_PATH/include/menu.inc.php 添加285行到294行内容 'zatree'=>array( 'label' => _('zatree'), 'user_type' => USER_TYPE_ZABBIX_USER, 'default_page_id' => 0, 'force_disable_all_nodes' => true, 'pages' =>array( array('url' => 'zabbix.php','label' => _('Zatree'),) ) ), 'login' => array( 'label' => _('Login'), 'user_type' => 0, 'default_page_id' => 0, vi $ZABBIX_PATH/js/main.js 替换106行 menus: {'empty': 0, 'view': 0, 'cm': 0, 'reports': 0, 'config': 0, 'admin': 0, 'zatree':0}, 6:增加封装的api类 vi $ZABBIX_PATH/include/classes/api/API.php 在74行下添加75行'itemvalue'=>'CItemValue', 'usermedia' => 'CUserMedia', 'itemvalue'=>'CItemValue', 'webcheck' => 'CWebCheck' ); 7:登陆zabbix,在导航里可以看到一个Zatree的菜单,使用方法是傻瓜的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值