zabbix监控日志

目录

前言

一、zabbix

(一)概述

(二)zabbix的优点

1、强大的功能和灵活的扩展性

2、高可靠性和可扩展性

3、全面的监控和告警功能

4、免费开源和活跃的社区支持

(三)zabbix的应用场景

1、IT基础设施监控

2、应用程序性能监控

3、网络流量分析

4、日志分析和事件管理

二、zabbix的构成

1、Server端

2、web页面

3、MySQL数据库

4、proxy

5、Agent

三、zabbix的监控对象

1、硬件监控

2、系统监控

3、Java监控

4、网络设备监控

5、应用服务监控

6、MySQL数据库监控

7、URL监控

四、zabbix的常用术语

1、主机(host)

2、主机组(host group)

3、监控项(item)

4、触发器(trigger)

5、事件(event)

6、动作(action)

7、报警升级(escalation)

8、媒介(media)

9、通知(notification)

10、远程命令(remote command)

11、模板(template)

12、应用(application)

13、web场景(web scennario)

14、前端(frontend)

五、zabbix的工作流程

1、在主动模式下的工作流程如下:

2、在被动模式下的工作流程如下:

六、zabbix进程详解

1、Zabbix_agentd

2、Zabbix_get

3、Zabbix Server进程

4、Zabbix_Agent进程

5、zabbix_agentd

6、Zabbix_Proxy进程

7、Zabbix_Web进程

8、Zabbix_Java_Gateway进程

9、Zabbix_Sender进程

10、Zabbix_Receiver进程

11、Zabbix_Alert进程

12、Zabbix_Housekeeper进程

13、Zabbix_Proxy_Housekeeper进程

七、Zabbix的监控框架

1、Zabbix Server

2、Zabbix Agent

3、Zabbix Proxy

4、Zabbix Web

5、数据库

6、监控项(Items)

7、触发器(Triggers)

8、报警动作(Actions)

9、图形和报表

八、Zabbix配置搭建

(一)环境搭建

1、zabbix程序结构

1)zabbix-server:用于数据处理及写入到数据库

2)zabbix-agent:用于获取被监控端的性能检测数据

3)zabbix-web:用于数据的展示及远程操控

4)数据库:用于存储监控数据

5)zabbix-proxy:实现zabbix分布式监控

2、zabbix-agent支持的协议

1)ssh

2)snmp:用于交换机路由器流量监控(OID)

3)IPMI:硬件监控

4)JMX:   专用于java服务监控

5)结合procona:实现针对数据库监控

3、zabbix监控环境搭建

1)yum自动化安装

2)源码编译安装

3)二进制包

3.1 配置zabbix官方yum源

3.2 查看可用的zabbix列表

3.2 安装服务端与客户端(单机部署)

3.3 安装zabbix-web

1)编辑epel源

2) 安装后续使用的缺失依赖源

3)安装Zabbix前端软件包

4)安装存储数据库    

a、创建数据库

b、创建数据库户

c、数据库库授权

d、查看所有库

e、进入数据库并查看内容

f、导入数据库

g、Zabbix服务端配置数据库

h、Zabbix服务端配置时区

3.4 启动服务并查看

3.5 web进行访问查看

1)web界面登陆

2)进入监控页面

3)创建用户

4)添加权限

5)更改超级管理员用户密码

4. 配置客户端添加监控主机

4.1、下载源

4.2、客户端安装zabbix-agent

4.3、更改配置文件

4.4、添加监控主机(客户端)

4.5、服务端在网页内进行如下更改 

5. 添加监控主机(windows客户端)

5.1、下载安装包

5.2、安装、配置

1)在安装前进行配置,指向zabbix-server服务端的IP

2)而后将配置文件拷贝至 C盘下

3)而后使用cmd运行。

4)进入目录

5)安装软件

6)启动zabbix-agent

7)查看监听

8)web添加进行查看

9)拓展内容:

6. 配置zabbix监控路由器(虚拟)

6.1、windows端安装GNS3:

6.2、web端进行配置:

7. zabbix中核心的资源介绍

8. 监控项配置

8.1、自定义监控项(检测内存)

8.2、zabbix监控nginx 

8.3、zabbix监控mysql

(二)触发器报警

1、监控项获取失败排查(面试)

1)web添加监控项页面测试获取监控项值

2)服务端安装zabbix_get 

3)在客户端通过zabbix_agentd -t检测获取监控项

2、触发器

3、配置动作实现zabbix自动化报警

3.1、配置邮件告警

3.2、配置钉钉报警

3.3、配置微信报警

1)申请企业微信

2)创建自定义应用

3)准备微信报警脚本

4)安装pip

5)web端添加报警媒介

6)报警升级

7)web检测

8)zabbix解决web页面乱码问题

3. 4、zabbix自动化监控

总结


前言

      本文主要是对zabbix监控日志进行配置,内容里面含有较为详细的配置监控平台步骤(Linux服务端和客户端、windows客户端、cisco虚拟路由器、监控MySQL、监控NGINX)。以及各种类型的监控报警配置(163邮箱报警、钉钉报警)。篇幅略长,前文主要为zabbixzabbix的基础知识,后面为具体实际操作部分。

一、zabbix

(一)概述

       Zabbix是一个开源的网络监控、应用程序监控以及网络事件和告警管理系统。它可以收集、分析和监控服务器、虚拟机、网络设备以及应用程序的性能和可用性,并及时发出告警。

(二)zabbix的优点

1、强大的功能和灵活的扩展性

       Zabbix提供了广泛的监控功能,可以监控各种硬件设备、操作系统、应用程序等。同时,Zabbix还提供了灵活的插件和扩展性,可以根据需要自定义监控项和告警条件。

2、高可靠性和可扩展性

       Zabbix采用分布式架构,支持多个Zabbix服务器和代理节点,并提供了冗余、负载均衡和故障转移的能力。这使得Zabbix可以在大规模的环境中应对高负载和高可靠性要求。

