Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例

目录

配置告警

用户数超过50,发送告警邮件

实施

验证告警配置

配置钉钉机器人告警

创建钉钉机器人

编写脚本并测试

添加报警媒介类型

 为用户添加报警媒介

创建触发器

创建动作

验证

自动发现

配置自动发现

主动监控

配置web2使用主动监控

修改配置文件,只使用主动监控

创建用于主动监控的主机

拓扑图

完善拓扑图

监控Nginx

stub_status模块


配置告警

  • 默认情况下,监控项不会自动发送告警消息
  • 需要配置触发器与告警,并且通过通知方式发送信息给联系人
  • 触发器:设置条件,当条件达到时,将会执行某个动作
  • 动作:触发器条件达到之后要采取的行为,比如发邮件或执行命令

用户数超过50,发送告警邮件

  • 当web1的用户数超过50时,认为这是一个问题(Problem)
  • 当出现问题时,将会执行动作。
  • 执行的动作是给管理员发邮件。
  • 给管理员发邮件,还要配置邮件服务器的地址,以及管理员的email地址
实施
  • 创建触发器规则

 上图中,点击“添加”后,出现下图:

 上图中,点击“插入”后的结果如下:

  • 创建邮件类型的报警媒介

  • 为用户关联邮箱

 

  • 创建动作:当出现Problem状态时,给admin发邮件

 

 

 

 回到“创建动作”页面后,点击“操作”:

 

验证告警配置
  • 在zabbixserver上配置邮件服务
# 配置postfix邮件服务和mailx邮件客户端

[root@pubserver zabbix]# vim 07-config-mail.yml

---

- name: config mail

  hosts: zabbix

  tasks:

    - name: install mail     # 安装postfix和mailx

      yum:

        name: postfix,mailx

        state: present

        

    - name: start postfix    # 启动邮件服务postfix

      service:

        name: postfix

        state: started

        enabled: yes

[root@pubserver zabbix]# ansible-playbook 07-config-mail.yml
  • 在web1创建用户,使总用户数超过50
[root@web1 ~]# for user in user{1..5}

> do

> useradd $user

> done
  • 在zabbix web页面中查看

  • 在zabbixserver上查看邮件
[root@zabbixserver ~]# mail   # 查看邮件

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/root": 2 messages 2 new

>N  1 zzg@tedu.cn           Sat Dec 31 16:47  21/932   "Problem: usercnt_gt_50"

 N  2 zzg@tedu.cn           Sat Dec 31 16:48  21/932   "Problem: usercnt_gt_50"

& 1   # 查看1号邮件

Message  1:

From zzg@tedu.cn  Sat Dec 31 16:47:59 2022

Return-Path: <zzg@tedu.cn>

X-Original-To: root@localhost.localdomain

Delivered-To: root@localhost.localdomain

From: <zzg@tedu.cn>

To: <root@localhost.localdomain>

Date: Sat, 31 Dec 2022 16:47:59 +0800

Subject: Problem: usercnt_gt_50

Content-Type: text/plain; charset="UTF-8"

Status: R


Problem started at 16:47:56 on 2022.12.31

Problem name: usercnt_gt_50

Host: web1

Severity: Warning

Operational data: 51

Original problem ID: 102

& q   # 输入q退出

配置钉钉机器人告警

创建钉钉机器人
  • 登陆钉钉网页版:阿里巴巴-钉钉,是一个工作方式!超过1000w家企业正在使用钉钉! (或者在windows系统上下载电脑版钉钉)
  • 下面以钉钉电脑版为例,配置钉钉群聊机器人
  • 在群聊中点击设置,以新建机器人

注意上面的Webhook地址,不要泄露,谁拥有此地址,谁就可以控制机器人说话。

编写脚本并测试
# 安装钉钉机器人脚本需要用到的模块

[root@zabbixserver ~]# yum install -y python3-requests


# 编写钉钉机器人脚本

