zabbix===》微信报警、聚合图形、自动发现自动注册、监控NFS、MySQL、web服务、URL地址

一、企业微信号申请

https://work.weixin.qq.com/

1.注册

因为我们没有企业,所以我们选择组织。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9AKRNcz3-1615802176001)(1.png)]

下一步,

按需填好相应信息

2.配置微信企业号

设置好相应信息,后记录下企业id

ps:我的企业微信早就注册了,所以中间步骤不全,大体就是信息补充

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6mpy4Oeb-1615802176012)(2.png)]

点击通讯录,添加一个组或成员。可以扫码添加或者短信邀请

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Zyv4Pmd-1615802176016)(3.png)]

点击用户姓名,记录用户账号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkkxdNdD-1615802176020)(4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwA9ZP0l-1615802176023)(5.png)]

点击企业应用,新增应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOvJfId9-1615802176025)(6.png)]

创建完成后记录agentld和secret

在这里插入图片描述

准备事项

微信企业号:
企业号已被部门成员关注
企业号有可以发消息的应用,授权管理员,可以使用应用给成员发送消息

需要的信息:
企业号id
secret
agentld

3.测试使用命令行发送消息

1)下载weixin.py脚本文件

链接:https://pan.baidu.com/s/1CN3CISkbNJwBGq1lepoN4Q
提取码:952u

weixin脚本内容:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: zhang
#date: 2019-04-07
#comment: zabbix接入微信报警脚本

import requests
import sys
import os
import json
import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                datefmt = '%a, %d %b %Y %H:%M:%S',
                filename = os.path.join('/tmp','weixin.log'),
                filemode = 'a')

corpid = 'ww4adcac9b11fd1981'   #需要对应自己信息修改
appsecret = 'kI3rXnybHpw-BX-po6hxGQV9HfKjJuVtzxSkbuJnyjk'   #需要对应自己信息修改
agentid = 1000003    #需要对应自己信息修改

#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']

#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[3]

params={
    
    
        "touser": touser,
#       "toparty": toparty,
        "msgtype": "text",
        "agentid": agentid,
        "text": {
    
    
                "content": message
        },
        "safe":0
}

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)                                                                              

2)上传脚本文件到数据库并修改

[root@zabbix ~]# rz weixin.py
[root@zabbix ~]# vim weixin.py
corpid = 'ww50a15d892a539965'
appsecret = '_eWeLhHDjylIrQoPIE9k2C_w205cWOxL6lmjSB7FMF8'
agentid = 1000003

分别对应刚才记录的值

3)安装pip

[root@zabbix ~]# yum install python-pip -y

如果下载不了:
[root@zabbix ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4)安装requests

[root@zabbix ~]# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

5)用命令行发送微信消息

[root@zabbix ~]# python weixin.py 'WuYiShuai' 'text' 2222

需要传参
第一个参数:企业微信用户名
第二个参数:标题
第三个参数:文章内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NG4LmitQ-1615802176030)(8.png)]

4.配置zabbix微信报警

1)查看报警脚本存放的目录

[root@zabbix ~]# grep script /etc/zabbix/zabbix_server.conf|grep Alert
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2)将脚本移动到此目录并添加可执行权限

[root@zabbix ~]# mv weixin.py /usr/lib/zabbix/alertscripts/
[root@zabbix /usr/lib/zabbix/alertscripts]# chmod +x weixin.py 

3)给微信告警日志授予zabbix用户

[root@zabbix ~]# chown zabbix.zabbix /tmp/weixin.log 

5.创建报警媒介类型(发件人)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3vYoVot-1615802176031)(9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmHmZxTS-1615802176032)(10.png)]

{
    
    ALERT.SENDTO}
{
    
    ALERT.SUBJECT}
{
    
    ALERT.MESSAGE}

注:尽量不要手敲,括号两边不能有空格

6.创建报警媒介(收件人)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBSHUnhX-1615802176034)(11.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8QApVDG-1615802176035)(12.png)]

在这里插入图片描述

7.触发测试

[root@web01 ~]# swapoff -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6dDeZ9i6-1615802176036)(13.png)]

恢复

[root@web01 ~]# swapon -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ZSUbeui-1615802176037)(14.png)]

二、聚合图形、模板共享

1. 聚合图形

最新数据 >> 图形

img

自定义名称

img

点击聚合图形的名称,进行更改,添加要显示的图形即可。

img

2.幻灯片

添加幻灯片

监测中 >> 复合图形 >> 幻灯片演示

img

创建幻灯片,名称自定,选择要显示的

img

幻灯片根据设定的时间自动播放

3.模板共享

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6El7XAve-1615803038619)(.\img\模板导出.png)]

网络共享模板资源

https://github.com/zhangyao8/zabbix-community-repos

三、自动发现、自动注册

1.简介

自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上。

缺点zabbix server压力山大(网段大,客户端多),时间消耗多。

自动注册:zabbix agent主动到zabbix Server上报到,登记;

缺点agent有可能找不到Server(配置出错)

