自定义监控项(服务监控)

命令行,手动取值

1
2
3
4
5
iostat |awk ' $1 ~/sda/'
sda 7.52 9.81 141.25 689991 9933268

iostat |awk ' $1 ~/sda/{print $2}'
7.52

修改zabbix-agent配置文件

1
2
3
4
vim /etc/zabbix/zabbix_agentd.conf 
UserParameter=sda_tps

iostat |awk '$1 ~/sda/{print $2}'

1
systemctl restart zabbix-agent.service

zabbix-server测试监控项取值

安装zabbix_get

1
yum install zabbix-get

1
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.19-1.el7.x86_64.rpm

设置超时时间(4.44版本开始不设置超时可能无法正常取值,默认为3秒)

重启zabbix-agent

1
systemctl restart zabbix-agent

测试取值

1
2
[root@node10 src]# zabbix_get -s 127.0.0.1 -k sda_tps
7.52

在web界面添加自定义监控项

image-20200715100745254

image-20200715100422240

在web界面查询监控

名称:支持模糊查询

权限分离

因为权限问题,部分脚本会无法正常取值

如:

处理方案:

  1. 加sudo启动

  2. 给路径命令授权(更改属主)

    (1)寻找命令执行目录

    `which netstat(命令)`

    (2)给命令执行目录授权

    `chmod u+s /usr/bin/netstat`

    (3)查看目录权限

    `ll /usr/bin/netstat`

    (4)查看命令效果

    `netstat -antp|head -5`

将自定义监控项添加到其他主机

  1. 手动CP添加

    (1)通过过滤我们可以看到,zabbix的配置文件有扩展项目

    grep -Ev '^$|#' /etc/zabbix/zabbix_agentd.conf

​ (2)将原自定义项写入扩展路径

vim /etc/zabbix/zabbix_agentd.d/user.conf

​ 写入自定义文件

​ (3)重启zabbix-agent生效

systemctl restart zabbix-agent.service

  1. 手动web添加(要先给agent端准备好命令,我就觉得很脑残)

    (1)在监控项中将需要添加的监控项目选中,点击复制

image-20200807083116072

​ (2)选择主机/群组进行复制

​ (3)在主机中查看监控项

​ (4)在最新数据中查看状态

名称:不选即可查看所有

原因:因为缺少授权/命令包

解决:1. 授权相关命令路径

which netstat(命令)

chmod u+s 路径

​ 2.安装命令包
​ 先搜索命令包,看是否存在
yum provides iostat(命令包名)

​ 3.安装命令包

yum install iostat

重启agent端(批量监控不能进行server端重启)

自定义触发器(阈值)

添加自定义监控项

image-20200715101731549

{Zabbix server:system.users.num.last()}>4

  • Zabbix server:主机名
  • system.users.num:监控项key值
  • last():函数方法

严重性:

  • 灾难:机房连接不上,还能用的就不叫灾难,灾难级别报告给老板,剩下自己处理
  • 严重:
  • 一般严重:
  • 警告:

开启动作和报警媒介

邮件报警和微信报警(无人值守)

邮件报警

发件人

收件人

需要建立zabbix账号,一个账号对应一个邮箱地址

启用动作

定制消息格式

定制报警的内容
https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location

微信报警

放入脚本

将weixin.py放在zabbix特定目录/usr/lib/zabbix/alertscripts(可查:grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf)

查找企业ID、查找应用密码、应用ID

image-20200807083746042

CORPID=企业id

Appsecret=应用密码

Agentid=应用id

安装python模块

  1. 配置阿里云源

    curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos7.repo

  2. 安装python环境

    1
    2
    3
    4
    yum -y install epel-release
    yum install python-pip
    pip install requests
    pip install --upgrade requests
  3. 测试命令行

    python weixin.py LiZongLi '外卖到了' '恰饭 8月12日 23:23'

  4. 查看发送日志

    cat /tmp/weixin.log

    删除日志(因为测试以root环境创建,而zabbix需要以普通用户创建)

配置发件人

{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE}

配置收件人

image-20200715102456212

接收测试