3、全面的监控和告警功能

       Zabbix支持多种监控方式,包括主动模式、被动模式和主动被动混合模式,可以全面地监控设备的性能和可用性。同时,Zabbix提供了灵活的告警规则和通知方式,可以及时地发出告警,并通过邮件、短信、Web页面等方式通知管理员。

4、免费开源和活跃的社区支持

       Zabbix作为开源软件,可以免费使用和定制。同时,Zabbix具有活跃的社区支持,提供了丰富的文档、教程和插件,方便用户使用和扩展。

(三)zabbix的应用场景

1、IT基础设施监控

       Zabbix可以监控服务器、虚拟机、网络设备、存储设备等各种IT基础设施的性能和可用性。可以实时监控CPU、内存、磁盘、网络流量等指标,并发现和解决问题。

2、应用程序性能监控

       Zabbix可以监控Web服务器、数据库服务器、应用服务器等应用程序的性能和可用性。可以监测应用程序的响应时间、请求量、错误率等指标,并发现和解决性能问题。

3、网络流量分析

       Zabbix可以监控网络设备的带宽使用情况、端口状态和链路状态等。可以实时监测网络流量、分析网络瓶颈,并进行容量规划和优化。

4、日志分析和事件管理

       Zabbix可以通过监控日志文件,实时监测其中的关键字或特定事件。可以用于监控安全事件、故障事件、异常行为等,并及时发出告警。

二、zabbix的构成

zabbix主要由以下5个组件构成:

1、Server端

zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。

2、web页面

web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。

3、MySQL数据库

zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。

4、proxy

zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。

5、Agent

zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给zabbix server。

三、zabbix的监控对象

       zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

1、硬件监控

       Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

2、系统监控

       Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

3、Java监控

       Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

4、网络设备监控

       Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。

5、应用服务监控

       Zabbix Agent UserParameter

6、MySQL数据库监控

       percona-monitoring-plulgins   

7、URL监控

       Zabbix Web 监控

四、zabbix的常用术语

zabbix的学习需要掌握一些zabbix的常用术语,zabbix常用术语列举如下:

1、主机(host)

       要监控的设备,可以由IP或者是主机名(必须可解析)指定。

2、主机组(host group)

       主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。

3、监控项(item)

       一个特定监控指标的相关数据,比如内存的大小、CPU的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个key来标识。

4、触发器(trigger)

       一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。

5、事件(event)

       触发器触发的一个特定事件,或者是zabbix定义的一个自动上线注册主机的事件。

6、动作(action)

       指根据配置,zabbix对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。

7、报警升级(escalation)

       发送警报或者是执行远程命令的自定义方案。

8、媒介(media)

       发送通知(告警)的手段,如微信、邮件、钉钉等等。

9、通知(notification)

       通过指定的媒介,向用户发送的有关事件的信息。

10、远程命令(remote command)

       指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。

11、模板(template)

       用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。

12、应用(application)

       一组监控项的集合。

13、web场景(web scennario)

       用于检测web站点可用性的一个或多个HTTP请求。

14、前端(frontend)

       zabbix的web接口。

       这些术语,我们都会在后文中直接使用而不过多赘述,在企业技术交流中也会经常使用。

五、zabbix的工作流程

       Zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。

zabbix的数据收集分为两种模式:

1、在主动模式下的工作流程如下:

       1.  Zabbix Server在预定的时间间隔内向Zabbix Agent发送获取监控数据的请求。

       2.  Zabbix Agent接收到请求后,将数据收集并发送给Zabbix Server。

       3.  Zabbix Server接收到数据后进行处理,包括数据存储、分析和绘制图表等。

       4.  当达到触发条件时,Zabbix Server会发出告警,通知管理员。

2、在被动模式下的工作流程如下:

       1.  Zabbix Agent在预定的时间间隔内将监控数据主动发送给Zabbix Server。

       2.  Zabbix Server接收到数据后进行处理,包括数据存储、分析和绘制图表等。

       3.  当达到触发条件时,Zabbix Server会发出告警,通知管理员。

       需要注意的是,Zabbix Agent可以通过多个方式发送数据给Zabbix Server,包括主动模式、被动模式和主动被动混合模式。根据实际需求,可以选择适合的模式进行监控。同时,Zabbix Server和Zabbix Agent之间的通信可以通过加密来确保安全。

六、zabbix进程详解

1、Zabbix_agentd

       Zabbix-agentd为zabbix客户端守护进程 ,主要负责收集客户端监控项数据。

2、Zabbix_get

       Zabbix_get作为zabbix工具,通常运行在zabbix_server或者zabbix_proxy上,用于远程获取客户端信息,通常用于排错。

3、Zabbix Server进程

       Zabbix_Server为zabbix服务端守护进程,这是Zabbix的核心进程,负责接收和处理来自Agent的监控数据,执行报警动作并生成报表等功能。(端口为10051)

4、Zabbix_Agent进程

       运行在被监控主机上,定期采集主机的各种监控数据,并将数据发送给Zabbix_Server进行处理。

5、zabbix_agentd

       为zabbix客户端守护进程 ,主要负责收集客户端监控项数据。

6、Zabbix_Proxy进程

       作为中间代理,可以将数据收集和处理的任务分散到多台代理主机上,以减轻Zabbix_Server的负载。

7、Zabbix_Web进程

       负责提供Zabbix的Web界面,并与Zabbix Server进行通信,接收和显示监控数据以及配置和管理Zabbix系统。

8、Zabbix_Java_Gateway进程

       是zabbix2.0以后引入的新功能,如果用户需要监控Java应用程序,可以使用Zabbix_Java_Gateway进程将Java应用程序的监控数据发送给Zabbix_Server。但是只能主动获取数据,而不能被动获取数据。

9、Zabbix_Sender进程

       通常运行在zabbix的客户端,用于将预定义的数据或自定义的数据发送给Zabbix_Server进行处理和存储。

10、Zabbix_Receiver进程

       负责接收来自Zabbix_Sender的数据,并将数据传递给Zabbix_Server进行处理。