2.两种模式

  • 被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
  • 主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

注意: 两种模式都是在agent上进行配置

zabbix的使用要在hosts文件中预先做好主机名的解析

3.自动发现-被动模式

第一步:完成之前的安装

zabbix Server安装完毕

第二步:配置agent客户端

zabbix agent安装完毕,注意配置Server=192.168.100.102

第三步:在web界面上进行配置

    web界面:配置 >> 自动发现 >> Local network
        使用自带的自动发现规则(进行修改)即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TpJOmZK8-1615803038621)(.\img\自动发现1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lP5BQ50c-1615803038622)(.\img\自动发现2.png)]

第四步:创建发现动作

配置 >> 动作 >> Auto discovery. Linux servers.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jzSCQBVM-1615803038624)(.\img\自动发现3.png)]

添加一个搜索条件,主机IP地址范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MCz2LC9N-1615803038627)(.\img\自动发现4.png)]

在操作中添加两个动作: 添加主机与启用主机,注意选择后要点击下方的添加按钮。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fCXvWRVX-1615803038629)(.\img\自动发现5.png)]

在监测中自动发现栏查看自动发现后的主机列表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brtj4DJ1-1615803038630)(.\img\自动发现6.png)]

4.自动注册-主动模式

第一步:zabbix Server安装完毕 (完成)

第二步:zabbix agent安装完毕,需要额外增加的配置

vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.100.102
# Hostname=Zabbix server
HostnameItem=system.hostname
 
[root@localhost ~]# systemctl restart zabbix-agent.service
[root@localhost ~]# netstat -tunlp|grep zabbix

源文件与修改后的文件对比

源文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ooIdEG6L-1615803038631)(.\img\自动注册1.png)]修改后的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LRgOcXgS-1615803038633)(.\img\自动注册2.png)]

第三步:在web页面配置动作

配置 >> 动作 >> 事件源(自动注册) >> 创建动作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UnryCF2J-1615803038634)(.\img\自动注册3.png)]

名称填写自动注册,触发条件无需修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZRv79835-1615803038636)(.\img\自动注册4.png)]

在操作中依次选择添加主机,添加到主机群组,与模板关联

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmiJHZfX-1615803038637)(.\img\自动注册5.png)]

添加完动作后,等待就可以了。

注意:重启客户端可以加速发现。但是尽量不要在生产环境中使用。

四、简单监控全网服务

实现原理:通过检测端口存活与进程存活状态监控服务。

1.实际需求

公司架构内的100台生产环境服务器,需要使用zabbix全部监控起来。

2.方案规划

常规监控:cpu,内存,磁盘,网卡

问题:怎样快速添加100台机器?

方法1:使用克隆的方式

方法2:自动注册和自动发现

方法3:调用zabbix api接口 curl 、python

服务监控,url监控等特殊监控:自定义监控

监控服务简单通用方法:

​1). 监控端口 netstat ss lsof ==》 wc -l

2). 监控进程 ps -ef|grep 进程 |wc -l 试运行一下

3). 模拟客户端的使用方式监控服务端

web ==》 curl

​ mysql ==》 select insert

  1. 监控备份服务器,简单方法是监控rsync端口;
方法1:监控873端口net.tcp.port[,873]
方法2:模拟推送拉取文件
  1. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常;
方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
  1. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板;
方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key
  1. 监控2台web服务器,简单方法监控80端口;
方法1:端口(通过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测
  1. 监控URL地址来更精确的监控我们的网站运行正常;
使用zabbix自带的监控Web监测 进行监控
  1. 监控Nginx的7种连接状态。
自定义监控

3.具体实施

第一步:添加自动发现规则,创建发现动作。

第二步:监控各应用服务。

1)监控NFS服务

创建NFS监控模板

使用 proc.num[,,,] 键值,检测nfs进程的数量

在服务端进行测试
[root@localhost ~]# zabbix_get -s 192.168.100.105 -p 10050 -k "proc.num[,,,rpc]"
[root@localhost ~]# zabbix_get -s 192.168.100.105 -p 10050 -k "proc.num[nfsd,,,]"

创建NFS监控模板

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YU6gnmup-1615803038639)(.\img\自定义NFS模板1.png)]

可以新创建一个NFS服务器群组,用来管理NFS服务器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cNyEaOpf-1615803038640)(.\img\自定义NFS模板2.png)]

在模板中创建应用集

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-933bshWu-1615803038641)(.\img\自定义NFS模板3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJcSBat9-1615803038642)(.\img\自定义NFS模板4.png)]

在模板中添加监控项,并关联到新创建的应用集中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ibfAgui-1615803038644)(.\img\自定义NFS模板5.png)]

键值使用自带的 proc.num[,rpc]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWKjAasW-1615803038645)(.\img\自定义NFS模板6.png)]

两种检测方式使用一种,也可同时使用,键值为 proc.num[nfsd,]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3BZpOo4-1615803038646)(.\img\自定义NFS模板7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlyJcy1c-1615803038647)(.\img\自定义NFS模板8.png)]

