zabbix监控TCP连接、监控memcache、监控redis脚本、自定义报警、nginx自治愈、SNMP介绍、SNMP 服务配置、zabbix使用SNMP v2模板

zabbix监控TCP连接

编辑监控脚本

vim /app/zabbix/sh/check_tcp.sh

#!/bin/bash
tcp_conn_status(){
        TCP_STAT=$1
        ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/tcp_conn.txt
        TCP_STAT_VALUE=$(grep "$TCP_STAT" /tmp/tcp_conn.txt | cut -d ' ' -f2)
        if [ -z $TCP_STAT_VALUE ];then
                TCP_STAT_VALUE=0
        fi
        echo $TCP_STAT_VALUE
}

main(){
	case $1 in
	    tcp_status)
		tcp_conn_status $2;	
		;;
		*)
		echo "$0 + tcp_status + STATUS"
	esac
}

main $1 $2

添加执行权限
chmod a+x /app/zabbix/sh/check_tcp.sh

测试脚本是否能在SHELL运行
bash /app/zabbix/sh/check_tcp.sh status 80 active

添加监控脚本
vim /app/zabbix/etc/zabbix_agentd.conf
UserParameter=tcp.status[*],/app/zabbix/sh/check_tcp.sh $1 $2 $3

测试脚本是否能在zabbix运行
/app/zabbix/bin/zabbix_get -s 192.168.1.10 -p 10050 -k "tcp.status[status,LISTEN]"

5.点击刚刚新建的模板,创建应用集,名称随便填

6.创建监控项,监控项需要每一个键值都创建一次,这里举例一个
名称:tcp_listen
类型:zabbix客户端(主动式)
键值:tcp.status[status,LISTEN]
信息类型:数字(无正负)
更新时间:1m
历史数据保留时长:90d
趋势储存时间:365d
应用集:tcp_status

7.在主机模板那关联自己新建的模板即可

监控memcache

1.添加脚本,步骤跟之前一样

vim memcache.sh

#!/bin/bash
memcached_status(){
 M_PORT=$1
 M_COMMAND=$2
 echo -e "stats\nquit" | nc 127.0.0.1 "$M_PORT" | grep "STAT $M_COMMAND " | awk '{print $3}'
}
main(){
 case $1 in
	  memcached_status)
	  memcached_status $2 $3
	  ;;
 esac
}
main $1 $2 $3

测试使用
bash memcache.sh memcached_status 11211 curr_connections

2.新建模板,添加监控项

名称:memcache_连接数
类型:zabbix客户端(主动式)
键值:memcached_status[memcached_status,11211,curr_connections]
间隔:5s

选择添加

3.创建触发器

名称:memcache_连接数
严重性:一般严重
条件:
  功能:last()
  监控项:memcache_连接数
  结果:大于等于1000

选择添加

监控redis脚本

vim redis.sh

#!/bin/bash
redis_status(){
    R_PORT=$1
    R_COMMAND=$2
    (echo -en "INFO \r\n";sleep 1;) | nc 127.0.0.1 "$R_PORT" >/usr/local/zabbix/redis_"$R_PORT".tmp
    REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /usr/local/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2)
    echo $REDIS_STAT_VALUE
}
help(){
    echo "${0} + redis_status+ PORT + COMMAND"
}
main(){
    case $1 in
        redis_status)
          redis_status $2 $3
            ;;
        *)
        help
          ;;
    esac
}
main $1 $2 $3

测试使用
bash redis.sh redis_status 6379 connected_clients

自定义报警

在WEB中找到管理-报警媒介类型,可自定义报警

这里使用QQ邮箱来做添加SMTP邮件:

1.添加报警媒介类型

名称:my_email
类型:电子邮件
SMTP服务器:smtp.qq.com
端口:465
SMTP HELLO:@qq.com
STMP邮件:1111111111@qq.com
安全连接:SSL/TLS
SSL验证两项先不选
认证:用户名密码
用户名称:1111111111@qq.com
密码:在QQ邮箱中开启SMTP服务时获得的口令

2.在用户那添加报警媒介
选择用户-选一个用户-报警媒介,选择添加

类型:刚刚添加的my_email
收件人:需要接受的邮箱
当前用时:1-7 00:00-24:00 #这里指周一到周日每天0点到24点启用

3.添加动作
在配置-动作中添加动作

名称:send_email
触发条件:可以分组也可以选触发器,这里先选触发器警示度等于信息

*添加多个条件时,会有计算方式选择,一般选择或

点击动作旁边的操作标签,转到 操作 页
默认步骤持续时间:60
默认标题:业务报警{TRIGGER.STATUS}
消息内容:报警服务器:{HOST.NAME},IP:{HOSTNAME1},详情:{ITEM.NAME}:{ITEM.VALUE}
操作细节:
 步骤:1-3
 步骤时间: 60
 发送到:用户群组或者用户
 仅送到:刚刚建的my_email

操作细节添加,然后转到 恢复操作 页
标题:业务恢复
消息内容:恢复服务器:{HOST.NAME},IP:{HOSTNAME1},详情:{ITEM.NAME}:{ITEM.VALUE}
操作细节:
 操作类型:发送消息
 发送到:用户群组或者用户
 仅送到:刚刚建的my_email
 
保存配置

nginx自治愈

1.在动作中新添加动作