11、Zabbix_Alert进程

       用于处理报警相关的任务,监测触发条件并发送报警信息给预设的用户。

12、Zabbix_Housekeeper进程

       负责清理过期的历史数据和事件数据,以保证数据库的性能和存储空间的有效利用。

13、Zabbix_Proxy_Housekeeper进程

       类似于Zabbix_Housekeeper进程,但专门用于代理主机上的数据清理和处理。

七、Zabbix的监控框架

1、Zabbix Server

       作为核心组件,负责接收、存储和处理来自被监控主机的数据。它还负责配置管理、监控计划、报警处理等功能。

2、Zabbix Agent

       运行在被监控主机上的代理客户端,定期采集主机的各种监控数据,并将数据发送给Zabbix Server。Agent可以监控系统资源、服务状态、应用性能等。

3、Zabbix Proxy

       可选组件,作为中间代理,可以分散Zabbix Server的负载。Proxy负责收集和处理来自被监控主机的数据,并将处理后的数据发送给Zabbix Server。

4、Zabbix Web

       提供基于Web的用户界面,用户可以通过Web界面来管理和配置Zabbix系统,查看监控数据,设置触发器和报警等。

5、数据库

       Zabbix使用数据库来存储监控数据、配置信息和历史记录。支持的数据库类型包括MySQL、PostgreSQL、Oracle等。

6、监控项(Items)

       定义要监控的主机资源或服务的指标,比如CPU使用率、内存利用率、网络流量等。

7、触发器(Triggers)

       定义触发报警的条件,当监控项的值满足触发器设置的条件时,会触发相应的报警动作。

8、报警动作(Actions)

       定义报警触发后的响应方式,可以发送通知、执行脚本、调用API等。

9、图形和报表

       Zabbix可以生成各种图形和报表,用于展示监控数据的趋势和性能指标。

       以上组件共同构成了Zabbix监控框架,通过可扩展的架构和灵活的配置,可以满足不同规模和需求的监控环境。

八、Zabbix配置搭建

(一)环境搭建

1、zabbix程序结构

1)zabbix-server:用于数据处理及写入到数据库
2)zabbix-agent:用于获取被监控端的性能检测数据
3)zabbix-web:用于数据的展示及远程操控
4)数据库:用于存储监控数据
5)zabbix-proxy:实现zabbix分布式监控

2、zabbix-agent支持的协议

1)ssh
2)snmp:用于交换机路由器流量监控(OID)
3)IPMI:硬件监控
4)JMX:   专用于java服务监控
5)结合procona:实现针对数据库监控

3、zabbix监控环境搭建

    安装方式

1)yum自动化安装
2)源码编译安装
3)二进制包

官网地址:Download and install Zabbix

zabbix监控日志_第1张图片

注:其下是根据想要安装的版本,对其进行整理出来的安装步骤 (官网也有部署安装方式)

3.1 配置zabbix官方yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3.2 查看可用的zabbix列表
yum list | grep zabbix

zabbix监控日志_第2张图片

3.2 安装服务端与客户端(单机部署)
yum install -y zabbix-server-mysql zabbix-agent

zabbix监控日志_第3张图片

查看安装路径

rpm -ql zabbix-server-mysql 

zabbix监控日志_第4张图片

服务参数解析: 

zabbix server服务名: zabbix-server 端口:10051

zabbix agent 服务名: zabbix-agent  端口: 10050

zabbix server主配置文件: /etc/zabbix/zabbix server.conf

zabbix agent主配置文件: /etc/zabbix/zabbix agentd.conf

zabbix企业微信报警脚本路径:/usr/lib/zabbix/alertscripts

zabbix自定义监控项路径: /etc/zabbix/zabbix agentd.d

zabbix日志文件路径:/var/log/zabbix 

3.3 安装zabbix-web
1)编辑epel源
cd /etc/yum.repos.d/
vim zabbix.repo

更改内容

zabbix监控日志_第5张图片

2) 安装后续使用的缺失依赖源
yum install -y epel-release centos-release-scl

zabbix监控日志_第6张图片

3)安装Zabbix前端软件包
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

4)安装存储数据库    
yum install -y mariadb-server mariadb

zabbix监控日志_第7张图片

数据库配置

systemctl start mariadb
mysql
a、创建数据库
create database zabbix character set utf8 collate utf8_bin;

zabbix监控日志_第8张图片

b、创建数据库户
create user 'zabbix'@'localhost' identified by '123123';

c、数据库库授权
grant all privileges on zabbix.* to 'zabbix'@'localhost';

d、查看所有库
show databases;

zabbix监控日志_第9张图片

e、进入数据库并查看内容
use zabbix;
show tables;

f、导入数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123123 zabbix

命令解析:

       这里用*来表示版本,因为不同版本的安装,目录后缀会有不同

       这个命令是将/usr/share/doc/zabbix-server-mysql*/create.sql.gz文件的内容解压,并通过管道将解压后SQL命令导入到名为zabbix的MySQL数据库中,该SQL命令通常用于创建和初始化Zabbix监控系统所需的数据库结构和表。

具体解析如下:

  • zcat命令用于解压缩.gz格式的文件,它会将/usr/share/doc/zabbix-server-mysql*/create.sql.gz文件解压缩成文本形式。
  • |符号是管道操作符,用于将一个命令的输出作为另一个命令的输入。
  • mysql -uzabbix -p123123 zabbix是MySQL命令,用于连接到MySQL数据库,并执行后续的操作。
    • -uzabbix表示使用zabbix用户进行连接。
    • -p123123表示使用123123作为密码进行连接(需要根据实际情况进行修改)。
    • zabbix是要连接的数据库名称。

g、Zabbix服务端配置数据库
vim /etc/zabbix/zabbix_server.conf 

zabbix监控日志_第10张图片

h、Zabbix服务端配置时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

3.4 启动服务并查看
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
netstat -anptu | grep zabbix

