集群监控

article/2025/9/16 1:13:15

文章目录

  • 一、监控简介
    • 1.1 重要性
    • 1.2 常见监控平台
      • 1.2.1 Cacti
      • 1.2.2 Nagios
      • 1.2.3 Zabbix
  • 二、Cacti 监控服务器
    • 2.1 组件构成
      • 2.1.1 SNMP
      • 2.1.2 RRDtool
      • 2.1.3 工作架构
    • 2.2 Cacti 监控组件安装配置
      • 2.2.1 安装环境(10.10.10.11)
      • 2.2.2 安装 rrdtool (10.10.10.11)
      • 2.2.3 部署 cacti,设置数据库连接 (10.10.10.11)
      • 2.2.4 客户端配置 (10.10.10.12)
      • 2.2.5 收集数据 (10.10.10.11)
  • 三、Nagios 监控服务器
    • 3.1 Nagios 介绍
      • 3.1.1 老牌监控服务器 Cacti – Nagios 对比
      • 3.1.2 Nagios 监控对象类划分
      • 3.1.3 Nagios 收集数据架构图
      • 3.1.4 Nagios 整体框架图
    • 3.2 构建 Nagios 监控
      • 3.2.1 解决安装 Nagios 的依赖关系 (10.10.10.11)
      • 3.2.2 创建运行身份 (10.10.10.11)
      • 3.2.3 编译安装 nagios (10.10.10.11)
      • 3.2.4 编译、安装 nagios-plugins (10.10.10.11)
      • 3.2.5 配置并启动 Nagios (10.10.10.11)
      • 3.2.6 配置 linux 端监控 (10.10.10.12)
      • 3.2.7 配置 windos 端监控
  • 四、Zabbix 监控服务器 【常用】
    • 4.1 Zabbix 介绍
      • 4.1.1 Zabbix 是什么?
      • 4.1.2 Zabbix 工作架构
      • 4.1.3 Zabbix 进程构成
      • 4.1.4 Zabbix 硬件需求
    • 4.2 构建 Zabbix 监控服务器
      • 环境构建
      • 4.2.1 安装 LAMP 环境
      • 4.2.2 安装 Zabbix 程序 (服务端)
      • 4.2.2 通过web页面进行zabbix安装
      • 4.2.3 添加本机监控 (被监控端)
      • 4.2.4 在web页面添加监控
        • 修改中文乱码问题
    • 4.3 添加监控主机 / 自动发现
      • 4.3.1 添加监控主机
      • 4.3.2 配置自动发现 (批量添加监控节点)
        • 4.3.2.1 服务器初始化
        • 4.3.2.2 先配置动作
        • 4.3.2.3 配置自动发现规则
    • 4.4 Zabbix 监控 Nginx 并发(自定义监控项、模板)
      • 4.4.1 源码编译安装 Nginx 服务器并开启状态统计模块
      • 4.4.2 编写 Nginx 监控脚本,在被监控端
      • 4.4.3 导入模板,配置nginx监控主机
    • 4.5 web场景 / 组合图
      • 4.5.1 web场景
      • 4.5.2 组合图
    • 4.6 Zabbix 联合钉钉实现终端报警
      • 4.6.1 报警设置 (web页面)
      • 4.6.2 钉钉实现终端报警
        • 4.6.2.1 添加钉钉机器人
        • 4.6.2.2 web页面配置

一、监控简介

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 noneview 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 startexit

三、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 templatehost_name       linux     ; The name we're giving to this host        alias           My linux Server ; A longer name associated with the hostaddress         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_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS 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 ServerCopyright (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 ServerCopyright (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 300php_value memory_limit 128Mphp_value post_max_size 16Mphp_value upload_max_filesize 2Mphp_value max_input_time 300php_value always_populate_raw_post_data -1php_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 默认监听段口是tcp10050ServerActive=10.10.10.11 #zabbix-server的ipHostname=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: testremote_user: rootgather_facts: Falsetasks:- name: get localhost ip  #获取ipshell : ip addr show ens33|grep 'inet\b'|awk '{print $2}'|awk -F '/' '{print $1}'   register : info- name: rpm1shell: "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_zabbixshell: "yum install -y zabbix-agent zabbix-get"- name: update_Serverlineinfile:path: /etc/zabbix/zabbix_agentd.confregexp: '^Server='line: Server=10.3.118.200 #zabbix-server的ip- name: update_ServerActivelineinfile:path: /etc/zabbix/zabbix_agentd.confregexp: '^ServerActive='line: ServerActive=10.3.118.200 #zabbix-server的ip- name: update_hostnamelineinfile:path: /etc/zabbix/zabbix_agentd.confregexp: '^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://img-blog.csdnimg.cn/20210110175416406.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3c5MTg1ODk4NTk=,size_16,color_FFFFFF,t_70

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

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服务)的网卡
在这里插入图片描述
等一会,会发现钉钉已经收到消息
在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/KAxlWhgM.shtml

