菜单
本页目录

1 zabbix监控

一:概述

zabbix监控结合了,cacti和nagios的优势

1、拓展:

cacti:以流量展示为主
            数据收集:SNMP,简单网络管理协议
            数据展示:RRDtool
                    前端:可以通过TCL、shell、python	这种脚本语言在命令行中调用,实现图片绘制
                    后端:时序数据库---监控
nagios:以服务状态为主
            数据收集:脚本,插件实现
            数据展示:
                    ok、warning、critical、pending、unknow
ntop:插件(可将cacti、nagios信息结果结合展示)
zabbix:基于**web界面**,**提供分布式**,**系统监控以及网络监视功能**,**企业级开源解决方案**(基于GPL v2)
        GPL:基于GPL软件二次开发,得到的结果必须基于GPL开运
        GPL v2:二次开发后,可基于开源收费
                        W、F、J、Q

2、zabbix 工作架构

image-20221213203729440

3、zabbix 安装完成后,会产生5个程序

zabbix-agentd:		客户端守护进程,收集客户端数据(CPU负载、内存、硬盘等)
zabbix-get:			   zabbix工具,单独使用的命令,通常用于排错(类似于cacti的snmpwalk)
zabbix-sender:		 zabbix主动收集方案
zabbix-server:		  zabbix服务端
zabbix-proxy:		   zabbix的代理守护进程
zabbix-java-gateway:	使zabbix能运行JVM

zabbix以被动监控为主,主动监控为辅:

​ 主动模式:client主动发送

​ 被动模式:server请求,client发送

image-20221213211434219

4、zabbix性能:

2个CPU、8G内存、支持监控主机 >10000

提升性能:增加磁盘的 I/O (机械硬盘---》固态)

4、虚拟机安装需要注意的问题:

    CPU 2核心
    内存 2G
    磁盘 100G
    网卡
        分配网卡必须在虚拟机系统安装之前进行
        两张网卡
            仅主机模式   -    实验访问 ssh 连接
            NAT     -  访问公网
4台 C7, 2台 C6
    C7
        mininal
        关闭 selinux
        
        网卡命名规则
            net.ifnames=0   bios.devname=0
        
        KVM
        Oracle
        PXE
        
        docker
            /var/lib/docker
            
            /home

     C7 初始化配置
            1、网卡配置
            2、selinux 关闭
            3、yum -y install iptables-services  && systemctl stop firewalld && systemctl disable firewalld && iptable -F && service iptables save
            4、yum -y install net-tools lrzsz vim
            5、yum 源替换,替换 163
            6、快照 justinstall
            7、关闭ssh的DNS解析

5、说一说你理解的swap分配的大小

swap分区分配物理内存的两倍,但是不能超过4G
当然,可能会出现特殊情况:例:	PHP在编译过程中,要求必须存在交换分区,且大于800M
                          kubernets:在运行的过程中,要关闭交换分区,否则会报错,无法运行

6、磁盘和内存的区别

    速度:内存块、磁盘慢
    持久化存储:内存临时存储,磁盘永久存储
    地址:磁盘的地址分配,是以当前的筛为分配单位的
                内存的地址分配,是以byte为分配单位的

7、测试web监测

http响应码:
        200	成功
        301
        302	地址转换
        403	权限
        404	页面丢失
        503	服务器端超负载

二:实验准备

操作系统:CentOS 7.x

zabbix版本:zabbix 3

联网安装:配置网关DNS

三:实验

1)zabbix安装部署

虚拟机环境步骤
C7-1zabbix-server
192.168.20.201
1、初始化系统设置:检查防火墙关闭
2、安装LAMP环境
更新检查网络源
安装mariadb、mariadb-server、httpd、php、php-mysql
启动、自启动mariadb,并安全初始化
3、zabbix初始化
安装zabbix仓库,生成密钥,安装软件包:zabbix-server-mysql、zabbix-web-mysql、zabbix-agent
进入mysql创建zabbix库,并授权zabbix用户
利用官方zabbix库模板,还原zabbix库,进入mysql测试是否导入成功
编写/etc/zabbix/zabbix_server.conf配置文件,启动、自启动zabbix-server 服务
编写zabbix前端的php配置/etc/httpd/conf.d/zabbix.conf(此处仅修改了时区),重启zabbix-server
设置时间服务器
设置web界面访问IP即访问zabbix
4、进入web界面,安装配置zabbix
5、解决中文编码问题
6、添加本机客户端监控