动作页面
名称:nginx自治愈
条件:监测nginx的80端口,当80端口不通时触发

操作页面
操作细节
  步骤:1-1
  持续时间:60
  操作类型:远程命令
  目标列表:当前主机
  类型:自定义脚本
  执行在:zabbix客户端
  命令:sudo /app/nginx/nginx

2.在zabbix agent开启远程命令

vim /app/zabbix/etc/zabbix_agentd.conf

EnableRemoteCommands=1
UnsafeUserParameters=1

3.最后给zabbix用户授权

vim /etc/sudoers
找到root行在下面添加
zabbix	ALL=(ALL)	NOPASSWD:ALL

SNMP介绍

SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用于网络设备的管理。

SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。

SNMP协议是TCP/IP协议簇的一个应用层协议,在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案,由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能,SNMP的协议版本目前有SNMP v1、SNMP v2c和SNMP v3三种版本。

SNMP v1采用团体名(Community Name)认证,团体名用来定义SNMP NMS和SNMP Agent的关系,如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃,团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。

SNMP v2c也采用团体名认证,它在兼容SNMP v1的同时又扩充了SNMP v1的功能,它提供了更多的操作类型(GetBulk和InformRequest)、支持更多的数据类型(Counter64等)、提供了更丰富的错误代码且能够更细致地区分错误。

SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制,用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问,加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。

SNMP 工作机制

SNMP的工作机制SNMP网络元素分为NMS和Agent两种:

NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。

Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。

NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。

SNMP 数据交互

SNMP管理进程与代理进程之前为了交互信息,定义了5种报文:

get-request:从代理进程处提取一个或多个参数值。
get-next-request:从代理进程处提取一个或多个参数的下一个参数值。
get-response:返回的一个或多个参数值。这个操作是由代理进程发出的。
set-request:设置代理进程的一个或多个参数值。
trap:代理进程主动发出的报文,通知管理进程有某些事情发生。

注:SNMP管理进程和代理进程之间通信时使用端口不同,管理进程是UDP162,代理进程是UDP161

一套完整的SNMP系统主要包括以下几个方面:

SNMP报文协议。

管理信息结构(SMI, Structure ofManagement Information),一套公用的结构和表示符号。

管理信息库(MIB,Management Information Base),管理信息库包含所有代理进程的所有可被查询和修改的参数。

OID(Object Identifiers),一个OID是一个唯一的键值对,用于标识具体某一个设备的某个具体信息(对象标识),如端口信息、设备名称等。

所谓(MIB)管理信息库,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合。MIB是基于对象标识树的,对象标识是一个整数序列,中间以"."分割,这些整数构成一个树型结构,类似于 DNS 或 Unix 的文件系统,MIB被划分为若干个组,如system、interfaces、at(地址转换)和ip组等。iso.org.dod.internet.private.enterprises(1.3.6.1.4.1)这个标识,是给厂家自定义而预留的,比如华为的为1.3.6.1.4.1.2011,华三的为1.3.6.1.4.1.25506。

Centos 部分常用的OID:

CPU 负载:
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3

CPU 信息:
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0

系统信息:
sysDescr 1.3.6.1.2.1.1.1
sysObjectlD 1.3.6.1.2.1.1.2
sysUpTime 1.3.6.1.2.1.1.3
sysContact 1.3.6.1.2.1.1.4
sysName 1.3.6.1.2.1.1.5

内存使用:
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0

硬盘使用:
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk:.1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1

测试OID:

snmpwalk是SNMP的一个工具,它使用SNMP的GET请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。要使用snmpwalk需要先按照net-snmp软件包中。

yum -y install net-snmp-utils

使用命令snmpwalk -h

USAGE: snmpwalk [OPTIONS] AGENT [OID]
–h:显示帮助。
–v:指定snmp的版本, 1或者2c或者3。
–c:指定连接设备SNMP密码。
–V:显示当前snmpwalk命令行版本。
–r:指定重试次数,默认为0次。
–t:指定每次请求的等待超时时间,单为秒,默认为3秒。
–l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。
–a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。
–A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。
–x:加密协议:DES。只有-l指定为authPriv时才需要。
–X:加密字符串。只有-l指定为authPriv时才需要。

SNMP 服务配置

vim /etc/snmp/snmpd.conf

1.找到这里设置团体认证
com2sec notConfigUser default 123456

2.将团体名称 notConfigUser 关联至组notConfigGroup
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser

3.创建一个view,并对其授权可访问的OID范围
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1

4.将组notConfigGroup关联至systemview 从未完成组的授权
access notConfigGroup "" any noauth exact systemview none none

测试能否通过SNMOP采集数据

snmpwalk -v 2c -c 123456 192.168.1.10 .1.3.6.1.4.1.2021.10.1.3.1

snmpwalk -v 2c -c 123456 192.168.1.10 .1.3.6.1.4.1.2021.4.3.0

zabbix使用SNMP v2模板

在zabbix的管理网页中给主机关联SNMP模板之后,需要把认证修改一下否则无法获取数据。

1.在主机模板中进入SNMP模板

2.在宏页面选择继承模板的宏

3.修改 {$SNMP_COMMUNITY} 的值

查看snmpd.conf中设置的认证密码
com2sec notConfigUser default 123456

修改{$SNMP_COMMUNITY} 的值为123456
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值