相关文章

群集技术:三款主流服务器集群软件

1、ROSE HA 服务器集群软件 在双机热备的架构中&#xff0c;除了要考虑切换时间外&#xff0c;要根据每个系统的作业环境&#xff0c;包括网路系统是单网或是双 网&#xff0c;数据库的安装和作业内容及用户端的设备是经由广域网路、区域网路接入不同用户有不同的需求&#x…

常见集群(Cluster)软件和技术解析

集群就是通过软件将一组服务器作为一个整体向客户提供资源。这些单个的服务器就是集群的节点。当对外提供资源的节点故障后&#xff0c;集群中其余的节点能够将资源接管起来&#xff0c;继续对客户提供资源。 集群技术的核心就是资源访问控制。由于集群中所有节点都可以访问集群…

【集群】集群的概念(相关知识)、常用工具/算法、常见集群

文章目录 前言一、集群架构1.1 负载调度器1.1.1 常用调度算法1.1.2 LVS模块 1.2 节点服务器1.3 共享储存1.3.1 NFS共享储存1.3.2 NAS存储设备 二、集群2.1 负载均衡2.1.1 定义2.1.2 负载均衡搭建 2.2 高可用2.2.1 定义2.2.2 高可用集群搭建 2.3 高性能运算群集 三、ipvsadm工具…

集群测试工具