为监控项创建触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6zV1Vdr-1615803038648)(.\img\自定义NFS模板9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYAjHD0M-1615803038649)(.\img\自定义NFS模板10.png)]

为监控项创建图形

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-POAQqEvt-1615803038650)(.\img\自定义NFS模板11.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CLjhgDpH-1615803038651)(.\img\自定义NFS模板12.png)]

为触发器设置报警动作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9I6BSK7-1615803038652)(.\img\自定义NFS模板13.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TZCrUaS-1615803038653)(.\img\自定义NFS模板14.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-110n25jc-1615803038654)(.\img\自定义NFS模板15.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-10IBmeIA-1615803038655)(.\img\自定义NFS模板16.png)]

检测配置情况。客户端关闭NFS服务,查看监控以及报警功能。

NFS服务器关闭NFS服务
[root@web01 zabbix_agentd.d]# systemctl stop nfs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YKLkm3SN-1615803038656)(.\img\自定义NFS模板测试1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHDYRbFv-1615803038657)(.\img\自定义NFS模板测试2.png)]

故障恢复测试

NFS服务器启动NFS服务。
[root@web01 zabbix_agentd.d]# systemctl start nfs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rakethL2-1615803038658)(.\img\自定义NFS模板测试3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mRABcPbL-1615803038659)(.\img\自定义NFS模板测试4.png)]

2)监控MySQL服务

方案一:使用自带的MySQL模板

将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yr3XSOU2-1615803038660)(.\img\MySQL监控模板1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a1Hzjt7H-1615803038660)(.\img\MySQL监控模板2.png)]

方案二:监控MySQL端口状态。

net.tcp.port[,port] 利用自带的监控端口键值进行监控

server端测试MySQL运行状态
[root@localhost ~]# zabbix_get -s 192.168.100.106 -p 10050 -k "net.tcp.port[,3306]"
1

#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

创建自定义MySQL模板、应用集、监控项、触发器、图表、动作。流程同自定义NFS模板相同。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHAiXh3j-1615803038661)(.\img\自定义MySQL模板1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-adm2MAkb-1615803038662)(.\img\自定义MySQL模板2.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5TzYMKzD-1615803038664)(.\img\自定义MySQL模板3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o3dQwgko-1615803038666)(.\img\自定义MySQL模板4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvlvcO1l-1615803038667)(.\img\自定义MySQL模板5.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YrS4728l-1615803038668)(.\img\自定义MySQL模板6.png)]

测试报警功能。

MySQL服务器关闭MySQL服务。
[root@web02 ~]# service  mysqld stop
Stopping mysqld (via systemctl):                           [  OK  ]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kV9wn6pU-1615803038669)(.\img\自定义MySQL模板测试1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p7ho8LIz-1615803038669)(.\img\自定义MySQL模板测试2.png)]

启动服务测试恢复报警功能。

[root@web02 ~]# service  mysqld start
Starting mysqld (via systemctl):                           [  OK  ]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eA7oXP0H-1615803038670)(.\img\自定义MySQL模板测试3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAYINPnO-1615803038671)(.\img\自定义MySQL模板测试4.png)]

3)监控web服务

创建监控模板 监控 nginx服务与 80 端口

创建监控模板 监控 nginx服务与 80 端口
proc.num[<name>,<user>,<state>,<cmdline>]   进程数。返回整数
net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

在server端测试NGINX状态
[root@localhost ~]# zabbix_get -s 192.168.100.105 -p 10050 -k "proc.num[,,,nginx]"
2
[root@localhost ~]# zabbix_get -s 192.168.100.105 -p 10050 -k "net.tcp.port[,80]"
1

操作流程与监控NFS和MySQL相似,通过监控进程与端口的方式。

创建模板 —— 创建应用集 —— 创建监控项 —— 创建触发器 —— 创建图形 —— 配置动作 —— 测试报警功能

4)监控URL地址

创建检测页面,在NGINX服务器根目录下新建一个check.html检测文件

在web服务器添加
[root@web01 ~]# echo ok > /usr/share/nginx/html/check.html

测试检测页面,在server端进行测试

[root@localhost ~]# curl http://192.168.100.105/check.html
ok

如果有多台服务器,可以循环测试
[root@localhost ~]# for i in 105 106 107;do curl http://192.168.100.$i/check.html;done
ok
curl: (7) Failed connect to 192.168.100.106:80; Connection refused
curl: (7) Failed connect to 192.168.100.107:80; No route to host

创建URL监测模板

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ioh2aGW9-1615803038672)(.\img\自定义URL监控1.png)]

创建应用集

创建web监测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zrj9IFAS-1615803038673)(.\img\自定义URL监控2.png)]

创建图形

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6TLIgtZ-1615803038674)(.\img\自定义URL监控3.png)]

查看web监测效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GFQoqTuA-1615803038675)(.\img\自定义URL监控4.png)]

猜你喜欢

转载自blog.csdn.net/weixin_52492280/article/details/114874247