[root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py 

#!/usr/bin/env python3


import json

import requests

import sys


def send_msg(url, remiders, msg):

    headers = {'Content-Type': 'application/json; charset=utf-8'}

    data = {

        "msgtype": "text",

        "at": {

            "atMobiles": remiders,

            "isAtAll": False,

        },

        "text": {

            "content": msg,

        }

    }

    r = requests.post(url, data=json.dumps(data), headers=headers)

    return r.text


if __name__ == '__main__':

    msg = sys.argv[1]

    remiders = []

    url = '钉钉机器人Webhook地址'  # 注意此处需输入机器人的webhook地址

    print(send_msg(url, remiders, msg))

    

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


[root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: 测试消息'    # 注意消息中要包含关键字warn

{"errcode":0,"errmsg":"ok"}

添加报警媒介类型

 

 为用户添加报警媒介

 

创建触发器
  • 创建触发器,用户数超过55则触发问题

创建动作
  • 创建动作,用户数超过55则发送钉钉告警消息

验证
  • 创建用户,使用户数超过55
[root@web1 ~]# for user in user{6..10}; do useradd $user; done

[root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt

56
  • 查看结果

自动发现

  • 当被监控的设备非常多的时候,手工添加将会变得非常不方便

  • 可以使用自动发现功能,实现添加主机、添加到主机组、 链接模板

  • 自动发现流程:

    • 创建自动发现规则
    • 创建动作,当主机被发现之后,执行什么操作
    • 通过动作,添加主机,将模板应用到发现的主机

配置自动发现

  • 创建自动发现规则

 

 

创建发现动作

 

 

  • 添加结果如下:

  • 验证

  • 在web2上配置agent
[root@web2 ~]# vim /etc/zabbix/zabbix_agentd.conf 

117 Server=127.0.0.1,192.168.88.5

182 Hostname=web2

[root@web2 ~]# systemctl enable zabbix-agent.service --now

主动监控

  • 默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
  • 被动监控:Server向Agent发起请求,索取监控数据。此种模式常用
  • 主动监控:Agent向Server发起连接,向Server汇报

配置web2使用主动监控

修改配置文件,只使用主动监控
[root@web2 ~]# vim /etc/zabbix/zabbix_agentd.conf 

117 # Server=127.0.0.1,192.168.88.5

142 StartAgents=0

171 ServerActive=192.168.88.5

242 RefreshActiveChecks=120


# 重启服务

[root@web2 ~]# systemctl restart zabbix-agent.service 

[root@web2 ~]# ss -tlnp | grep :10050  # 端口号消失
创建用于主动监控的主机

拓扑图

  • 在zabbix中可以创建拓扑图,反映拓扑结构

  • 添加元素:

    • 地图元素:可以是一个装饰图形,也可以对应具体的设备
    • 形状:长方形、圆形
    • 链接:连线,多个设备之间才能使用链接

完善拓扑图

  • 添加交换机图标

  • 添加链接:按住ctrl键,点选两台设备,点链接边上的添加

  • 添加web服务器

  • 添加链接

监控Nginx

stub_status模块

  • 用于实时监控nginx的网络连接,这个模块是nginx官方提供的一个模块。
  • 配置nginx
[root@pubserver zabbix]# vim 08-config-nginx.yml

---

- name: config nginx

  hosts: webservers

  tasks:

    - name: install nginx   # 安装nginx

      yum:

        name: nginx

        state: present


    - name: start nginx     # 启动nginx

      service:

        name: nginx

        state: started

        enabled: yes

[root@pubserver zabbix]# ansible-playbook 08-config-nginx.yml 


# 修改配置文件,启用stub_status功能

[root@web1 ~]# vim /etc/nginx/nginx.conf

...略...

 47         location / {

 48         }

 49 

 50         location /status {   # 在此处添加3行

 51             stub_status on;

 52         }   

 53         

 54         error_page 404 /404.html;

 55             location = /40x.html {

 56         }

 ...略...

[root@web1 ~]# systemctl restart nginx

 

# 访问监控页面

[root@zabbixserver ~]# curl http://192.168.88.100/status

Active connections: 1 

server accepts handled requests

 2 2 2 

Reading: 0 Writing: 1 Waiting: 0 

# Active connections:当前客户端与nginx之间的连接数。它等于下面Reading / Writing / Waiting之和

# accepts:自nginx启动之后,客户端访问的总量

# handled:自nginx启动之后,处理过的客户端连接总数,通常等于accepts的值。

# requests:自nginx启动之后,处理过的客户端请求总数。

# Reading:正在读取客户端的连接总数。

# Writing:正在向客户端发送响应的连接总数。

# Waiting:空闲连接。


# 使用工具向服务器发起多个请求

[root@zabbixserver ~]# yum install -y httpd-tools

# 一共发1000个请求,每次并发数200

[root@zabbixserver ~]# ab -n1000 -c200 http://192.168.88.100/

[root@zabbixserver ~]# curl http://192.168.88.100/status

Active connections: 1 

server accepts handled requests

 1097 1097 1003 

Reading: 0 Writing: 1 Waiting: 0 
  • 编写脚本,用于获取各项数据
[root@web1 ~]# vim /usr/local/bin/nginx_status.sh

#!/bin/bash


case $1 in

active)

    curl -s http://192.168.88.100/status | awk '/Active/{print $NF}';;

waiting)

    curl -s http://192.168.88.100/status | awk '/Waiting/{print $NF}';;

accepts)

    curl -s http://192.168.88.100/status | awk 'NR==3{print $1}';;