1、初始化系统设置:检查防火墙关闭

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# getenforce 
Disabled
[root@localhost ~]# grep "^SELINUX=" /etc/selinux/config 
SELINUX=disabled

2、安装LAMP环境

​ 更新检查网络源

​ 安装mariadb、mariadb-server、httpd、php、php-mysql

​ 启动、自启动mariadb,并安全初始化

[root@localhost ~]# yum -y install wget
[root@localhost ~]# yum clean all;yum makecache
[root@localhost ~]# yum -y install mariadb mariadb-server httpd php php-mysql			#安装LAMP环境
[root@localhost ~]# systemctl enable httpd mariadb --now								#启动、自启动httpd、mariadb
[root@localhost ~]# mysql_secure_installation											#mysql安全初始化

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.													#当前mysql登录没有密码

Set root password? [Y/n] y																#设置mysql登录密码 123456
New password: 
Re-enter new password: 

Remove anonymous users? [Y/n] y															#移除匿名用户访问
 ... Success!

Disallow root login remotely? [Y/n] y													#不允许root用户远程登陆
 ... Success!

Remove test database and access to it? [Y/n] y											#移除test库,且不允许访问
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y													#刷新权限表
 ... Success!

3、zabbix初始化

注意:此处的LAMP采用yum安装的原因:

​ 源码安装相对来说会比yum安装提高20%的并发量,大部分用于客户直接访问的LAMP环境

​ 此处,仅为管理员提供了监控访问,并不会达到那么高的并发

#安装zabbix软件包
[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							#生成密钥
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql  zabbix-agent			#安装软件包
[root@localhost ~]# mysql -uroot -p123456

MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin;

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';

[root@localhost ~]# mysql -uzabbix -pzabbix			#测试zabbix用户登录
MariaDB [(none)]> 

#还原zabbix数据库,利用官方的zabbix库模板
[root@localhost ~]# cd  /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@localhost zabbix-server-mysql-3.2.11]# zcat create.sql.gz |mysql -uroot -p123456 zabbix

#进入数据库进行测试是否导入成功
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

#编写zabbix-server配置文件,并启动、自启动服务
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf 
[root@localhost ~]# egrep "^DBHost|^DBName|^DBUser|^DBPassword" /etc/zabbix/zabbix_server.conf 
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
[root@localhost ~]# systemctl enable zabbix-server --now			#启动、自启动zabbix-server服务

#编写 zabbix 前端 php 配置
[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 zabbix-server			#重启zabbix-server服务

#设置时间服务器
[root@localhost ~]# vim /etc/chrony.conf					#编辑时间服务器配置文件
[root@localhost ~]# egrep "^server|^allow|^local" /etc/chrony.conf
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
allow 192.168.20.0/24
local stratum 10
[root@localhost ~]# systemctl restart chronyd				#重启服务
[root@localhost ~]# systemctl enable chronyd
[root@localhost ~]# chronyc sources -v						#手动检查同步状态

#设置web界面访问IP即访问zabbix
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
[root@localhost ~]# egrep "^Document" /etc/httpd/conf/httpd.conf 
DocumentRoot "/usr/share/zabbix"
[root@localhost ~]# systemctl restart httpd

4、进入浏览器,安装,并配置zabbix

安装配置zabbix

5、解决中文编码问题

​ Windows导出字体库,linux导入 /usr/share/zabbix/fonts

#或者修改配置文件
vim /usr/share/zabbix/include/defines.inc.php
修改 zabbix php 页面配置,将'graphfont' 修改为 msyh define('ZBX_GRAPH_FONT_NAME', 'msyh');

解决中文编码

6、添加本机客户端监控

编辑zabbix_agentd.con配置文件

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@localhost ~]# grep "192.168.20.201" /etc/zabbix/zabbix_agentd.conf 
Server=192.168.20.201				#zabbix服务器地址
ServerActive=192.168.20.201			#zabbix服务器地址
Hostname=192.168.20.201				#本地地址
[root@localhost ~]# systemctl enable zabbix-agent --now
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost ~]# netstat -anpt |grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      13261/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      13261/zabbix_agentd 

web界面添加监控

web界面添加本机监控

等待监控成功:

image-20221213221632288

image-20221213221731354

2)图形聚合:

聚合图形

3)zabbix监控客户端的mysql

注意:需要设置权限

使用C6-1环境

