集群监控

文章目录

一、监控简介

1.1 重要性

监控很重要,是必不可少的,运维最重要的就是监控和备份

宕机损失案例:美国呼叫中心 24000 美金/小时


1.2 常见监控平台

1.2.1 Cacti

在这里插入图片描述

  Cacti是RRDtool的前端应用程序,RRDtool是一种用于存储实时变化数据的开源数据库工具,其使用SNMP作为其默认收集算法,但如果你喜欢本地Perl的PHP脚本,那么你也可以使用它们。Cacti 是一款开源的基于Web的网络监控和专为数据记录而设计的图形化工具。它可以用于实时显示网络数据,如CPU负载或带宽利用率。

http://www.cacti.net/

软件设计目标: 流量与性能监测为主
数据展示平台: B/S
数据收集方式: SNMP(Simple Network Management Protocol)


1.2.2 Nagios

在这里插入图片描述

  Nagios 是一款用于监控IT基础架构和查看当前状态、历史日志和基本报告的开源软件工具。 Nagios 用户可以监控系统指标,网络协议,应用程序,服务器,网络基础架构和接收故障警报。Nagios提供三种类型的网络管理工具,Nagios XL,Nagios日志服务器和Nagios网络分析器。其中 Nagios XL 最适合网络监控(尽管其他两种也提供网络监控服务)。

http://www.nagios.org/

软件设计目标: 服务与性能监测为主
数据展示平台: B/S
数据收集方式: C/S(预定义/自定义脚本)


1.2.3 Zabbix

在这里插入图片描述
  Zabbix 作为企业级的网络监控工具,通过从服务器,虚拟机和网络设备收集的数据提供实时监控,自动发现,映射和可扩展等功能。Zabbix的企业级监控软件为用户提供内置的Java应用服务器监控,硬件监控,VMware监控和CPU,内存,网络,磁盘空间性能监控。

http://www.zabbix.com/

软件设计目标: 全功能监控软件
数据展示平台: B/S
数据收集方式: C/S(官方客户端)


二、Cacti 监控服务器

2.1 组件构成

  Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。

组合框架: LAP
数据收集: SNMP
绘制图形: RRDtool

2.1.1 SNMP