zabbix监控日志_第11张图片

3.5 web进行访问查看
192.168.111.254/zabbix

zabbix监控日志_第12张图片zabbix监控日志_第13张图片

zabbix监控日志_第14张图片zabbix监控日志_第15张图片

zabbix监控日志_第16张图片zabbix监控日志_第17张图片

zabbix监控日志_第18张图片

1)web界面登陆

       zabbix前端已经安装完成!超级用户名是Admin,密码是zabbix为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。在下次成功登陆后,将会在界面上显示登录尝试失败的IP地址。

2)进入监控页面

zabbix监控日志_第19张图片zabbix监控日志_第20张图片

zabbix监控日志_第21张图片

这里已经可以看见访问成功了,以下内容为扩展项 

3)创建用户

zabbix监控日志_第22张图片zabbix监控日志_第23张图片

注:*号为必填项

       默认情况下,没有为新增的用户定义媒介(media,即通 知发送方式) 。如需要创建,可以到 媒介(Media)标签 下,然后点击 增加(Add)。

zabbix监控日志_第24张图片

       在这个对话框中,为用户输入一个Email地址。你可以为媒介指定一个时间活动周期,(访问时间周期说明页面,查看该字段格式的描述)。默认情况下,媒介一直 是活动的。你也可以通过自定义触发器严重等级来激活媒介,默认所有的等级都保持开启。选择用户身份(如果需要该用户接收告警通知,需要超级管理员类型)

4)添加权限

zabbix监控日志_第25张图片 zabbix监控日志_第26张图片

此用户是要有只读访问Linux Server组的权限, 设置权限级别,然后添加到权限列表中。 在“用户组属性”表单中, 单击“更新。

注:在Zabbix中,主机的访问权限被分配给用户组, 而不是单独的用户。权限设置完成了!您可以尝试使用新用户的凭据登录。

5)更改超级管理员用户密码

zabbix监控日志_第27张图片 zabbix监控日志_第28张图片

4. 配置客户端添加监控主机

4.1、下载源
rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.24-1.el7.x86_64.rpm 

4.2、客户端安装zabbix-agent
yum install -y zabbix-agent

zabbix监控日志_第29张图片

查看安装路径

rpm -ql zabbix-agent

zabbix监控日志_第30张图片

4.3、更改配置文件
cp /etc/zabbix/zabbix_agentd.conf{,.bak}
4.4、添加监控主机(客户端)
vim /etc/zabbix/zabbix_agentd.conf

 

systemctl start zabbix-agent
systemctl enable zabbix-agent

4.5、服务端在网页内进行如下更改 

zabbix监控日志_第31张图片

zabbix监控日志_第32张图片

在更改完毕后进行查看 

zabbix监控日志_第33张图片

5. 添加监控主机(windows客户端)

5.1、下载安装包

Download Zabbix agents官网下载即可

zabbix监控日志_第34张图片

5.2、安装、配置
1)在安装前进行配置,指向zabbix-server服务端的IP

zabbix监控日志_第35张图片

2)而后将配置文件拷贝至 C盘下

zabbix监控日志_第36张图片

3)而后使用cmd运行。

zabbix监控日志_第37张图片

注:这里必须使用管理员运行,不然普通用户权限不够。

4)进入目录
cd ..\..\zabbix-agent\bin
5)安装软件
zabbix_agentd.exe -c zabbix_agentd.conf -i

 注:这里报错是因为我已经安装过zabbix-agent客户端了。

6)启动zabbix-agent
zabbix_agentd.exe -c zabbix_agentd.conf -s

7)查看监听
netstat -ano | findstr 10050

zabbix监控日志_第38张图片

注:进程启动了很多10050端口,这里只截取一部分内容

8)web添加进行查看
http://192.168.111.254/zabbix/zabbix.php?action=dashboard.view

zabbix监控日志_第39张图片zabbix监控日志_第40张图片

zabbix监控日志_第41张图片zabbix监控日志_第42张图片

zabbix监控日志_第43张图片 zabbix监控日志_第44张图片

zabbix监控日志_第45张图片zabbix监控日志_第46张图片

此时windows端已经监测完成,可以使用图形进行查看

zabbix监控日志_第47张图片

注:在图形界面中因为Linux系统编码的区别,显示可能为方块“  □  ”,意思为不识别。可以进行如下操作。

9)拓展内容:
cd /usr/share/fonts/dejavu/
ls

zabbix监控日志_第48张图片

vim DejaVuSans.ttf 

查看发现根本看不懂。 。。我们还是直接拷贝做好备份吧!避免后续如果使用找不到。

cp DejaVuSans.ttf DejaVuSans.ttf.bak

下载可以使用的字符编码

注:这里除了下载还有第二条方式可以实现。在windows主机下的fonts字体库中选取一个中文字体替换文件  [  /usr/share/fonts/dejavu/DejaVuSans.ttf  ]  即可实现正常显示。

yum install -y wqy-microhei-fonts
cd /usr/share/fonts/wqy-microhei/
ls

将其拷贝到原有字符页面下,覆盖原有内容 

cp wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf 

zabbix监控日志_第49张图片

这时web刷新页面即可正常运行查看

6. 配置zabbix监控路由器(虚拟)

下载官网:Getting Started with GNS3 | GNS3 Documentation

emm,不过还是建议下载破解版...毕竟懂的都懂...  安装、配置流程如下:

6.1、windows端安装GNS3:

zabbix监控日志_第50张图片

zabbix监控日志_第51张图片zabbix监控日志_第52张图片

zabbix监控日志_第53张图片zabbix监控日志_第54张图片

zabbix监控日志_第55张图片 zabbix监控日志_第56张图片

zabbix监控日志_第57张图片 zabbix监控日志_第58张图片

zabbix监控日志_第59张图片zabbix监控日志_第60张图片

zabbix监控日志_第61张图片 zabbix监控日志_第62张图片

zabbix监控日志_第63张图片 zabbix监控日志_第64张图片