1、配置时间服务器

[root@localhost ~]# service ntpd stop					#关闭以前的时间同步服务ntpd
[root@localhost ~]# chkconfig ntpd off
[root@localhost ~]# yum -y install chrony				#安装chrony
[root@localhost ~]# vim /etc/chrony.conf				#编写配置文件,指向时间服务器
[root@localhost ~]# grep "^server" /etc/chrony.conf 
server 192.168.20.201 iburst
[root@localhost ~]# service chronyd restart				#启动、自启动chronyd服务
[root@localhost ~]# chkconfig chronyd on
[root@localhost ~]# chkconfig chronyd --list
[root@localhost ~]# chronyc sources -v					#手动同步时间测试

2、配置zabbix-agent、安装mysql,授权zabbix用户,权限,密码

#配置zabbix-agent
[root@localhost ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.9-1.el6.x86_64.rpm
[root@localhost ~]# ls
anaconda-ks.cfg     yum
install.log         zabbix-agent-3.2.9-1.el6.x86_64.rpm
install.log.syslog
[root@localhost ~]# yum -y install zabbix-agent-3.2.9-1.el6.x86_64.rpm
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost ~]# grep "192.168.20" /etc/zabbix/zabbix_agentd.conf Server=192.168.20.201
ServerActive=192.168.20.201
Hostname=192.168.20.10

#安装mysql,授权zabbix用户,权限,密码
[root@localhost ~]# yum -y install mysql mysql-server
[root@localhost ~]# service mysqld start
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# mysql
mysql> grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix';
mysql> flush privileges;

3、修改配置文件 /etc/zabbix/.my.cnf 配置用户连接

[root@localhost ~]# vim /etc/zabbix/.my.cnf
[root@localhost ~]# cat /etc/zabbix/.my.cnf
[client]
user=zabbix
password=zabbix

4、修改 userparameter_mysql.conf ,并用zabbix-get工具检查

[root@localhost ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# cp -a userparameter_mysql.conf userparameter_mysql.conf.bak
[root@localhost zabbix_agentd.d]# vim userparameter_mysql.conf			
#修改两处HOME=/etc/zabbix
[root@localhost zabbix_agentd.d]# grep "\/etc\/zabbix" userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}'
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
[root@localhost ~]# service zabbix-agent start			#启动、自启动zabbix-agent
[root@localhost ~]# chkconfig zabbix-agent on

# C7-1 zabbix-server端 安装zabbix-get检查工具,并检测(查看mysql版本)
[root@localhost ~]# yum -y install zabbix-get
[root@localhost ~]# zabbix_get -s 192.168.20.10 -p 10050 -k mysql.version
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

5、进入web界面添加监控,并等待监控成功

监控mysql

image-20221214205634552

注意:若谷歌浏览器长时间未出现可用性,刷新后即出现,也可安装浏览器自动刷新插件

4)监控nginx并发量

使用C7-2环境

1、配置时间同步服务器客户端

[root@localhost ~]# vim /etc/chrony.conf
[root@localhost ~]# grep "^server" /etc/chrony.conf
server 192.168.20.201 iburst
[root@localhost ~]# systemctl enable chronyd --now
[root@localhost ~]# systemctl restart chronyd
[root@localhost ~]# chronyc sources -v

2、安装zabbix-agent

[root@localhost ~]# ls
anaconda-ks.cfg  zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# yum -y install zabbix-agent-3.2.1-1.el7.x86_64.rpm 
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost ~]# grep "192.168.20" /etc/zabbix/zabbix_agentd.conf Server=192.168.20.201
ServerActive=192.168.20.201
Hostname=192.168.20.202

3、源码安装nginx(安装完成后,需要开启访问统计的location)

[root@localhost ~]# ls
anaconda-ks.cfg      zabbix-agent-3.2.1-1.el7.x86_64.rpm
nginx-1.13.8.tar.gz
[root@localhost ~]# tar -xf nginx-1.13.8.tar.gz
[root@localhost ~]# useradd -r -s /sbin/nologin nginx

[root@localhost ~]# yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel
[root@localhost ~]# cd nginx-1.13.8
[root@localhost nginx-1.13.8]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install		#编译,安装

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
        location /ngx_status {
            stub_status on;
        }