esac


[root@web1 ~]# chmod +x /usr/local/bin/nginx_status.sh

[root@web1 ~]# nginx_status.sh active

1

[root@web1 ~]# nginx_status.sh accepts

1099

[root@web1 ~]# nginx_status.sh waiting

0
  • 创建zabbix用到的key,获取各项数据
# key的语法格式

UserParameter=key[*],<command> $1

# key[*]中的*是参数,将会传给后面的位置变量$1


# 创建声明key的文件

[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf

UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1


# 测试

[root@web1 ~]# systemctl restart zabbix-agent.service 

[root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[active]

1

[root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[waiting]

0

[root@web1 ~]# zabbix_get -s 127.0.0.1 -k nginx_status[accepts]

1103
  • 在zabbix上创建监控项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/383470.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第80讲订单管理功能实现

后端 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.java1234.mapper.OrderM…

计网day1

RTT&#xff1a;往返传播时延&#xff08;越大&#xff0c;游戏延迟&#xff09; 一.算机网络概念 网络&#xff1a;网样的东西&#xff0c;网状系统 计算机网络&#xff1a;是一个将分散得、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功…

KingSCADA实现按钮点击效果

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在做SCADA项目的时候&#xff0c;按钮是不可缺少的功能&#xff0c;但软件自带的按钮太丑&#xff0c;已经无法满足现如今客户对界面美观度的要求。 这时候就需要UI小姐姐设计美观大气的SCADA界面&#xff0c;但UI设计…

尚硅谷 Vue3+TypeScript 学习笔记(下)

目录 五、组件通信 5.1. 【props】 5.2. 【自定义事件】 5.3. 【mitt】 5.4.【v-model】 5.5.【$attrs】 5.6. 【$refs、$parent】 5.7. 【provide、inject】 5.8. 【pinia】 5.9. 【slot】 1. 默认插槽 2. 具名插槽 3. 作用域插槽 六、其它 API 6.1.【shallowR…

Junit常用注解

注解是方法的“标签” 说明每个方法的“职责” Q:总共有那些注解? 参见官方的API文档 0.常用主机及其特点 BeforeClass 只会执行一次必须用static修饰常用来初始化测试需要的变量 Before 会执行多次&#xff08;只要写一次&#xff09;在每个Test执行执行之前执行可以和…

【Python】Mac 本地部署 stable-diffusion

其实要在本地部署 stable-diffusion 不难&#xff0c;只要有“魔法”一切都水到渠成&#xff0c;如下图&#xff1a; (base) MacBook-Pro python % git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui Cloning into stable-diffusion-webui... remote: Enu…

微信小程序 民宿预订租赁系统uniApp

通过山青水磨APP办理租房相关业务&#xff0c;线上解决预定、退订的业务&#xff0c;旅客在使用时更加灵活&#xff0c;实现了快速找房&#xff0c;在线沟通、便捷租赁等操作&#xff0c;除此以外&#xff0c;还能帮助旅客获取周边资讯、当地特色活动服务&#xff0c;提升旅客的…

linux系统下vscode portable版本的c++/Cmake环境搭建001

linux系统下vscode portable版本的Cmake环境搭建 vscode portable 安装安装基本工具安装 build-essential安装 CMake final script code安装插件CMake Tools & cmakeC/C Extension Pack Testsettings,jsonCMakeLists.txt调试和运行工具 CG 目的&#xff1a;希望在获得一个新…

重温阿里云宝塔面板部署前后端项目

首先祝大家新年快乐啊&#xff01; 回到老家&#xff0c;便打算趁这一段空闲时间提升一下自己&#xff0c;重点是学习实践一下echarts相关内容&#xff0c;很多公司项目都需要实现可视化&#xff0c;所以在bilibili上找了黑马的一个教程开始学习&#xff0c;不同的是&#xff…

书生谱语-全链条开发工具

书生谱语全链条开发体系 包含&#xff1a;数据、模型预训练、模型微调、模型量化部署、模型测评、模型场景应用全链路开发体系 github链接 通用大模型 国内外大语言模型快速发展&#xff0c;涌现了大量的大语言模型以及一批创业公司 深度学习模型的发展 大模型利用多模态优势…

PKI - 借助Nginx 实现Https_使用CA签发证书

文章目录 Pre概述操作步骤1. 生成 CA 密钥对2. 生成自签名的 CA 证书3. 生成服务器密钥对和证书签名请求 (CSR)4. 使用 CA 签署服务器证书 Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 CA签发的 HTTPS 证书3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接…

第一篇【传奇开心果微博文系列】Python微项目技术点案例示例:pillow库实现毛笔字春联

传奇开心果微博文系列 系列微博文目录Python微项目技术点案例示例系列 微博文目录一、微项目目标二、实现微项目编程思路三、初步实现目标示例代码四、添加背景色、边框、阴影效果示例代码五、添加花纹背景、装饰线条示例代码六、添加花朵、插图等示例代码 系列微博文目录 Pyt…

PKI - 借助Nginx实现_客户端使用CA根证书签发客户端证书

文章目录 Pre概述步骤1. 创建根证书2. 生成客户端证书3. 准备客户端证书扩展文件4. 签发客户端证书5. 配置Nginx5. 重启 Nginx6. 测试 SAN 证书扩展案例&#xff1a;使用IP访问 Pre PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 PKI - 数字签名与数字证书…

python 基础知识点(蓝桥杯python科目个人复习计划36)

今日复习计划&#xff1a;DFS搜索基础 1.简介 搜索方法&#xff1a;穷举问题解空间部分&#xff08;所有情况&#xff09;&#xff0c;从而求出问题的解。 深度优先搜索&#xff1a;本质上是暴力枚举 深度优先&#xff1a;尽可能一条路走到底&#xff0c;走不了再回退。 2…

《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)

文章目录 6.1 主成分分析&#xff08;PCA&#xff09;6.1.1 基础知识6.1.2 主要案例&#xff1a;客户细分6.1.3 拓展案例 1&#xff1a;面部识别6.1.4 拓展案例 2&#xff1a;基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例&#xff1a;市场细分6.2.3 拓展案例 1&…

Linux--目录结构

目录 一、Linux的目录结构二、常用的目录介绍 一、Linux的目录结构 Linux的目录结构是一个树型结构。 Windos 系统可以拥有多个盘符&#xff0c;如C盘&#xff0c;D盘,E盘。 Linux 木有盘符这个概念&#xff0c;只有一个根目录 /&#xff08;相当于文件夹&#xff09;&#xf…

快速幂的应用

1.非递归的解法 #include <iostream> using namespace std; int main(){int a,b,c,t1;cin>>a>>b>>c;if(a>2&&a<1e3&&b>0&&a<1e7&&c>2&&c<1e5)for(int i0;i<b;i)tt*a%c;cout<<t;r…

Keil : Error-Flash Download failed Cortex-M4错误

1.打开魔术棒 2.点击Debug设置 3.查看是否有你使用的板子型号的flash 4.如果没有的话就添加以下

备份还原实际操作

备份还原实际操作 前言 根据达梦文档整理。 一、工具介绍 工具联机/脱机工具应用场景disql联机1️⃣数据库备份2️⃣归档备份3️⃣表空间备份与还原4️⃣表备份与还原dmrman脱机1️⃣数据库备份、还原和恢复2️⃣脱机还原表空间3️⃣归档的备份、还原和修复manager联机对应…

leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中…