zabbix监控日志_第65张图片 zabbix监控日志_第66张图片

zabbix监控日志_第67张图片 zabbix监控日志_第68张图片

zabbix监控日志_第69张图片 zabbix监控日志_第70张图片

zabbix监控日志_第71张图片 zabbix监控日志_第72张图片

zabbix监控日志_第73张图片 zabbix监控日志_第74张图片

zabbix监控日志_第75张图片 zabbix监控日志_第76张图片

zabbix监控日志_第77张图片zabbix监控日志_第78张图片

zabbix监控日志_第79张图片 

zabbix监控日志_第80张图片 zabbix监控日志_第81张图片

zabbix监控日志_第82张图片zabbix监控日志_第83张图片

zabbix监控日志_第84张图片zabbix监控日志_第85张图片

zabbix监控日志_第86张图片zabbix监控日志_第87张图片

zabbix监控日志_第88张图片 zabbix监控日志_第89张图片

zabbix监控日志_第90张图片zabbix监控日志_第91张图片

zabbix监控日志_第92张图片zabbix监控日志_第93张图片

进入全局配置模式,允许对路由器或交换机进行全局级别的配置。

conf t

关闭路由功能(当主机使用的话不需要配置路由,当路由器使用必须配置路由)

no ip routing

进入f0/0接口配置地址( f0/0为外面连接什么接口,这边配置什么接口 )

int f0/0
ip address 192.168.11.200 255.255.255.0

开启接口

no shutdown

回到end模式测试通联性(显示!为通信;显示...为不通信 [ 这里测试2个查看结果 ] )

end
ping 192.168.11.111
ping 192.168.11.88

进入配置模式创建共同体

conf t
snmp-server community cisco

开启traps功能(路由器主动向服务器端发送相关信息)

snmp-server enable traps     

一键式操作如下:(只需更改IP地址即可) 

conf t
no ip routing
int f0/0
ip address 192.168.11.200 255.255.255.0
no shutdown
end
ping 192.168.11.111
ping 192.168.11.88
conf t
snmp-server community cisco
snmp-server enable traps

至此,虚拟路由功能已经配置完毕。

6.2、web端进行配置:

zabbix监控日志_第94张图片zabbix监控日志_第95张图片

zabbix监控日志_第96张图片zabbix监控日志_第97张图片 

查看SNMP支持版本:

end
show snmp group

zabbix监控日志_第98张图片zabbix监控日志_第99张图片

zabbix监控日志_第100张图片zabbix监控日志_第101张图片

zabbix监控日志_第102张图片zabbix监控日志_第103张图片

7. zabbix中核心的资源介绍

    监控项→触发器→动作→ 模板

8. 监控项配置

    首先规划风险值,通过设计取值命令

8.1、自定义监控项(检测内存)

客户端配置监控项

cp /etc/zabbix/zabbix_agentd.conf{,.bak}
​vim /etc/zabbix/zabbix_agentd.conf 

注:不在主配置文化里进行修改,为了方便后续使用以及更改,直接在目录下创建文件即可

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

注:在使用命令前先进行测试,测试命令是否正确,是否为自己所需内容,如内容不对及时进行更改。 

free -m
free -m | grep Mem
free -m | grep Mem | awk '{print $3}'

zabbix监控日志_第104张图片

UserParameter=memory_used,free -m | grep Mem | awk '{print $3}'

命令语法:

UserParameter=key,shell command

监控 key 值: memory_userd,key 值可以随意编写,但是一会需要在 web 页面创建监控项时指定 key 值; 

注:在 zabbix_server 端可以使用 zabbix_get -s agent 端 ip 地址 p 10050 -k key 名通过此命令可以查看 agent 端 key 的监控值;

重启服务

systemctl restart zabbix-agent
yum install -y zabbix-get

zabbix监控日志_第105张图片客户端: 

cat /etc/zabbix/zabbix_agentd.d/memory.conf 

注:此处的名字需要在服务端进行测试,是否可以正常使用。 

服务端: 

zabbix_get -s 192.168.11.112 -k memory_used

        zabbix_get 用于服务端测试获取客户端中自定义的监控项
        zabbix_get -s 指定客户端IP  -k 监控项名 

zabbix监控日志_第106张图片zabbix监控日志_第107张图片 

zabbix监控日志_第108张图片zabbix监控日志_第109张图片

zabbix监控日志_第110张图片zabbix监控日志_第111张图片 

zabbix监控日志_第112张图片zabbix监控日志_第113张图片

  web端添加监控项

        1)选择需要添加监控项的主机

zabbix监控日志_第114张图片
        2)根据客户端所自定义的监控项添加即可

zabbix监控日志_第115张图片zabbix监控日志_第116张图片

        3)注意:添加监控项页面中的值要和监控项的key名一致

8.2、zabbix监控nginx 

客户端:

yum install -y nginx
nginx -v

编辑配置文件

vim /etc/nginx/nginx.conf
          location /status {
                  stub_status on;
                  access_log off;
                  allow 192.168.11.0/24;
                  deny all;

在server字段下添加如下内容: 

zabbix监控日志_第117张图片

内容解析:

 location /status:定义了一个 URL 路径,即/status。Nginx 将在这个路径下应用接下来的指令。
stub_status on;:开启一个内置的stub_status模块,用于提供服务器的当前状态信息,如连接数、请求数等。这通常用于服务器状态监控。
access_log off;:关闭访问日志记录,意味着 Nginx 将不会记录这个路径下的访问请求。
allow 192.168.11.0/24;:允许 IP 地址范围为 192.168.11.0/24(即 192.168.11.0 至 192.168.11.255)的访问这个路径。
deny all;:拒绝其他所有 IP 地址的访问请求。

重启服务

systemctl restart nginx

web进行访问测试

192.168.11.112/status

zabbix监控日志_第118张图片

此时可以看见从web进行访问已经没有任何问题。编写检查脚本 

vim /etc/zabbix/chk_nginx.sh
#!/bin/bash
#zabbix 5.0监控nginx

#定义Nginx status页面
ngx_status="http://192.168.11.112/status"

#判断status页面是否存活
ngx_status_code() {
        http_code=`curl -o /dev/null -s -w %{http_code} ${ngx_status}`
        if [ ${http_code} == "200" ];then
                return 1
        else
                echo "服务没有启动,请使用systemctl start nginx 启动服务!"
        fi
}

#获取当前活动的客户端连接数
active() {
        ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}

#获取接收客户端连接的总数量
accepts() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}