[root@localhost ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/				#创建软链接方便命令调用
[root@localhost ~]# nginx -t													#检查nginx语法
[root@localhost ~]# nginx														#nginx启动

浏览器手动访问统计页面

image-20221214212739340

4、写个脚本

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/nginx-check.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/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
	
function reading {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
	
function writing {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
	
function waiting {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}

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

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

# 执行function
$1

#修改脚本相关权限,使zabbix嗲用
[root@localhost ~]# chmod a+x /etc/zabbix/zabbix_agentd.d/nginx-check.sh
[root@localhost ~]# chown zabbix:zabbix /etc/zabbix/zabbix_agentd.d/nginx-check.sh

#创建软链接方便命令调用
[root@localhost ~]# ln -s /etc/zabbix/zabbix_agentd.d/nginx-check.sh  /usr/local/bin/
[root@localhost ~]# nginx-check.sh ping				#测试脚本使用
1

5、让zabbix-agent调用脚本

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost ~]# grep "^U" /etc/zabbix/zabbix_agentd.conf 
UnsafeUserParameters=1																#允许用户自定义的监控项
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-check.sh $1			#指向脚本位置

#重启zabbix-agent
[root@localhost ~]# systemctl enable zabbix-agent --now
[root@localhost ~]# systemctl restart zabbix-agent

6、C7-1 使用zabbix-get 工具检查,测试脚本获取数据情况

[root@localhost ~]# zabbix_get -s 192.168.20.202 -p 10050 -k nginx.status[ping]
1
[root@localhost ~]# zabbix_get -s 192.168.20.202 -p 10050 -k nginx.status[requests]
3

7、C7-1的web界面新建nginx模板,自定义监控项,添加nginx监控

#先在C7-2中写一个死循环访问nginx,方便监控绘图
[root@localhost ~]# while true;do curl 192.168.20.202/index.html;sleep 1;done

新建nginx模板:

nginx模板创建

添加nginx监控:

添加nginx主机监控

等待监控成功,查看图形:

image-20221214221440539

image-20221214221523176

5)web前台报警

web前台报警

6)自动发现(自动添加监控主机)

本次实验自动发现主机为:C7-3、C7-4

在web界面导入nginx模板:

导入nginx模板

1、客户端先配置好zabbix-agent,安装必要的服务方便监控

#C7-3
[root@localhost ~]# ls
anaconda-ks.cfg  zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# yum -y install httpd zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# echo "hello 203...." > /var/www/html/index.html
[root@localhost ~]# systemctl enable httpd --now
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@localhost ~]# grep "192.168.20" /etc/zabbix/zabbix_agentd.conf 
Server=192.168.20.201
ServerActive=192.168.20.201
Hostname=192.168.20.203
[root@localhost ~]# systemctl enable zabbix-agent --now

#C7-4
[root@localhost ~]# ls
anaconda-ks.cfg  zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# yum -y install httpd zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# echo "hello 204...." > /var/www/html/index.html
[root@localhost ~]# systemctl enable httpd --now
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost ~]# grep "192.168.20" /etc/zabbix/zabbix_agentd.conf
Server=192.168.20.201
ServerActive=192.168.20.201
Hostname=192.168.20.204
[root@localhost ~]# systemctl enable zabbix-agent --now

2、web界面设置自动发现

​ 配置——》动作

​ 配置——》自动发现

web添加界面自动发现

image-20221215102212176

测试自动发现的主机能否故障报警:

C7-3停止httpd服务

[root@localhost ~]# systemctl stop httpd

image-20221215102809514

7)分布式代理

image-20221215110219166

image-20221215103947283

1、C7-5 zabbix-proxy配置

配置时间服务器

[root@localhost ~]# vim /etc/chrony.conf 
[root@localhost ~]# grep "^server" /etc/chrony.conf 
server 192.168.20.201 iburst
[root@localhost ~]# systemctl enable chronyd
[root@localhost ~]# systemctl restart chronyd

安装zabbix仓库,安装软件