DFSIO测试集群I/O性能 DFSIO 用法 hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.X-tests.jar TestDFSIO 15/05/22 19:50:22 INFO fs.TestDFSIO: TestDFSIO.1.8 Missing arguments. Usage: TestDFSIO [genericOptions] -read […

集群监视软件Ganglia

什么是ganglia Ganglia监控软件主要是用来监控系统性能的软件&#xff0c;如&#xff1a;cpu 、mem、硬盘利用率&#xff0c; I/O负载、网络流量情况等&#xff0c;通过曲线很容易见到每个节点的工作状态&#xff0c;对合理调整、分配系统资源&#xff0c;提高系统整体性能起到…

Linux集群管理软件clustershell

Linux集群管理软件clustershell 1.简介 机房有大概百台的服务器需要管理&#xff0c;加上需要搭建Hadoop以及Spark集群等&#xff0c;因此&#xff0c;一个轻量级的集群管理软件就显得非常有必要了。经过一段时间的了解以及尝试&#xff0c;最终选择了clustershell这个软件&…

计算机集群

计算机集群简称集群是一种计算机系统&#xff0c; 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上&#xff0c;他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点&#xff0c;通常通过局域网连接&#xff0c;但也有…

HAProxy集群与常见的Web集群软件调度器对比

目录 一.常见的Web集群调度器 二.HAProxy基本介绍 1.HAProxy是什么&#xff1f; 2.HAProxy的特性 3.HAProxy常用的8种负载均衡调度算法 3.1 轮询&#xff1a;RR&#xff08;Round Robin&#xff09; 3.2 最小连接数&#xff1a;LC&#xff08;Least Connections&#xf…

[Linux基础与服务管理——常用集群高可用软件 Keepalived]

1.Keepalived 简介 Keepalived是Linux下的一个免费的、轻量级的高可用解决方案。是一个由C语言编写的路由软件&#xff0c;主要目标是为Linux系统和基于Linux的基础架构提供简单而强大的负载平衡和高可用性设。Keepalived实现了一组检查器&#xff0c;以根据其健康状况动态地和…

高性能集群软件keepalived

背景 网络的飞速发展&#xff0c;给网络带宽和服务器性能带来了巨大的挑战&#xff0c;基于互联网的应用系统越来越多地瓶颈出现在服务器端&#xff0c;这就对服务器提出了更高的要求&#xff0c;来保证服务的持续性。 集群简介 定义&#xff1a;集群是一组协同工作的服务集合…

集群分为几种,用的软件分别是什么?

集群分为几种&#xff0c;用的软件分别是什么? 补充&#xff1a;涉及的组件 1.1、apache 跨平台的网页服务器&#xff0c;主要使用它做静态资源服务器&#xff0c;也可以做代理服务器转发请求 1.2、ngnix 高性能的 HTTP和反向代理服务器&#xff0c;ngnix处理能力相当于apache…

Linux下的5款主流高可用集群软件介绍

Linux集群主要分成三大类:高可用集群(High Availability Cluster)、负载均衡集群(Load Balance Cluster)、科学计算集群(High Performance Computing Cluster)。 其中高可用集群具有保障应用程序持续提供服务的能力,可以将因软、硬件、人为造成的故障对业务的影响降低到最小…

Horizon Daas 桌面报错:desktop agent通信错误

一、故障描述 上述错误是因无法解析来自身份验证错误响应中的错误时&#xff0c;会报出。这往往时由于horizon client与TA&#xff0c;view agent之间的通信中断造成的。造成在desktone.log日志里可看到相关warning或error&#xff0c;如下所示&#xff1a; 二、分析处理 1、…

一文看懂数据服务DaaS

数据是国家的&#xff0c;金融是国家的。朕不给&#xff0c;你不能要。 &#xff08;1&#xff09;中国数据服务 一、数据工具 像云计算厂商搞的大数据平台&#xff0c;就是这个定位。它们纯搞产品&#xff0c;做好品牌&#xff0c;做好合作伙伴招募&#xff0c;由合作伙伴去做…

IaaS、PaaS、SaaS、DaaS的区别与联系

按照服务划分&#xff0c;云计算可以分为IaaS、PaaS、SaaS、DaaS四个层次。 IaaS&#xff08;Infrastructure as a Service&#xff0c;基础架构即服务&#xff09;是基础层。在这一层&#xff0c;通过虚拟化、动态化将IT基础资源&#xff08;计算、网络、存储&#xff09;聚合…

Horizon Daas浮动桌面无法删除解决

Horizon Daas浮动桌面无法删除解决 【问题描述】 某次执行对桌面删除重新分配操作&#xff0c;发现桌面功能下拉列表里&#xff0c;未出现删除选项&#xff0c;【浮动桌面】无法删除&#xff0c;即无法释放所占资源。 【问题分析】 经检查发现&#xff0c;原来此类桌面为“…

关于Daas平台无法登录的故障处理

关于Daas平台无法登录的故障处理 【事件描述】 某天对Daas桌面环境中AD域控服务器进行挂起&#xff0c;执行克隆备份操作后&#xff0c;再次开启AD域控后&#xff0c;登录短少系统报错&#xff1a;身份验证失败&#xff0c;无法登录。如下图所示&#xff1a; 【故障分析及处…

daas 数据即服务_万物物联时代,数据即服务

关于DAAS的概念 1.未来万物互联&#xff0c;数据就是服务 如何利用移动通信将万物互联&#xff0c;彻底实现智能化&#xff0c;是当前发展的愿景。在这个愿景之下&#xff0c;我们希望能够建立统一的框架&#xff0c;把人的通讯问题、万物互联的问题囊括其中&#xff0c;以超高…

跑出了几个明星厂商,DaaS赛道要火?

图片来源于Unsplash 文丨螳螂观察 作者丨陈淼 从今年的形势来判断&#xff0c;DaaS&#xff08;数据即服务&#xff09;赛道看来要火。 相关的信号有两个。 6月末&#xff0c;阿里成立了一家子公司&#xff0c;瓴羊智能服务公司。根据介绍&#xff0c;这家公司将把阿里巴巴…

IaaS、PaaS、SaaS、DaaS的区别

1.IaaS IaaS是Infrastructure as a server的缩写&#xff0c;意思是基础设施即服务。又云端公司把IT环境的基础设施建设好&#xff0c;然后直接对外出租硬件服务器或者虚拟机。消费者可以利用所有计算基础设施&#xff0c;包括处理CPU、内存、存储、网络和其它基本的计算资源&…