#获取已处理的连接总数量
handled() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}

#获取客户端请求总数量
requests() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}

#获取正在读取请求标头的当前连接数量
reading() {
        ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}

#获取正在将响应写回到客户端的当前连接数量
writing() {
        ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}

#获取当前正在等待响应的客户端连接数量
waiting() {
        ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}

#使用位置变量控制脚本输出
case $1 in
        active)
                active;;
        accepts)
                accepts;;
        handled)
                handled;;
        requests)
                requests;;
        reading)
                reading;;
        writing)
                writing;;
        waiting)
                waiting;;
        *)
                echo "未知选项,请输入正确的选项!"
esac

赋予执行权限 ,执行脚本进行检测

chmod +x /etc/zabbix/chk_nginx.sh 
/etc/zabbix/chk_nginx.sh active

zabbix监控日志_第119张图片

cp /etc/zabbix/zabbix_agentd.conf{,.bak}
cd /etc/zabbix/zabbix_agentd.d/

 创建自定义监控项,监控nginx

vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
#当前活动的客户端连接数
UserParameter=nginx.active,bash /etc/zabbix/chk_nginx.sh active
#接收客户端连接的总数量
UserParameter=nginx.accepts,bash /etc/zabbix/chk_nginx.sh accepts
#已处理的连接总数量
UserParameter=nginx.handled,bash /etc/zabbix/chk_nginx.sh handled
#客户端请求总数量
UserParameter=nginx.requests,bash /etc/zabbix/chk_nginx.sh requests
#正在读取请求标头的当前连接数量
UserParameter=nginx.reading,bash /etc/zabbix/chk_nginx.sh reading
#正在将响应写回到客户端的当前连接数量
UserParameter=nginx.writing,bash /etc/zabbix/chk_nginx.sh writing
#当前正在等待响应的客户端连接数量
UserParameter=nginx.waiting,bash /etc/zabbix/chk_nginx.sh waiting

注:这里脚本名称需和刚刚定义的脚本目录、名称一致。 

重启服务

systemctl restart zabbix-agent

拓展命令:

%s#script/##g

       这是一种在正则表达式中使用的替换操作。在这个例子中,%s 是一个占位符,它表示要替换的字符串,#script/ 是要查找的字符串,##g 表示全局替换。所以,这个正则表达式的意思是:在文本中查找所有的 #script/,并将它们替换为 %s。

%s/script\//g

       这也是一种在正则表达式中使用的替换操作。在这个例子中,%s 是一个占位符,它表示要替换的字符串,/script\/ 是要查找的字符串,g 表示全局替换。这里的反斜杠 \ 起到了转义的作用,它告诉正则表达式引擎,接下来的字符应当被解释为一个普通字符,而不是特殊字符。所以,这个正则表达式的意思是:在文本中查找所有的 /script/,并将它们替换为 %s。注意这里的斜杠 / 前面有一个反斜杠 \,这是为了防止斜杠被正则表达式识别为特殊字符。

服务端访问测试 

zabbix_get -s 192.168.11.112 -k nginx.active

web添加监控项进行访问测试

zabbix监控日志_第120张图片 zabbix监控日志_第121张图片

zabbix监控日志_第122张图片 zabbix监控日志_第123张图片

zabbix监控日志_第124张图片 zabbix监控日志_第125张图片

之前已经创建过主机,所以再次不需要进行创建,只需添加模版即可 

zabbix监控日志_第126张图片 zabbix监控日志_第127张图片

zabbix监控日志_第128张图片zabbix监控日志_第129张图片

注:这里只测试一个内容,通了即可,如果继续测试的话只需把内容添加进去即可,这里就不做添加流程了,与上述一样。

zabbix监控日志_第130张图片

zabbix监控日志_第131张图片

8.3、zabbix监控mysql

客户端:

安装mysql 

yum install -y mariadb-server mariadb

创建用户并赋予权限 

systemctl start mariadb
mysql
create user 'zabbix'@'%' identified by '123123';
grant all privileges on *.* to 'zabbix'@'%';
flush privileges;
select user,host from mysql.user;
exit

zabbix监控日志_第132张图片

drop user 'root'@'master';
select user,host from mysql.user;
exit

zabbix监控日志_第133张图片

注:需要删除这个root@master的用户,不然后面web进行访问时会出问题,显示不出来图形。 

mysql
use mysql;
select * from user \G;
drop user '\ '@'master';
select * from user \G;
flush privileges;
exit

添加监控账户

vim /etc/zabbix/.my.cnf
[client]
user='zabbix'
password='123123'

zabbix监控日志_第134张图片

ll -a /etc/zabbix/

zabbix监控日志_第135张图片

备份原有的模版

cp /usr/share/doc/zabbix-agent-5.0.37/userparameter_mysql.conf{,.bak}
ls /usr/share/doc/zabbix-agent-5.0.37/

将模版拷贝至目录下

cd /etc/zabbix/zabbix_agentd.d/
cp /usr/share/doc/zabbix-agent-5.0.37/userparameter_mysql.conf ./
ls

修改配置文件,在命令行新增默认路径 HOME=/etc/zabbix/ 

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

zabbix监控日志_第136张图片

重启服务

systemctl restart zabbix-agent

执行其中一条命令进行测试 (服务端进行测试通联)

mysqladmin -uzabbix -p123123 -P3306 -h192.168.11.112 ping

zabbix_get -s 192.168.11.112 -k mysql.ping[192.168.11.112,3306]