[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
[root@localhost ~]# yum -y install mariadb mariadb-server zabbix-proxy-mysql			#安装数据库软件,和proxy相关的数据库软件

启动、自启动mariadb、安全初始化mysql

[root@localhost ~]# systemctl enable mariadb --now
[root@localhost ~]# mysql_secure_installation

进入mysql创建库,授权,刷新权限

[root@localhost ~]# mysql -uroot -p123456
MariaDB [(none)]> create database zabbix_proxy default character set utf8 collate utf8_bin;

MariaDB [(none)]> grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix';

MariaDB [(none)]> flush privileges;

利用官方模板导入zabbix库

[root@localhost ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.2.11/
[root@localhost zabbix-proxy-mysql-3.2.11]# zcat schema.sql.gz |mysql -uroot -p123456 zabbix_proxy

修改 /etc/zabbix/zabbix_proxy.conf,启动、自启动zabbix-proxy

[root@localhost ~]# vim /etc/zabbix/zabbix_proxy.conf
[root@localhost ~]# egrep "^Server|^Hostname|^DB|^Data|^Config" /etc/zabbix/zabbix_proxy.conf
Server=192.168.20.201						#zabbix-server地址
Hostname=192.168.20.205						#proxy地址
DBHost=localhost							#数据库位置为本地
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
ConfigFrequency=1							#同步server的配置文件时间间隔
DataSenderFrequency=1						#设置发送数据到server的时间间隔
[root@localhost ~]# systemctl enable zabbix-proxy --now
[root@localhost ~]# netstat -anpt |grep 10051				#检查启动后端口

2、C7-1 的web界面添加代理

web界面添加代理

3、C7-6 zabbix-agent配置

配置时间服务器

[root@localhost ~]# vim /etc/chrony.conf 
[root@localhost ~]# grep "^server" /etc/chrony.conf 
server 192.168.20.201 iburst
[root@localhost ~]# systemctl enable chronyd
[root@localhost ~]# systemctl restart chronyd

安装zabbix-agent,修改客户端配置文件(指向proxy地址)

[root@localhost ~]# ls
anaconda-ks.cfg  zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# yum -y install zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost ~]# grep "192.168.20" /etc/zabbix/zabbix_agentd.conf 
Server=192.168.20.205
ServerActive=192.168.20.205
Hostname=192.168.20.206

启动、自启动zabbix-agent

[root@localhost ~]# systemctl enable zabbix-agent --now

安装httpd,写入网页,启动,自启动httpd

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "hello 206...." > /var/www/html/index.html
[root@localhost ~]# systemctl enable httpd --now
[root@localhost ~]# curl localhost
hello 206....

4、检查C7-5 中的proxy代理日志

[root@localhost ~]# tailf /var/log/zabbix/zabbix_proxy.log
 12419:20221215:114333.238 received configuration data from server at "192.168.20.201", datalen 2911
 12419:20221215:114334.258 received configuration data from server at "192.168.20.201", datalen 2911
 12419:20221215:114335.273 received configuration data from server at "192.168.20.201", datalen 2911

5、web界面中添加有代理的监控主机

添加有代理的监控主机

6、测试报警:

[root@localhost ~]# systemctl stop httpd

image-20221215120413185

8)钉钉报警

1、创建钉钉群,添加群机器人,获取url地址

https://oapi.dingtalk.com/robot/send?access_token=76f0a2483c808ec38872e470671d6548c768322e7b261bbc1a2bbc2ebb74d194

2、在指定位置写个脚本

​ 找到zabbix调用脚本的位置

​ 写脚本,设置可执行权限

​ 测试手动发送钉钉信息

[root@localhost ~]# grep "^AlertScriptsPath" /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts
[root@localhost alertscripts]# vim token.sh 
[root@localhost alertscripts]# cat token.sh 
#!/bin/bash
to=$1
subject=$2
text=$3
curl 'https://oapi.dingtalk.com/robot/send?access_token=76f0a2483c808ec38872e470671d6548c768322e7b261bbc1a2bbc2ebb74d194' \
    -H 'Content-Type: application/json' \
    -d '
    {"msgtype": "text",
        "text": {
            "content": "'"$text"'"
        },
        "at":{
            "atMobiles": [ 
                "'"$1"'" 
        ],
        "isAtAll": false
        }
    }'
[root@localhost alertscripts]# chmod a+x token.sh 
[root@localhost alertscripts]# chown zabbix:zabbix token.sh

3、web界面创建新的报警媒介类型

# 再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

新建钉钉报警媒介

4、web界面创建报警动作

# 操作标题改为:
故障{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}

# 恢复操作后标题改为
恢复{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、web界面给报警媒介赋予钉钉报警权限

赋予钉钉报警权限

6、关闭被监控端的服务,测试报警

#C7-6
[root@localhost ~]# systemctl stop httpd

web界面报警、钉钉报警

image-20221215190510389

image-20221215190541000

修复后提示:

image-20221215190754292

image-20221215190826127