(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类

收集数据展示图
在这里插入图片描述

2.1.2 RRDtool

官方定义: RRDtool 是开源行业标准,高性能的时间序列数据记录和绘图系统。RRDtool 可以很容易 地集成到 shell 脚本、perl、python、ruby、lua 或 tcl 应用程序中

2.1.3 工作架构

C/S 模式:采集监测数据

B/S 模式:管理监测数据

在这里插入图片描述
Cacti的工作过程

  首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行对其他客户端的设置,可以从下图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。


2.2 Cacti 监控组件安装配置

两台服务器
10.10.10.11 Cacti服务端
10.10.10.12 客户端(被监控)

可以参考之前的文章2.3章节搭建基础环境和配置本地yum源
https://blog.csdn.net/w918589859/article/details/111146921

2.2.1 安装环境(10.10.10.11)

[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘

[root@localhost ~]$ yum -y install httpd mysql mysql-server mysql-devel libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC php php-mysql php-pdo # 安装基础环境 LAMP 
[root@localhost ~]$ service httpd start && chkconfig httpd on# 启动 Apache 
[root@localhost ~]$ service mysqld start && chkconfig mysqld on# 启动 MySQL
[root@localhost ~]$ mysqladmin -uroot password root #设置mysql密码
 
[root@localhost ~]$ yum -y install net-snmp net-snmp-utils net-snmp-libs lm_sensors # 安装 SNMP、主板信息监控 所需软件包

2.2.2 安装 rrdtool (10.10.10.11)

所需软件百度网盘
链接:https://pan.baidu.com/s/1wfgE3ISFsBddoO2JuMdRiA
提取码:ton9

#上传cacti.iso
[root@localhost ~]$ yum -y install lrzsz #方便把软件直接拖到xshell里面
[root@localhost ~]$ mkdir /iso
[root@localhost ~]$ mount -o loop cacti.iso /iso
[root@localhost ~]$ cp -a /iso/* .

[root@localhost ~]$ tar -zxf rrdtool-1.4.5.tar.gz && cd rrdtool-1.4.5 # 源码编译安装 RRDTOOL 

[root@localhost ~]$ ./configure --prefix=/usr/local 
#如出错,按以下步骤解决,解决源码编译报错依赖

#第 1 步
[root@localhost ~]$ cd /root && tar zxvf cgilib-0.5.tar.gz && cd cgilib-0.5 && make 
[root@localhost ~]$ cp libcgi.a /usr/local/lib  && cp cgi.h /usr/include 
#第 2 步
[root@localhost ~]$ yum -y install libart_lgpl-devel pango-devel* cairo-devel*

#重新执行./configure
[root@localhost ~]$ cd /root/rrdtool-1.4.5
[root@localhost ~]$ ./configure --prefix=/usr/local 
[root@localhost ~]$ make && make install 

2.2.3 部署 cacti,设置数据库连接 (10.10.10.11)

部署源码包,并安装补丁文件

[root@localhost ~]$ cd /root/cacti
[root@localhost ~]$ tar -zxf cacti-0.8.7g.tar.gz # 解压 Cacti 网站 
[root@localhost ~]$ mv cacti-0.8.7g/ /var/www/html/cacti # 拷贝至 Apache 默认路径


# 为 Cacti 代码进行补丁更新
[root@localhost ~]$ cd /var/www/html/cacti 
[root@localhost ~]$ patch -p1 -N < /root/cacti/data_source_deactivate.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/graph_list_view.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/html_output.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/ldap_group_authenication.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/script_server_command_line_parse.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/ping.patch 
[root@localhost ~]$ patch -p1 -N < /root/cacti/poller_interval.patch

添加检测数据的用户账户,更改权限,保证读写数据正常

[root@localhost ~]$ cd /var/www/html/cacti 
[root@localhost ~]$ useradd runct # 添加 runct 用户,用于 RRDTOOL 运行 
[root@localhost ~]$ chown -R root.root ./ 
[root@localhost ~]$ chown -R runct.runct rra/ log/

授权数据库用户,导入初始化数据

[root@localhost ~]$ mysql -u root -proot 
mysql> create database cactidb default character set utf8; # 创建 cactidb 数据库 
mysql> grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'pwd@123'; # 把 cactiuser 用 户赋予 cactidb 库的所有权限 
mysql> quit 

[root@localhost ~]$ mysql -uroot -p cactidb < cacti.sql # cacti 数据库还原

修改 cacti 配置文件

[root@localhost ~]$ vim include/config.php # 配置 cacti 页面连接数据库的认证信息 
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "pwd@123";
$database_port = "3306";

调整 http 配置

[root@localhost ~]$ vim /etc/httpd/conf/httpd.conf # 配置 Apache 对 cacti 的用户权限
Listen 80
Listen 80 DocumentRoot "/var/www/html/cacti" #默认网站路径
<Directory "/var/www/html/cacti">
	options None 
	AllowOverride None 
	Order allow,deny 
	Allow from al
</Directory>

DirectoryIndex index.php index.html  #默认主页
AddDefaultCharset utf-8 #默认字符集

[root@localhost ~]$ service httpd restart

浏览器输入10.10.10.11访问,账户名:admin 密码:admin


2.2.4 客户端配置 (10.10.10.12)

[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘
[root@localhost ~]$ yum -y install net-snmp net-snmp-utils lm_sensors # 安装 SNMP、主板信息监控所需软件包 
[root@localhost ~]$ vim /etc/snmp/snmpd.conf
#41服务器地址 默认为 default 共同体名称 默认为 public 
#62开放所有的 SNMP 查询权限 all 默认为 SystemView 
#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any       noauth    exact  all none none


view all    included  .1                               80

# 85支持各种查询与访问 取消注释符号
[root@localhost ~]$ service snmpd start && chkconfig snmpd on

2.2.5 收集数据 (10.10.10.11)

[root@localhost ~]$ su - runct
[root@localhost ~]$ snmpwalk -v 2c -c public 10.10.10.12 tcp
[root@localhost ~]$ php /var/www/html/cacti/poller.php # 生成对应的监控图表
[root@localhost ~]$ crontab -e 
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null # 配置 RRDTOOL 的轮训任务 

[root@localhost ~]$ service crond start

exit

三、Nagios 监控服务器

3.1 Nagios 介绍

  Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

3.1.1 老牌监控服务器 Cacti – Nagios 对比

Cacti

  • 收集数据、图形展示
  • 偏重网络流量
  • SNMP、OID、SNMP Agent

Nagios

  • 偏重主机、服务的状态
  • Agent
  • 脚本

nagios的四种监控状态
Nagios可以识别四种状态返回信息。

  • (OK)表示状态正常(绿色显示)
  • (WARNING)表示出现警告(×××),
  • (CRITICAL)表示出现非常严重错误(红色),
  • (UNKNOWN)表示未知错误(深×××),nagios根据插件返回来的值来判断监控对象的状态,并通过web显示出来,以供管理员即时发现故障。

3.1.2 Nagios 监控对象类划分

  1. 命令(Commands)
    “命令”用于定义Nagios如何执行某特定的监控工作。它是基于某特定的Nagios插件定义出的一个抽象层,通常包含一组要执行的操作。

  2. 时段(Time periods)
    “时段”用于定义某“操作”可以执行或不能执行的日期和时间跨度,如工作日内的每天8:00-18:00等;

  3. 联系人和联系人组(Contacts and contact groups)
    “联系人”用于定义某监控事件的通知对象、要通知的信息以及这些接收通知者何时及如何接收通知;一个或多个联系人可以定义为联系人组,而一个联系人也可以属于多个组;

  4. 主机和主机组(host and host groups)
    “主机”通常指某物理主机,其包括此主机相关的通知信息的接收者(即联系人)、如何及何时进行监控的定义。主机也可以分组,即主机组(host groups),一个主机可同时属于多个组;

  5. 服务(Services)
    “服务”通常指某主机上可被监控的特定的功能或资源,其包括此服务相关的通知信息的接收者、如何及何时进行监控等。服务也可以分组,即服务组(Service groups),一个服务可同时属于多个服务组;

3.1.3 Nagios 收集数据架构图

在这里插入图片描述

3.1.4 Nagios 整体框架图

在这里插入图片描述
Nagios 监控实现原理

Nagios 通过NRPE 来远端管理服务

  1. Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。

  2. 通过SSL,check_nrpe 连接远端机子上的NRPE daemon

  3. NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,…etc)

  4. 最后,NRPE 把检测的结果传给主机端的check_nrpe,check_nrpe 再把结果送到Nagios状态队列中。

  5. Nagios 依次读取队列中的信息,再把结果显示出来。


3.2 构建 Nagios 监控

10.10.10.11---- Nagios 服务端
10.10.10.12---- 被监控端

3.2.1 解决安装 Nagios 的依赖关系 (10.10.10.11)

 # 需要注意 *gb* 必须按照视屏的方式进行后安装 
[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘
[root@localhost ~]$ yum -y install httpd gcc glibc glibc-common php php-mysql
[root@localhost ~]$ cd /mnt/cdrom/Packages
[root@localhost ~]$ yum -y install *gd*

3.2.2 创建运行身份 (10.10.10.11)

[root@localhost ~]$ groupadd nagcmd # 创建运行组 
[root@localhost ~]$ useradd -m nagios # 创建运行用户 nagios 
[root@localhost ~]$ usermod -a -G nagcmd nagios # 将 nagios 用户添加到 nagcmd 组中 
[root@localhost ~]$ usermod -a -G nagcmd apache # 将 apache 用户添加到 nagcmd 组中

3.2.3 编译安装 nagios (10.10.10.11)

所需软件百度网盘
链接:https://pan.baidu.com/s/1wfgE3ISFsBddoO2JuMdRiA
提取码:ton9

#上传  nagios.iso
[root@localhost ~]$ mkdir /iso
[root@localhost ~]$ mount -o loop nagios.iso /iso
[root@localhost ~]$ cp -a /iso/* .

[root@localhost ~]$ cd /root
[root@localhost ~]$ tar -zxvf nagios-3.3.1.tar.gz &&  cd nagios # 解压 Nagios 源码包 

[root@localhost ~]$ ./configure --with-command-group=nagcmd --enable-event-broker # 生成 Nagios Makefile 文件 
[root@localhost ~]$ make all 
[root@localhost ~]$ make install 
[root@localhost ~]$ make install-init 
[root@localhost ~]$ make install-config 
[root@localhost ~]$ make install-commandmode 
[root@localhost ~]$ vim /usr/local/nagios/etc/objects/contacts.cfg 
email       nagios@localhost   #这个是默认设置 

[root@localhost ~]$ make install-webconf 
[root@localhost ~]$ htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: #123
Re-type new password: #123
Adding password for user nagiosadmin
 
[root@localhost ~]$ service httpd restart

3.2.4 编译、安装 nagios-plugins (10.10.10.11)

[root@localhost ~]$ cd /root
[root@localhost ~]$ tar zxf nagios-plugins-1.4.14.tar.gz 
[root@localhost ~]$ cd nagios-plugins-1.4.14
[root@localhost ~]$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql --enable-perl-modules 
[root@localhost ~]$ make && make install

3.2.5 配置并启动 Nagios (10.10.10.11)

[root@localhost ~]$ chkconfig --add nagios && chkconfig nagios on 
[root@localhost ~]$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
[root@localhost ~]$ service nagios start 

浏览器输入10.10.10.11/nagios访问,用户名nagiosadmin,密码123

nagios目录解释

[root@localhost ~]$ cd /usr/local/nagios/
bin:Nagios 可执行程序所在目录  nagios  nagiostats  nrpe
etc:配置文件
libexec:Nagios 外部插件所在目录  check_ifstatus     
sbin :Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录

histogram.cgi      showlog.cgi    statuswrl.cgi
share:Nagios网页文件所在的目录 
var:Nagios 日志文件、lock 等文件所在的目录 nagios.log

3.2.6 配置 linux 端监控 (10.10.10.12)

  1. 创建用户
[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘

[root@localhost ~]$ scp root@10.10.10.11:/root/nagios.iso /root
[root@localhost ~]$ mkdir /iso
[root@localhost ~]$ mount -o loop nagios.iso /iso
[root@localhost ~]$ cp -a /iso/* .

[root@localhost ~]$ useradd nagios
  1. 为了安装 nrpe,先安装 nagios-plugins-1.4.14.tar.gz 插件
[root@localhost ~]$ tar zxf nagios-plugins-1.4.14.tar.gz 
[root@localhost ~]$ cd nagios-plugins-1.4.14 
[root@localhost ~]$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios 
[root@localhost ~]$ make all && make install

[root@localhost ~]$ yum -y install openssl openssl-devel
  1. 安装 nrpe
[root@localhost ~]$ cd && tar -zxvf nrpe-2.12.tar.gz 
[root@localhost ~]$ cd nrpe-2.12
[root@localhost ~]$ ./configure --enable-ssl --with-ssl-lib=/usr/lib64/ 
[root@localhost ~]$ make all 
[root@localhost ~]$ make install-plugin 
[root@localhost ~]$ make install-daemon 
[root@localhost ~]$ make install-daemon-config
  1. 配置 nrpe 信息
[root@localhost ~]$ vim /usr/local/nagios/etc/nrpe.cfg 
allowed_hosts=10.10.10.11,127.0.0.1  #添加服务器ip

[root@localhost ~]$ /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  1. 服务端安装nrpe 插件 (10.10.10.11)
[root@localhost ~]$ yum -y install openssl openssl-devel
[root@localhost ~]$ cd && tar -zxvf nrpe-2.12.tar.gz 
[root@localhost ~]$ cd nrpe-2.12
[root@localhost ~]$ ./configure --enable-ssl --with-ssl-lib=/usr/lib64/ 
[root@localhost ~]$ make all 
[root@localhost ~]$ make install-plugin 

  1. commands.cfg 定义外部构件 nrpe (10.10.10.11)
[root@localhost ~]$ vim /usr/local/nagios/etc/objects/commands.cfg
define command{ 
	command_name check_nrpe 
	command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 
}
  1. 定义 linux.cfg
[root@localhost ~]$ cd /usr/local/nagios/etc/objects
[root@localhost ~]$ cp -a windows.cfg linux.cfg
[root@localhost ~]$ sed -i 's/windows/linux/g' linux.cfg
[root@localhost ~]$ vim linux.cfg
define host{
        use             linux-server    ; Inherit default values from a template
        host_name       linux     ; The name we're giving to this host        alias           My linux Server ; A longer name associated with the host
        address         10.10.10.12     ; IP address of the host #(客户端 IP 既被监控的 IP)
        }
 #dG,光标以后全部删除,然后添加如下内容
define service{  #负载检测
	use                   generic-service 
	host_name             linux 
	service_description   check-load 
	check_command         check_nrpe!check_load 
}


define service{ #用户数
	 use                   generic-service 
	 host_name             linux 
	 service_description   check-users 
	 check_command         check_nrpe!check_users 
}

define service{ #总进程
	 use                   generic-service 
	 host_name             linux 
	 service_description   otal_procs 
	 check_command         check_nrpe!check_total_procs 
 }

[root@localhost ~]$ vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
cfg_file=/usr/local/nagios/etc/objects/linux.cfg


#检测配置有没有错误
[root@localhost ~]$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

[root@localhost ~]$ service nagios restart

3.2.7 配置 windos 端监控

1)被监控端安装 NSClient+±0.3.8-Win32.msi
2)安装完成后修改配置文件 NSC.ini 把需要的库都打开
3)在监控服务器上修改 nagios 配置文件 nagios.cfg

[root@localhost ~]$ vim /usr/local/nagios/objects/windows.cfg
define host{ 
	use                windows-server ; Inherit default values from a template 
	host_name          winserver ; The name we're giving to this host 
	alias              My Windows Server ; A longer name associated with the host 
	address            10.10.10.99 ; 你主机的 IP
 }
[root@localhost ~]$ vim //usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg


[root@localhost ~]$ service nagios restart


四、Zabbix 监控服务器 【常用】

使用的最多

4.1 Zabbix 介绍

4.1.1 Zabbix 是什么?

  zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 ) zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent


4.1.2 Zabbix 工作架构

常用组件

  • zabbix agent:部署在被监控主机上,负责收集被监控主机的数据,并将数据发送给zabbix server。
  • zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。
  • zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。
  • zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。
  • zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

在这里插入图片描述
Zabbix监控原理:

  Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)


4.1.3 Zabbix 进程构成

zabbix 安装完成后会产生 5 个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、 zabbix_serverzabbix_java_gateway 是可选,这个需要另外安装

  1. zabbix_agentd: 部署在被监控主机上,客户端守护进程,此进程收集客户端数据,例如 cpu 负载、内存、硬盘使用情况 等
  2. zabbix_get: zabbix 工具,单独使用的命令,通常用于排错
  3. zabbix_sender: zabbix 工具,用于发送数据给 server 或者 proxy ,在脚本完成之后使用 sender 主 动将数据提交
  4. zabbix_server: zabbix 服务端守护进程,所有的数据都是被提交或主动提交到 zabbix_server 端
  5. zabbix_proxy: zabbix 代理守护进程。功能类似 server,唯一不同的是它只是一个中转站,它需要 把收集到的数据提交/被提交到 server 里
  6. zabbix_java_gateway: zabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是 只用于 Java 方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终 会给到 server 或者 proxy

4.1.4 Zabbix 硬件需求

在这里插入图片描述
Zabbix监控概念

主机(host):                被监控的网络设备,可以写IP或者DNS;
主机组(host group):        主机组用于管理主机,可以批量设置权限;
监控项(item):              具体监控项,items值由独立的keys进行识别;
触发器(trigger):           为某个items设置触发器,达到触发器会执行action动作;
事件(event):               例如达到某个触发器,称之为一个事件;
动作(action):              对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation):       发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。
媒介(media):               发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification):        通过设置的媒介向用户发送的有关某事件的信息;
远程命令                      达到触发器,可以在被监控端执行命令;
模板(template):            可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario)      用于检测web站点可用性,监控HTTP关键词;
web前端(frontend):         Zabbix的web接口;
图形(graph)                 监控图像;
屏幕(screens)               屏幕显示;
幻灯(slide show)            幻灯显示;


4.2 构建 Zabbix 监控服务器

环境构建

操作系统
centos7,最小化安装

网络类型: 两个网卡,一个仅主机模式,一个nat模式
在这里插入图片描述
【编辑】----【虚拟网络编辑器】----修改仅主机的网卡。关闭DHCP服务,子网改成10.10.10.0
在这里插入图片描述

#第一块网卡
[root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  #修改此处,改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=48f11f35-eb9f-40de-92f8-85492b0258c5
DEVICE=ens33
ONBOOT=yes     #开机自启,改为yes 
IPADDR=10.10.10.11   #ip地址
NETMASK=255.255.255.0   #子网掩码



#第二块网卡
[root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  #修改此处,改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=48f11f35-eb9f-40de-92f8-85492b0258c5
DEVICE=ens34
ONBOOT=yes     #开机自启,改为yes


[root@localhost ~]$ yum -y install net-tools

关闭防火墙

[root@localhost ~]$ systemctl stop firewalld && systemctl disable firewalld

关闭selinux

[root@localhost ~]$ setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]$ getenforce

设置yum源可以参考之前的文章
https://blog.csdn.net/w918589859/article/details/109191537

安装常用工具

[root@localhost ~]$ yum -y install lrzsz vim gcc gcc-c++

保存快照

4.2.1 安装 LAMP 环境

zabbix需要有lamp环境

#安装mariadb http php,数据库centos7是mariadb,和mysql一样的
[root@localhost ~]$ yum -y install mariadb mariadb-server httpd php php-mysql 

[root@localhost ~]$ systemctl start httpd && systemctl enable httpd 
[root@localhost ~]$ systemctl start mariadb && systemctl enable mariadb

#mariadb不会初始化数据库,这里需要手动初始化一下
[root@localhost ~]$ mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #mysql的root密码,还没设置,直接回车即可
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #是否设置root密码,输入y是
New password: root  #输入密码
Re-enter new password: root #再次数据密码,两次需要一致
Password updated successfully!
Reloading privilege tables..
 ... Success!

....

Remove anonymous users? [Y/n] y #移除匿名用户,输入y是
....

Disallow root login remotely? [Y/n] y #拒绝远程登陆,输入y是
....

Remove test database and access to it? [Y/n] y #移除测试数据库,输入y是
....

Reload privilege tables now? [Y/n] y #刷新权限表,输入y是
....


All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!


==========================================


[root@localhost ~]$ mysql -uroot -proot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 




4.2.2 安装 Zabbix 程序 (服务端)

#安装的时候显示安装进度,安装zabbix官网yum源安装包
[root@localhost ~]$ rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

#导入密钥
[root@localhost ~]$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

#安装zabbix连接数据库,web页面,agent部署在被监控的主机上
#被监控端只需要部署agent即可
[root@localhost ~]$ yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent



初始化数据库(zabbix-server端操作)

[root@localhost ~]$ mysql -uroot -proot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)


#导入zabbix初始化数据
#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix -e "use zabbix;"
#zcat,先解压,在通过cat打开
[root@localhost ~]$ cd /usr/share/doc/zabbix-server-mysql-3.2.11
[root@localhost ~]$ zcat create.sql.gz | mysql -uroot -p zabbix

#查看表
[root@localhost ~]$ mysql -uroot -proot << EOF
use zabbix;
show tables;
EOF

配置zabbix_server的配置文件

[root@localhost ~]$ vim /etc/zabbix/zabbix_server.conf
DBHost=localhost #连接数据库地址
DBName=zabbix #连接数据库名
DBUser=zabbix #连接数据库用户名
DBPassword=zabbix #连接数据库用户密码

[root@localhost ~]$ systemctl start zabbix-server && systemctl enable zabbix-server 

编辑Zabbix前端的PHP配置,zabbix_web
sed -i “s/;date.timezone =/date.timezone = Asia/Shanghai/g” /etc/php.ini

[root@localhost ~]$ vim /etc/httpd/conf.d/zabbix.conf
    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        php_value date.timezone Asia/Shanghai #修改为上海的时区
    </IfModule>
 
 [root@localhost ~]$ systemctl restart httpd

调整时间同步

[root@localhost ~]$ yum -y install ntpdate 
[root@localhost ~]$ ntpdate cn.pool.ntp.org

修改apached的配置文件设置访问路径

[root@localhost ~]$ cd /usr/share/zabbix/
[root@localhost ~]$ vim /etc/httpd/conf/httpd.conf
DocumentRoot "/usr/share/zabbix/" #修改为/usr/share/zabbix/ 


[root@localhost ~]$ systemctl restart httpd

浏览器输入10.10.10.11(zabbix服务端的ip)或者10.10.10.11/zabbix,就能访问


4.2.2 通过web页面进行zabbix安装

在这里插入图片描述


检测的php的相关依赖,点击下一步

在这里插入图片描述


配置数据库相关信息

在这里插入图片描述


zabbix服务器端的相关信息,默认就行,下一步

在这里插入图片描述


输出了刚才设置的信息,直接点下一步

在这里插入图片描述


安装成功
在这里插入图片描述

然后就跳到登录界面了,用户名是Admin,密码是zabbix
在这里插入图片描述

server web展示显示中文

在这里插入图片描述


4.2.3 添加本机监控 (被监控端)

#修改被监控端的配置文件,agent前面已经安装
[root@localhost ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.10.10.11 #zabbix-server的ip
# ListenPort=10050 默认监听段口是tcp10050

ServerActive=10.10.10.11 #zabbix-server的ip

Hostname=10.10.10.11 #本机的ip地址,或者可解析的主机名

[root@localhost ~]$ systemctl start zabbix-agent && systemctl enable zabbix-agent

[root@localhost ~]$ netstat -anpt | grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      13538/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      13538/zabbix_agentd 



=================================================================

#如果需要监控的主机比较多,可以使用ansible部署agent
---
 - hosts: test
   remote_user: root
   gather_facts: False
   tasks:
   - name: get localhost ip  #获取ip
     shell : ip addr show ens33|grep 'inet\b'|awk '{print $2}'|awk -F '/' '{print $1}'   
     register : info
   - name: rpm1
     shell: "rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.4-2.el7.x86_64.rpm"
   - name: yum_zabbix
     shell: "yum install -y zabbix-agent zabbix-get"
   - name: update_Server
     lineinfile:
       path: /etc/zabbix/zabbix_agentd.conf
       regexp: '^Server='
       line: Server=10.3.118.200 #zabbix-server的ip
   - name: update_ServerActive
     lineinfile:
       path: /etc/zabbix/zabbix_agentd.conf
       regexp: '^ServerActive='
       line: ServerActive=10.3.118.200 #zabbix-server的ip
   - name: update_hostname
     lineinfile:
       path: /etc/zabbix/zabbix_agentd.conf
       regexp: '^Hostname='
       line: Hostname={{info.stdout}}  #获取上面info变量的信息
       #Hostname=10.10.10.11 #本机的ip地址,或者可解析的主机名

4.2.4 在web页面添加监控

点击配置—主机,删除这个停用的监控,自己进行配置
在这里插入图片描述


点击创建主机

在这里插入图片描述


下面是主机的添加过程

首先创建一个主机组
配置-----> 主机群组-----> 创建主机群组(web页面右上角)-----> 添加组名,如:Zabbix agents(在弹出框中输入组名)----->添加

添加一个主机
配置 ----->主机 -----> 右上角在群组那里选择Zabbix agents-----> 点击创建主机

在这里插入图片描述


给此主机引用一条模板,模板定义了监控那些选项数据

在这里插入图片描述

然后点击模板弹框下面的选择,这里就会添加上刚才勾选的,然后点击添加才能添加上

在这里插入图片描述

然后返回主机添加页面,点击下面的添加即可
在这里插入图片描述

下面是添加完的效果图

在这里插入图片描述

最后看下图形效果
检测中-----> 图形----->然后就是选择要看什么了,如下图:
在这里插入图片描述
由上图可以看出,所有的汉字都是白框没有显示出来。


修改中文乱码问题

按Win+R键,输入fonts回车,将windows端的msyh.ttf字体文件(随便一个字体都可以)上传到 zabbix-server 服务器端的/var/www/html/zabbix/fonts目录中。
在这里插入图片描述
在这里插入图片描述

然后字体上传到zabbix-server服务器

#把上传的字体放到zabbix的fonts目录下
[root@localhost ~]$ mv msyh.ttc /usr/share/zabbix/fonts/
[root@localhost ~]$ cd /usr/share/zabbix/fonts/

#修改ttf的后缀
[root@localhost ~]$ cd /usr/share/zabbix/fonts/
[root@localhost ~]$ mv msyh.ttc msyh.ttf && chmod a+x msyh.ttf

#修改php配置文件
[root@localhost ~]$ vim /usr/share/zabbix/include/defines.inc.php
#修改 zabbix php 页面配置,将'graphfont' 修改为 msyh
define('ZBX_GRAPH_FONT_NAME',           'msyh'); // font file nam

刷新页面就会正常显示中文
在这里插入图片描述

4.3 添加监控主机 / 自动发现

4.3.1 添加监控主机

监控另外一台linux服务器(10.10.10.12) 本次使用的是centos6系统,选择对应的版本,centos7源码包也提供了

所需软件百度网盘
链接:https://pan.baidu.com/s/1wfgE3ISFsBddoO2JuMdRiA
提取码:ton9

#上传zabbix-agent的rpm包,进行安装
[root@localhost ~]$ yum -y install zabbix-agent-3.2.1-1.el6.x86_64.rpm 

[root@localhost ~]$ service httpd start && chkconfig httpd on
[root@localhost ~]$ echo "1111111" >> /var/www/html/index.html


==================================================


#修改被监控端的配置文件
[root@localhost ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.10.10.11 #zabbix-server的ip
# ListenPort=10050 默认监听段口是tcp10050
ServerActive=10.10.10.11 #zabbix-server的ip
Hostname=10.10.10.12 #本机的ip地址,或者可解析的主机名



[root@localhost ~]$ service zabbix-agent start && chkconfig zabbix-agent on

然后在web页面添加一个主机,步骤和 4.2.4 章节一致
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.3.2 配置自动发现 (批量添加监控节点)

如果服务器比较多,一台一台在web页面配置比较麻烦,接下来配置自动发现规则,自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法

4.3.2.1 服务器初始化

两台centos6服务器
10.10.10.13--------agent(被监控端)
10.10.10.14--------agent(被监控端)

两台agent都要执行以下初始化操作

#从别的主机复制zabbix-agent的rpm包,进行安装
[root@localhost ~]$ scp root@10.10.10.12:/root/zabbix-agent-3.2.1-1.el6.x86_64.rpm /root
[root@localhost ~]$ yum -y install zabbix-agent-3.2.1-1.el6.x86_64.rpm 

[root@localhost ~]$ service httpd start && chkconfig httpd on
[root@localhost ~]$ echo "1111111" >> /var/www/html/index.html


==================================================


#修改被监控端的配置文件
[root@localhost ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.10.10.11 #zabbix-server的ip
# ListenPort=10050 默认监听段口是tcp10050
ServerActive=10.10.10.11 #zabbix-server的ip
Hostname=10.10.10.13 #本机的ip地址,或者可解析的主机名
#Hostname=10.10.10.14 #另一台是14



[root@localhost ~]$ service zabbix-agent start && chkconfig zabbix-agent on

配置自动发现步骤
在web页面点击【配置】------> 【自动发现】----->【创建发现规则】添加一个自动发现规则,定时扫描一个网段的机器有没有在线,然后在 【配置】------> 【动作】----->【事件源】选择自动发现的动作,告诉他,一旦自动发现 发现了一台机器后,就添加到主机监控里

4.3.2.2 先配置动作

配置】------> 【动作】----->【事件源】选择自动发现的动作,然后点击【创建动作
在这里插入图片描述

接下来就会跳转动作配置页面
在这里插入图片描述

然后点击操作,添加操作细节
在这里插入图片描述

最后点击【添加
在这里插入图片描述



4.3.2.3 配置自动发现规则

在web页面点击【配置】------> 【自动发现】----->【创建发现规则】添加一个自动发现规则

在这里插入图片描述

接下来就会跳转自动发现规则配置页面
在这里插入图片描述
在这里插入图片描述


然后点击【监测中】------> 【自动发现】会发现两台主机已经被自动发现
在这里插入图片描述


点击【**配置**】------> 【**主机**】会发现两台主机已经被自动添加上,以后再有10.10.10.13-100这个网段的ip会被自动添加

在这里插入图片描述

4.4 Zabbix 监控 Nginx 并发(自定义监控项、模板)

把10.10.10.12服务从zabbix-web配置页面删掉,然后停了这台主机的httpd服务

使用之前10.10.10.12服务器操作

4.4.1 源码编译安装 Nginx 服务器并开启状态统计模块

源码编译安装 Nginx 服务器

[root@localhost ~]$ service httpd stop

#上传nginx源码包
[root@localhost ~]$ tar -zxvf nginx-1.2.6.tar.gz && cd nginx-1.2.6

#安装相关依赖
[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #使用了本地yum源
[root@localhost ~]$ yum -y install pcre pcre-devel zlib zlib-devel

[root@localhost ~]$ useradd -s /sbin/nologin -M nginx
[root@localhost ~]$ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@localhost ~]$ make && make install #编译安装
[root@localhost ~]$ echo "123" >> /usr/local/nginx/html/index.html

[root@localhost ~]$ /usr/local/nginx/sbin/nginx #启动nginx

开启健康检测功能

[root@localhost ~]$ vim /usr/local/nginx/conf/nginx.conf
...
server {

        location / {
            root   html;
            index  index.html index.htm;
        }
        #添加如下内容
        location /nginx-status { #开启健康统计
                stub_status on;
        }

.......
}
.....

#检测配置文件
[root@localhost ~]$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

#重载
[root@localhost ~]$ kill -HUP $( cat /usr/local/nginx/logs/nginx.pid)

浏览器输入服务ip地址/nginx-status
在这里插入图片描述

4.4.2 编写 Nginx 监控脚本,在被监控端

[root@localhost ~]$ vim nginx-status.sh
#!/bin/bash 
HOST="127.0.0.1" 
PORT="80"

 # 检测 nginx 进程是否存在
function ping { 
  	/sbin/pidof nginx | wc -l 
}
  
# 检测 nginx 性能 
function active {
 	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Active' | awk '{print $NF}' 
} 

function reading { 
	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' 
}

function writing { 
	/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
 
function waiting { 
	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}' 
}

function accepts { 
	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $1}' 
}

function handled {
 	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $2}' 
}

function requests { 
	/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

# 执行 function 
$1


#添加执行权限
[root@localhost ~]$ chmod a+x nginx-status.sh
[root@localhost ~]$ bash nginx-status.sh active

[root@localhost ~]$ mv nginx-status.sh /etc/zabbix/zabbix_agentd.d/





#10.10.10.13执行操作
[root@localhost ~]$ while 2>1
do
curl 10.10.10.12
done

将自定义的 UserParameter 加入配置文件,然后重启 agentd

[root@localhost ~]$ vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 #是否开启自定义脚本,改为1
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh $1 #添加这一行

[root@localhost ~]$ service zabbix-agent restart

zabbix_get 获取数据 (10.10.10.11)
zabbix-server端操作

[root@localhost ~]$ yum -y install zabbix-get

[root@localhost ~]$ zabbix_get -s 10.10.10.12 -k 'nginx.status[requests]' 
170580

[root@localhost ~]$ zabbix_get -s 10.10.10.12 -k 'nginx.status[ping]' 
1

4.4.3 导入模板,配置nginx监控主机

然后在web配置页面,点击【 配置 】-----> 【 模板 】------>【 导入

模板文件百度网盘
链接:https://pan.baidu.com/s/1QI21w149bcucJLfTU9onpA
提取码:jvpu

在这里插入图片描述

在这里插入图片描述

然后配置nginx主机监控

配置】-------->【主机】--------->【创建主机

在这里插入图片描述

然后添加模板

在这里插入图片描述

发现刚才添加的已经生效
在这里插入图片描述

4.5 web场景 / 组合图

web场景用于模拟客户端访问,检测服务器是否还正常

组合图把重要的参数放到一张图展示

4.5.1 web场景

创建web场景

配置】-------->【主机】--------->【nginx服务器

在这里插入图片描述


然后点击【应用集
在这里插入图片描述


创建一个应用集

在这里插入图片描述

点击【添加
在这里插入图片描述

http-code有了以后,点击【web场景

在这里插入图片描述


创建web场景
在这里插入图片描述
在这里插入图片描述


选择【步骤】,点击【添加
在这里插入图片描述

#nginx服务器添加一个测试页面10.10.10.12
[root@localhost ~]$ echo "test" >> /usr/local/nginx/html/test.html

会弹出web方案步骤页面
在这里插入图片描述

最后点击【场景】,点击下面的【添加】,场景构建完成
在这里插入图片描述

场景只会收集http-code,并不会报警,所以还要创建触发器

配置】-------->【主机】--------->选择这个nginx服务器,然后点击【触发器

在这里插入图片描述


点击【创建触发器

在这里插入图片描述

会跳转到触发器配置页面
在这里插入图片描述

#删除测试页面 10.10.10.12
[root@localhost ~]$ rm -f /usr/local/nginx/html/test.html

[root@localhost ~]$ echo "test" >> /usr/local/nginx/html/test.html

等一会 会发现,有一条报警的信息
在这里插入图片描述

4.5.2 组合图

【检测中】------> 【聚合图形】------->【创建聚合图形】

在这里插入图片描述


会跳转到聚合图形配置页面

在这里插入图片描述

点击刚才创建的聚合图形

在这里插入图片描述

点击【编辑聚合图形

在这里插入图片描述

点击【更改
在这里插入图片描述

添加一个图形
在这里插入图片描述


点击+号,就会又多一列,然后点击更改
在这里插入图片描述

选择时钟,显示当前时间

在这里插入图片描述


依次类推,可以选择多个图形
在这里插入图片描述

4.6 Zabbix 联合钉钉实现终端报警

4.6.1 报警设置 (web页面)

点击这个小人,正在发送的消息,设置报警信息

在这里插入图片描述

4.6.2 钉钉实现终端报警

4.6.2.1 添加钉钉机器人

登陆钉钉,创建一个群聊,最少两个人,点击群设置,点击群机器人,点击自定义,添加一个机器人,会有一个webhook,复制下来
添加机器人步骤

详细请看这篇文章
https://blog.csdn.net/qq_44895681/article/details/103125523

安全模式选择关键词
监控报警
服务器
告警

zabbix-server服务端操作

[root@localhost ~]$ vim tocken.sh
#!/bin/bash
to=$1  #给谁
subject=$2  #标题
text=$3  #内容
curl 'https://oapi.dingtalk.com/robot/send?access_token=758cefbfde6108910a29fad7e35edd9ff76255df5ac16871ad7cf03b2262a7fc' \ #改成自己钉钉的webhook
	-H 'Content-Type: application/json' \
	-d '
	{"msgtype": "text",
		"text": {
		"content": "'"$text"'"
	},
	"at":{
		"atMobiles": [ 
			"'"$1"'" 
		],
		"isAtAll": false
		}
	}'
[root@localhost ~]$ chmod a+x tocken.sh
[root@localhost ~]$ chown zabbix.zabbix tocken.sh

[root@localhost ~]$ ./tocken.sh 1 2 告警
#由于前面的安全模式设置了内容,所以必须有告警内容

把tocken脚本放到/usr/lib/zabbix/alertscripts/目录下

[root@localhost ~]$ cd /usr/lib/zabbix/alertscripts/
[root@localhost ~]$ mv /root/tocken.sh .
4.6.2.2 web页面配置

1. 创建媒体类型
配置】------> 【报警媒介类型】----->,然后点击【创建媒介类型

在这里插入图片描述

2. 添加监控方式

监控方式添加参数

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

在这里插入图片描述


3. 创建报警动作
配置】------> 【动作】----->【触发器】,然后点击【创建动作
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/71df88e6018e4ec60ed3853221322686.png

接下来就会跳转动作配置页面
在这里插入图片描述

4.错误报警信息参数

标题(默认接收人)改为:
故障{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}

点击操作,添加操作细节
在这里插入图片描述

5. 错误恢复报警信息设置

点击恢复操作,添加操作细节

标题(默认接收人)改为:
恢复{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}

在这里插入图片描述

操作:
默认标题:

  服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}

==================================================================


恢复操作:
默认标题:

  服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

消息内容:

告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}

========================================================

更新操作:
默认标题:

  服务器:{HOST.NAME}: 报警确认

消息内容:

  确认人:{USER.FULLNAME}
  时间:{ACK.DATE} {ACK.TIME}
  确认信息如下:
  "{ACK.MESSAGE}"
  问题服务器IP:{HOSTNAME1}
  问题ID:{EVENT.ID}
  当前的问题是: {TRIGGER.NAME}

6. 给用户绑定媒体

管理】------>【用户】选择Admin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试
断掉10.10.10.12(nginx服务)的网卡
在这里插入图片描述
等一会,会发现钉钉已经收到消息
在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值