zabbix监控日志_第137张图片

如果后期再使用过程中报类似这种的错误,解决方式如下: 

 这种问题不是密码的问题,是用户出现了问题。

 编辑web端 

zabbix监控日志_第138张图片zabbix监控日志_第139张图片

zabbix监控日志_第140张图片zabbix监控日志_第141张图片 

zabbix监控日志_第142张图片zabbix监控日志_第143张图片

(二)触发器报警

1、监控项获取失败排查(面试)

1)web添加监控项页面测试获取监控项值
2)服务端安装zabbix_get 
3)在客户端通过zabbix_agentd -t检测获取监控项

        如果成功获取到值则配置没有问题,如果获取不到,则自定义监控项定义有问题

2、触发器

    作用:定义监控项的阈值,当超过阈值则触发警告
    阈值:指某一个监控指标的定义值
    定义触发器:

        主机→ 触发器→ 创建→ 构建表达式

    设置阈值类型:

        last: 最新一次的数据
        avg:单位时间内的平均值
        count:单位时间内的总数
        max: 最大值

zabbix监控日志_第144张图片

注:详细步骤在前面7.1、自定义监控项中。

3、配置动作实现zabbix自动化报警

    通过动作实现

企业级常用的报警方式:

1)邮件报警
2)微信报警
3)钉钉报警
4)短信报警

3.1、配置邮件告警

注册163邮箱用于后续使用

163网易免费邮-你的专业电子邮局

zabbix监控日志_第145张图片zabbix监控日志_第146张图片

zabbix监控日志_第147张图片zabbix监控日志_第148张图片 

zabbix服务端配置邮件服务器 

yum install -y mailx dos2unix

zabbix监控日志_第149张图片

查看版本

mailx -V

zabbix监控日志_第150张图片

编辑配置文件

vim /etc/mail.rc 
//此文件末尾添加,指定接收邮件邮箱地址,指定邮箱服务器地址,指定接收邮件邮箱地址的授权码,并非 163 邮箱的密码,而是授权码,登陆 163 网易邮箱地址后,--设置--开启smtp 和 pop3--点击客户端生成授权码-使用此授权码进行指定到此配置文件;
set from=163账号 smtp=smtp.163.com
set smtp-auth-user=163账号 smtp-auth-password=之前保存的授权密码
set smtp-auth=login

zabbix监控日志_第151张图片

echo "测试通信是否正常!" | mail -s "测试通联" 163账号

web端查看邮件 

zabbix监控日志_第152张图片

编辑配置文件引用邮件脚本

vim /etc/zabbix/zabbix_server.conf 
#在文件最下方插入内容
AlertScriptsPath=/etc/zabbix/alertscripts

内容解析:

AlertScriptsPath=/etc/zabbix/alertscripts 是一个配置项,通常用于 Zabbix 监控系统中。Zabbix 是一个开源的监控和警报系统,可以监视 IT 基础架构(如服务器、网络设备等)的性能和可用性,并在发现异常时发送警报。这个配置项的作用是指定 Zabbix 报警脚本所在的目录。AlertScriptsPath 变量的值(在本例中为 /etc/zabbix/alertscripts)是 Zabbix 查找报警脚本的默认路径。当 Zabbix 需要执行报警操作时,它会在这个路径下查找并执行相应的报警脚本。

mkdir /etc/zabbix/alertscripts
vim /etc/zabbix/alertscripts/mail.sh
#!/bin/bash
#邮件报警

#定义收件人、标题信息
addressee=$1
title=$2

#定义文件路径
FILE=/tmp/mailtmp.txt
echo "$3" > $FILE

#文字转码
#使用 dos2unix 命令转换字符,避免收到邮件不显示正常邮件内容而出现 ATTO0001.bin 的错误
/usr/bin/dos2unix -k $FILE

#发送前文转码后的结果
/bin/mail -s "$2" "$1" < $FILE

赋予权限并创建所需的文件 

chmod 777 mail.sh 
chown zabbix.zabbix mail.sh 
touch /tmp/mailtmp.txt
chmod 777 /tmp/mailtmp.txt 
chown zabbix.zabbix /tmp/mailtmp.txt 

注:文件以及报警脚本的归属以及权限(必须要有执行权限),脚本文件和存放邮件消息文件归属必须是zabbix;

传参测试web是否可以正常使用

./mail.sh [email protected] "测试" "可以正常通信!"

zabbix监控日志_第153张图片

配置web端

配置思路:

监控  --->  创建报警媒型  --->  更新用户使用的报警媒介类型  --->  创建动作(根据触发器触发)  --->  验证

zabbix监控日志_第154张图片zabbix监控日志_第155张图片

zabbix监控日志_第156张图片 zabbix监控日志_第157张图片

zabbix监控日志_第158张图片 zabbix监控日志_第159张图片

创建发送邮件的动作

输入动作名,动作名最好为英文,可以选择触发这个动作的条件(可以选择触发器=触发器的名称或者选择触发器似触发器名称),作为条件,如若如图不选择触发器的条件,那么任何消息都会提示到邮箱;

 zabbix监控日志_第160张图片zabbix监控日志_第161张图片

zabbix监控日志_第162张图片

zabbix监控日志_第163张图片 zabbix监控日志_第164张图片

停掉客户端的MySQL进行测试

systemctl stop mariadb

zabbix监控日志_第165张图片zabbix监控日志_第166张图片

zabbix监控日志_第167张图片zabbix监控日志_第168张图片

启动MySQL服务查看

systemctl start mariadb

zabbix监控日志_第169张图片

配置发送消息模板

故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}

     问题模板:

Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
"Problem started at {EVENT.TIME} on {EVENT.DATE}" 表示问题开始的时间和日期。  
"Problem name: {EVENT.NAME}" 表示问题的名称。  
"Host: {HOST.NAME}" 表示问题所在的主机名。  
"Severity: {EVENT.SEVERITY}" 表示问题的严重性。  
"Operational data: {EVENT.OPDATA}" 表示操作数据。  
"Original problem ID: {EVENT.ID}" 表示原始问题 ID。  
"{TRIGGER.URL}" 表示触发器的 URL。 

    恢复模板:

Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
这段信息表示问题的解决时间、日期、持续时间、主机名、严重性、原始问题 ID 以及触发器的 URL。
{EVENT.RECOVERY.TIME}表示问题被解决的时间,{EVENT.RECOVERY.DATE}表示问题被解决的日期。
{EVENT.DURATION}表示问题存在的持续时间。
{HOST.NAME}表示问题所在的主机名。
{EVENT.SEVERITY}表示问题的严重性。
{EVENT.ID}表示原始问题的 ID。
{TRIGGER.URL}表示触发器(Trigger)的 URL 地址,它可能是导致问题发生的原因。 
3.2、配置钉钉报警

注册下载钉钉用于后续使用

钉钉,让进步发生 (dingtalk.com)

zabbix监控日志_第170张图片zabbix监控日志_第171张图片

zabbix监控日志_第172张图片zabbix监控日志_第173张图片

zabbix监控日志_第174张图片 zabbix监控日志_第175张图片

zabbix监控日志_第176张图片 zabbix监控日志_第177张图片

zabbix监控日志_第178张图片【复制webhook,这个链接很重要,后面钉钉脚本需要用到此链接】

zabbix-server端配置

编辑配置文件在文件最后面加入内容 

vim /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/etc/zabbix/alertscripts

注:因为我们是使用py脚本,在Linux操作系统自带的python版本较低以及所需内容不全,所以需要提前进行安装 

yum -y install python-requests python

zabbix监控日志_第179张图片

 创建对应目录,编辑报警所需脚本 

mkdir /etc/zabbix/alertscripts
vim /etc/zabbix/alertscripts/dingding.py

内容如下: 

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警

import requests,json,sys,os,datetime
#(修改为自己的webhook),就是刚刚保存的链接
webhook="https://oapi.dingtalk.com/robot/send?access_token=f6d54300ca74f0e898f0e3ba51f723444fa1bbe0a396af7bcfadc1e3bbe0abfdzn"
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
    f=open("/var/log/zabbix/dingding.log","a+")
else:
    f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()
systemctl restart zabbix-server

赋予权限并创建所需内容 

zabbix监控日志_第180张图片

手动测试脚本是否可以正常报警

./dingding.py xiejin test "这是一条告警测试信息,请忽略"

zabbix监控日志_第181张图片

web端进行配置

zabbix监控日志_第182张图片zabbix监控日志_第183张图片

zabbix监控日志_第184张图片 zabbix监控日志_第185张图片

zabbix监控日志_第186张图片

zabbix监控日志_第187张图片

报警媒介类型:(三个脚本参数)

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

故障报警模版:

标题: 

告警:{EVENT.NAME}

正文:

-=【告警啦】=-
告警组:{TRIGGER.HOSTGROUP.NAME}
告警主机:{HOSTNAME1} 
告警主机别名:{HOST.NAME}
主机IP:{HOST.IP}
主机描述:{HOST.DESCRIPTION}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
警报类别:{TRIGGER.NAME}
当前状态:{ITEM.LASTVALUE}
告警平台:http://192.168.11.112/zabbix

故障恢复模版:

标题:

故障恢复:{EVENT.NAME}

正文:  

恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.TIME}
主机IP:{HOST.IP}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

此时web端已经配置完毕,关闭MySQL进行测试

zabbix监控日志_第188张图片zabbix监控日志_第189张图片

3.3、配置微信报警
1)申请企业微信
https://work.weixin.qq.com/
2)创建自定义应用
3)准备微信报警脚本

上传脚本 

cd /usr/lib/zabbix/alertscripts

配置脚本

corpid=企业ID
appsecret=自建项目secret
agentid=自建项目ID
4)安装pip
yum install python-pip
pip install requests

测试脚本发送消息命令

python weixin.py 当前在项目中的账号  “标题”  “消息”
chmod +x weixin.py 
rm -rf /tmp/weixin.log
5)web端添加报警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
6)报警升级

            以步骤为单位进行分步骤报警
            间隔时间是按照上一个步骤持续时间定义的

7)web检测

            作用:通过抓取某URL页面中的关键字或状态码,探测业务异常情况

8)zabbix解决web页面乱码问题

            zabbix存放字符集的路径:/usr/share/zabbix/assets/fonts
            通过软连接上传自定义的字符集文件即可

3. 4、zabbix自动化监控

方法一:自动发现

            自动扫描某范围内的ip
            客户端:安装zabbix-agent 配置服务端是谁
            动作:自动发现操作
            自动发现扫描:指定IP范围扫描地址段
            实现原理:
            服务端通过配置自动发现规则,进行ip地址段的扫描,触发动作添加主机
            问题:对服务端压力过大

方法二:主动注册

            所有客户端主动找服务端
            ServerActive=服务端IP
            Metadata=主机名
            Hostname=主机名
            web配置自动注册

总结

      Zabbix 是一款优秀的开源监控和报警软件,支持监控多种类型的设备,如 Linux 服务器、Windows 客户端、MySQL 数据库、NGINX 等。通过实时数据收集、分析和可视化,Zabbix 能够为管理员提供全面、及时的监控信息,确保 IT 系统的稳定运行。在配置 Zabbix 时,首先需要安装 Zabbix 代理程序,以便收集监控数据。接下来,在 Zabbix 服务器(web)上创建主机,并将其与代理程序关联。通过创建触发器,可以在检测到异常情况时自动发送报警。除了支持钉钉报警、邮件报警等常见报警方式外,Zabbix 还提供了丰富的图形界面,方便管理员查看监控数据和报警历史记录。同时,Zabbix 的 API 接口允许管理员自动化地获取监控数据,并实现与其他工具的集成。

你可能感兴趣的:(云计算运维学习,zabbix,运维,服务器,linux,windows)