Top

NTD LNXSEC DAY06

  1. 案例1:系统&网络“人肉”监控
  2. 案例2:准备zabbix平台环境
  3. 案例3:安装、启用zabbix主控机
  4. 案例4:安装、启用zabbix被控机
  5. 案例5:管理监控项
  6. 案例6:使用监控图形
  7. 案例7:配置zabbix邮件告警

1 案例1:系统&网络“人肉”监控

1.1 问题

本例要求理解常用的监控方法,熟悉Linux服务器中简单的监控工具,完成下列任务。

  1. 使用 uptime 检查CPU负载
  2. 使用 who | wc -l 了解用户登录情况
  3. 使用 pgrep -c . 检查进程数
  4. 使用 iptraf-ng 检查网络流量

    1.2 步骤

    实现此案例需要按照如下步骤进行。
    步骤一:使用uptime检查CPU负载
    [root@svr7 ~]# uptime
    09:37:26 up 16:14, 4 users, load average: 0.19, 0.18, 0.16

uptime工具可以在一行内给出下列信息:当前时间,系统运行了多久时间,当前登陆的用户有多少,前1、5和15分钟内系统的平均负载(每秒处理的任务请求数)。
步骤二:使用who | wc -l了解用户登录情况
[root@svr7 ~]# who //列出已经登录的用户信息
root :0 2020-04-25 22:15 (:0)
root pts/0 2020-04-26 09:35 (192.168.10.1)
root pts/2 2020-04-26 09:36 (:0)
zengye pts/3 2020-04-26 09:36 (svr7.tedu.cn)

[root@zbx ~]# who | wc -l //统计已登录用户数量
4

上述操作中使用了管道操作符“|”,基本用法为:命令行1 | 命令行2,作用是将命令行1(who显示已经登录的用户信息)的屏幕显示结果交给命令行2(wc -l统计文本行数)处理。
步骤三:使用pgrep -c . 检查进程数
[root@zbx ~]# pgrep -c .
242

上述操作中,pgrep命令是用来查找运行进程信息的工具,-c表示统计数量,最后的 . 号是一个特殊关键词(表示任何进程)。pgrep工具的基本用法为:pgrep 关键词。
步骤四:使用iptraf-ng检查网络流量
iptraf-ng是一个针对网卡流量的交互式监控工具,使用它之前需要先安装对应的软件包。
[root@svr7 ~]# yum -y install iptraf-ng
.. ..
Running transaction
正在安装 : iptraf-ng-1.1.4-7.el7.x86_64 1/1
验证中 : iptraf-ng-1.1.4-7.el7.x86_64 1/1

已安装:
iptraf-ng.x86_64 0:1.1.4-7.el7

完毕!
[root@svr7 ~]#

安装好iptraf-ng软件包以后,就可以直接运行此命令,或者添加“-i 网卡名”选项只查看某个网卡的流量数据。
[root@svr7 ~]# iptraf-ng -i ens33
.. ..

运行结果如图-1所示,按q键可退出。
LNXSEC DAY06 - 图1
图-1

2 案例2:准备zabbix平台环境

2.1 问题

本例要求准备一台CentOS 7.7 1908虚拟机,完成下列任务。

  1. 设置主机名zbx.tedu.cn,IP地址192.168.10.7/24
  2. 修改 /etc/hosts 文件,添加 zbx.tedu.cn 的本地域名映射记录
  3. 安装并启用LAMP平台
  4. 禁用防火墙和SELinux保护机制

    2.2 步骤

    实现此案例需要按照如下步骤进行。
    对于已经完成的步骤,只需要确认结果相符就行了。
    步骤一:服务器地址设置
    1)配置主机名为zbx.tedu.cn
    使用hostnamectl更改主机名后会立即生效。
    [root@svr7 ~]# hostnamectl set-hostname zbx.tedu.cn //设置主机名

退出当前命令行终端,重新打开,命令行提示信息中的主机名也会变更。
[root@zbx ~]# hostnamectl //确认结果
Static hostname: zbx.tedu.cn
Icon name: computer-vm
Chassis: vm
Machine ID: b19260844be843a7919cf0e987219b1d
Boot ID: 97d1fa3bdee7487e9287c1029828988b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.el7.x86_64
Architecture: x86-64

2)配置IP地址192.168.10.7/24
[root@zbx ~]# nmcli connection show //查看设备、连接名(比如ens33)
NAME UUID TYPE DEVICE
ens33 b51115d9-a7c6-40d6-9620-f95cd3649a3f ethernet ens33
virbr0 fa6a9825-7f0f-4a54-b987-014078b93e2b bridge virbr0

[root@zbx ~]# nmcli connection modify ens33 ipv4.method manual ipv4.addresses “192.168.10.7/24” connection.autoconnect yes
//配置IP地址

[root@zbx ~]# nmcli connection up ens33 //激活连接
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/22)

3)添加本机主机映射记录,方便快速访问
在/etc/hosts中添加 zbx.tedu.cn 的本地域名记录。
[root@zbx ~]# vim /etc/hosts //添加本地域名记录
.. ..
192.168.10.7 zbx zbx.tedu.cn

通过ping目标域名可以检测结果。
[root@zbx ~]# ping zbx.tedu.cn
PING zbx (192.168.10.7) 56(84) bytes of data.
64 bytes from zbx (192.168.10.7): icmp_seq=1 ttl=64 time=0.011 ms
64 bytes from zbx (192.168.10.7): icmp_seq=2 ttl=64 time=0.018 ms
64 bytes from zbx (192.168.10.7): icmp_seq=3 ttl=64 time=0.055 ms
64 bytes from zbx (192.168.10.7): icmp_seq=4 ttl=64 time=0.025 ms
^C //按Ctrl+C快捷键中止
—- zbx ping statistics —-
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.011/0.027/0.055/0.017 ms
[root@zbx ~]#

步骤二:安装并启用LAMP平台
1)安装LAMP平台各组件
[root@zbx ~]# yum -y install httpd mariadb-server mariadb php php-mysql
.. ..
软件包 httpd-2.4.6-90.el7.centos.x86_64 已安装并且是最新版本
软件包 1:mariadb-server-5.5.64-1.el7.x86_64 已安装并且是最新版本
软件包 1:mariadb-5.5.64-1.el7.x86_64 已安装并且是最新版本
软件包 php-5.4.16-46.el7.x86_64 已安装并且是最新版本
软件包 php-mysql-5.4.16-46.el7.x86_64 已安装并且是最新版本
无须任何处理

[root@zbx ~]#

2)启用LAMP平台相关服务
[root@zbx ~]# systemctl restart httpd mariadb //开启服务
[root@zbx ~]# systemctl enable httpd mariadb //设置开机自运行

步骤三:禁用防火墙和SELinux保护机制
1)关闭防火墙
[root@zbx ~]# systemctl stop firewalld //立即停止防火墙
[root@zbx ~]# systemctl disable firewalld //禁止开机自动运行

2)关闭SELinux机制
[root@zbx ~]# setenforce 0 //使SELinux失效
[root@zbx ~]# vim /etc/selinux/config //开机时禁用
SELINUX=disabled

3 案例3:安装、启用zabbix主控机

3.1 问题

本例要求以前一个案例环境为基础,安装并部署zabbix主控机,完成下列任务。
首先,采用离线方式安装好zabbix相关软件包(向教学中心获取)。
然后重启httpd服务后,访问 http://192.168.10.7/zabbix 安装Web前端:

  • 根据网页提示完成初始安装,遇错排错
  • 配置PHP解析环境,将时区设为 Asia/Shanghai
  • 新建zabbix库,授权用户zabbix访问,密码为pwd@123
  • 导入zabbix服务包提供的原始资料

确认可看到zabbix登录页面,并启动好zabbix-server主控服务。

3.2 步骤

实现此案例需要按照如下步骤进行。
步骤一:离线方式安装zabbix相关软件包
1)确认软件包素材
因为zabbix服务器在国外,在线安装可能会比较慢,具体方法可参考官方手册:
https://www.zabbix.com/documentation/4.0/zh/manual
建议采取离线安装的方式,提前向教学中心获取适用于CentOS 7.7操作系统的zabbix软件包安装素材。
比如zabbix40/目录,将其上传到虚拟机的/root/目录下,确认结果:
[root@zbx ~]# ls /root/zabbix40/
fping-3.10-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm
php-bcmath-5.4.16-46.el7.x86_64.rpm
php-gd-5.4.16-46.el7_7.x86_64.rpm
php-ldap-5.4.16-46.el7_7.x86_64.rpm
php-mbstring-5.4.16-46.el7.x86_64.rpm
php-xml-5.4.16-46.el7_7.x86_64.rpm
t1lib-5.1.2-14.el7.x86_64.rpm
zabbix-agent-4.0.19-1.el7.x86_64.rpm
zabbix-get-4.0.19-1.el7.x86_64.rpm
zabbix-server-mysql-4.0.19-1.el7.x86_64.rpm
zabbix-web-4.0.19-1.el7.noarch.rpm
zabbix-web-mysql-4.0.19-1.el7.noarch.rpm
zabbix-web-pgsql-4.0.19-1.el7.noarch.rpm

2)安装zabbix服务器及依赖包
仍然使用yum命令,提供预先准备好的所有rpm包文件路径,即可进行安装。
[root@zbx ~]# yum -y install zabbix40/*.rpm
.. ..
已安装:
fping.x86_64 0:3.10-1.el7 iksemel.x86_64 0:1.4-2.el7.centos
php-bcmath.x86_64 0:5.4.16-46.el7 php-gd.x86_64 0:5.4.16-46.el7
php-ldap.x86_64 0:5.4.16-46.el7 php-mbstring.x86_64 0:5.4.16-46.el7
php-xml.x86_64 0:5.4.16-46.el7 t1lib.x86_64 0:5.1.2-14.el7
zabbix-get.x86_64 0:4.0.19-1.el7 zabbix-web.noarch 0:4.0.19-1.el7
zabbix-web-mysql.noarch 0:4.0.19-1.el7 zabbix-web-pgsql.noarch 0:4.0.19-1.el7
zabbix-agent.x86_64 0:4.0.19-1.el7 zabbix-server-mysql.x86_64 0:4.0.19-1.el7
作为依赖被安装:
OpenIPMI.x86_64 0:2.0.27-1.el7 OpenIPMI-libs.x86_64 0:2.0.27-1.el7
OpenIPMI-modalias.x86_64 0:2.0.27-1.el7 php-pgsql.x86_64 0:5.4.16-46.el7
postgresql-libs.x86_64 0:9.2.24-1.el7_5 unixODBC.x86_64 0:2.3.1-14.el7

完毕!
[root@zbx ~]#

完成安装后,可以再次确认一下安装结果:
[root@zbx ~]# yum list “zabbix*”
.. ..
已安装的软件包
zabbix-agent.x86_64 4.0.19-1.el7 @/zabbix-agent-4.0.19-1.el7.x86_64
zabbix-get.x86_64 4.0.19-1.el7 @/zabbix-get-4.0.19-1.el7.x86_64
zabbix-server-mysql.x86_64 4.0.19-1.el7 @/zabbix-server-mysql-4.0.19-1.el7.x86_64
zabbix-web.noarch 4.0.19-1.el7 @/zabbix-web-4.0.19-1.el7.noarch
zabbix-web-mysql.noarch 4.0.19-1.el7 @/zabbix-web-mysql-4.0.19-1.el7.noarch
zabbix-web-pgsql.noarch 4.0.19-1.el7 @/zabbix-web-pgsql-4.0.19-1.el7.noarch

步骤二:安装zabbix监控的Web前端系统
1)重启httpd服务以更新zabbix的网页配置
装好zabbix相关软件包以后,会自动添加Web配置,需要重启httpd服务后生效。
[root@zbx ~]# systemctl restart httpd
[root@zbx ~]#

2)从浏览器访问 http://192.168.10.7/zabbix/ 前端页面
如图-2所示。
LNXSEC DAY06 - 图2
图-2
单击Next step按钮,根据提示进行Zabbix监控的Web前端系统安装。
步骤三:解决zabbix前端系统安装中的各种问题
1)时区设置问题
如果页面提示时区未设置,如图-3所示。
LNXSEC DAY06 - 图3
图-3
需要修改zabbix的Web配置文件/etc/httpd/conf.d/zabbix.conf,找到时区设置那一行“# php_value date.timezone Europe/Riga”,把前面的 # 号删除以启用此行配置,并将时区设置为“Asia/Shanghai”。
[root@zbx ~]# vim /etc/httpd/conf.d/zabbix.conf
.. ..
php_value date.timezone Asia/Shanghai //设置时区为“亚洲/上海”
.. ..
[root@zbx ~]# systemctl restart httpd //重启Web以更新服务配置

然后刷新zabbix网页,时区的报错就没有了,如图-4所示,单击Next step继续。
LNXSEC DAY06 - 图4
图-4
2)数据库连接问题
提前准备好名为zabbix的数据库、名为zabbix的数据库用户,并设置好密码。
[root@zbx ~]# mysql -uroot -ppwd@123 //连接数据库服务器
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 47
Server version: 5.5.64-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 character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec) //建zabbix库

MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by ‘pwd@123’;
Query OK, 0 rows affected (0.00 sec) //添加zabbix用户

MariaDB [(none)]> quit //退出
Bye
[root@zbx ~]#

然后在数据库配置页面正确填写连接信息,如图-5所示
LNXSEC DAY06 - 图5
图-5
单击Next step继续,如果页面提示“Cannot connect to the database”,细节部分显示Access Denied,请确认数据库服务已经启动,并且准备的数据库及用户信息填写正确,纠正后重新提交。
3)初始数据资料不匹配问题
如果页面提示“Cannot connect to the database”,细节部分显示“The front end dos not match Zabbix database”,如图-6所示,说明准备的zabbix库中还没有初始资料。
LNXSEC DAY06 - 图6
图-6
需要执行下列操作将zabbix软件包准备的初始资料导入。
[root@zbx ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppwd@123 zabbix
[root@zbx ~]#

然后再单击Next step就到下一个页面了,如图-7所示,这个页面可以在Name处为你的zabbix系统起一个名字,或者不用起名直接单击Next Step继续。
LNXSEC DAY06 - 图7
图-7
4)确认安装设置,完成Web前端系统的安装
再接下来确认安装设置,如图-8所示,单击Next Step继续。
LNXSEC DAY06 - 图8
图-8
看到“Congratulations!”的提示,如图-9所示,说明安装已经成功,单击Finish就可以结束安装了。
LNXSEC DAY06 - 图9
图-9
步骤四:确认zabbix登录页面,启动zabbix-server主控服务
1)确认zabbix登录页面
安装好zabbix监控的Web前端以后,会自动跳转到登录界面,或者以后直接从浏览器访问http://192.168.10.7/zabbix/ ,也可以看到这个界面,如图-10所示。
LNXSEC DAY06 - 图10
图-10
2)启动zabbix-server主控服务
为了能够顺利使用zabbix监控系统,要确保主控服务zabbix-server知道如何访问数据库。需要修改/etc/zabbix/zabbix_server.conf配置文件,其中数据库名、数据库用户、数据库连接密码都要设置正确。
[root@zbx ~]# vim /etc/zabbix/zabbix_server.conf
.. ..
DBName=zabbix //数据库名
DBUser=zabbix //数据库用户
DBPassword=pwd@123 //连接密码,注意删除行首 # 号

然后,要记得把主控服务zabbix-server启动起来。
[root@zbx ~]# systemctl enable zabbix-server —now
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zbx ~]#

4 案例4:安装、启用zabbix被控机

4.1 问题

本例要求学会配置zabbix被控机,降低环境复杂度起见,可以将主控机zbx.tedu.cn同时也配置成被控机,完成下列任务。

  1. 确认已安装zabbix-agent软件包
  2. 调整配置,允许主控机192.168.10.7采集数据
  3. 启动zabbix-agent被控服务

    4.2 步骤

    实现此案例需要按照如下步骤进行。
    步骤一:安装zabbix-agent被控端软件包
    对于新准备的zabbix被控机,只需要安装zabbix-agent这一个软件包。
    [root@zbx ~]# yum -y install /root/zabbix40/zabbix-agent-4.0.19-1.el7.x86_64.rpm
    .. .. //装包
    [root@zbx ~]# yum list zabbix-agent //确认结果
    .. ..
    zabbix-agent.x86_64 4.0.19-1.el7 @/zabbix-agent-4.0.19-1.el7.x86_64
    [root@zbx ~]#

步骤二:调整配置,允许主控机192.168.10.7采集数据
调整zabbix-agent配置文件,允许zabbix主控机(默认只允许自己127.0.0.1)来采集数据。
[root@svr8 ~]# vim /etc/zabbix/zabbix_agentd.conf
.. ..
Server=127.0.0.1,192.168.10.7 //添加主控机地址,多个地址以逗号分隔
ServerActive=127.0.0.1,192.168.10.7 //添加主控机地址,多个地址以逗号分隔
Hostname=svr8.tedu.cn //本机的主机名

步骤三:启动zabbix-agent被控服务
被控端服务zabbix-agent主要负责与主控端的zabbix-server通信,报告、提供需要的监控数据,相当于在被控机上安置的一个“卧底”。
为了顺利实现监控,需要启用zabbix-agent服务。
[root@zbx ~]# 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@zbx ~]#

5 案例5:管理监控项

5.1 问题

本例要求学会在zabbix平台上管理监控项目,完成下列任务。

  1. 登入zabbix监控的Web前端系统,并切换为中文
  2. 检查“Zabbix Server”的监控项,包括主机可用性、可用内存、CPU负载、登录用户数、运行进程数
  3. 确认(或添加)对本机网卡(比如ens33)入站流量、出站流量的监控
  4. 配置 icmpping 检查设备存活状态,针对路由器102、交换机103,IP地址192.168.10.2、192.168.10.3

    5.2 步骤

    实现此案例需要按照如下步骤进行。
    步骤一:登入zabbix监控的Web前端系统,并切换为中文
    1)以默认管理员Admin登录Zabbix平台
    默认管理员为Admin(注意第一个A为大写),密码为zabbix,如图-11所示。
    LNXSEC DAY06 - 图11
    图-11
    登录成功以后,可以看到英文版的zabbix监控网页,如图-12所示。
    LNXSEC DAY06 - 图12
    图-12
    2)将界面语言更改为“Chinese(zh_CN)”
    单击zabbix监控页面右上方的头像标识,可以打开当前用户的属性设置页面。
    单击“Language”右侧的下拉箭头,选择“Chinese(zh_CN)”,然后单击下方的“Update”按钮更新用户属性,如图-13所示。。
    LNXSEC DAY06 - 图13
    图-13
    更新成功后,zabbix监控页面就会变成中文,如图-14所示。
    LNXSEC DAY06 - 图14
    图-14
    步骤二:检查“Zabbix Server”的监控项
    1)查看被监控主机
    单击zabbix监控页面上的“配置”—>“主机”,可以列出被监控主机。Zabbix平台默认已将本机添加为被监控对象,如图-15所示。
    LNXSEC DAY06 - 图15
    图-15
    2)查看监控项
    单击被监控主机右侧的监控项,可以看到此主机的各种监控项目,如图-16所示,
    LNXSEC DAY06 - 图16
    图-16
    zabbix本机默认已关联相关监控模板,自动添加了数十个监控项。
    比如被控主机的可用性(检测zabbix-agent是否通信正常)、可用内存、CPU负载、登录用户数、运行进程数等等,可以参考如下信息。
  • 主机可用性:名称Agent ping,键值agent.ping
  • 可用内存:名称Available memory,键值vm.memory.size[available]
  • CPU负载(最近1分钟):名称Processor load (1 min average per core),键值s ystem.cpu.load[percpu,avg1]
  • CPU负载(最近1分钟):名称Processor load (1 min average per core),键值s ystem.cpu.load[percpu,avg1]
  • CPU负载(最近1分钟):名称Processor load (1 min average per core),键值s ystem.cpu.load[percpu,avg1]
  • 登录用户数:名称Number of logged in users,键值system.users.num
  • 运行进程数:名称Number of processes,键值proc.num[]

3)控制监控项
在监控项管理页面,不仅可以查看监控项,还可以禁用指定的监控项、或者删除用不到的自动发现的监控项。比如,可以把自动发现的针对虚拟接口virbr0的监控项删除,如图-17所示。
LNXSEC DAY06 - 图17
图-17
步骤三:确认/添加对本机网卡(比如ens33)入站流量、出站流量的监控
常用的网络流量监控项采用 net.if.in[接口名] 和 net.if.out[接口名] ,分别表示入站流量、出站流量。比如要监控网卡ens33的流量,就可以配置以下监控项:

  • 入站流量:名称Incoming network traffic on ens33,键值net.if.in[ens33]
  • 出站流量:名称Outgoing network traffic on ens33,键值net.if.out[ens33]

网络接口的流量信息等监控项,一般稍等几分钟可以自动发现。自动发现的监控项会在名称前标注有橙色的“discovery”字样,如图-18、图-19所示。
LNXSEC DAY06 - 图18
图-18
LNXSEC DAY06 - 图19
图-19
如果没有找到自动发现的上述网卡流量监控项,也可以通过右上角的“创建监控项”按钮来手动添加新的监控项。在弹出页面中,指定监控项名称和对应的键值就行。其中键值可以通过右侧的“选择”按钮获得,并根据需要进行更改,如图-20所示。
LNXSEC DAY06 - 图20
图-20
步骤四:配置 icmpping 检查设备存活状态
1)添加一个监控项,检测路由器102是否能ping通
在监控项管理页面,单击右上角的“创建监控项”页面,在接下来的设置页面中指定名称“路由器102存活状态”、类型选“简单检查”,然后选择好icmpping键值并正确修改检测参数,如图-21所示,然后单击底部的“添加”就可以了。
LNXSEC DAY06 - 图21
图-21
其中,监控键值 icmpping[192.168.10.2,4,500,64,3000],表示要检测的目标IP地址是192.168.10.2、发4个测试包、包间隔500毫秒、每个64字节、超过3000毫秒无响应就认为超时。
2)再添加一个监控项,检测交换机103是否能ping通
在监控项管理页面,单击右上角的“创建监控项”页面,在接下来的设置页面中指定名称“交换机103存活状态”、类型选“简单检查”,然后选择好icmpping键值并正确修改检测参数,如图-22所示,然后单击底部的“添加”就可以了。。
LNXSEC DAY06 - 图22
图-22
3)确认添加结果
返回到监控项管理页,单击第2页,可以找到新添加的几个监控项,如图-23所示。
LNXSEC DAY06 - 图23
图-23

6 案例6:使用监控图形

6.1 问题

本例要求学会在zabbix平台上查看监控图形、创建监控图形。

  1. 访问“图形”管理页
  2. 查看监控图形,修复中文显示
  3. 创建“网卡流量分析”,整合入站/出站流量数据
  4. 创建“路由器102状态”,监控路由器102的存活状态

    6.2 步骤

    实现此案例需要按照如下步骤进行。
    步骤一:访问“图形”管理页
    单击zabbix平台中的“配置”—>“主机”—>选中被监控主机—>“图形”,可以看到已经创建的监控图形(默认都是从模板创建的),如图-24所示。
    LNXSEC DAY06 - 图24
    图-24
    对于列表中没有的监控图形,可以单击右上方的“创建图形”来添加(前提是要有对应系统指标的监控项)。
    步骤二:查看监控图形,修复中文显示
    1)选择指定图形并查看
    单击zabbix平台的“监测”—>“图形”—>选择XX图形查看,比如查看Zabbix server的CPU load,如图-25所示。默认情况下,zabbix所绘制图形中的汉字会显示为方框,需要修正绘图所使用的字体。
    LNXSEC DAY06 - 图25
    图-25
    2)修正图形中的中文显示
    zabbix 4.0默认的绘图字体位于 /usr/share/zabbix/assets/fonts/graphfont.ttf,但是这个字体不支持在图片中写入汉字。因此,最好将其替换为能正常支持汉字的中文字体文件(比如文泉驿-正黑)。
    [root@zbx ~]# cp /usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
    cp:是否覆盖”/usr/share/zabbix/assets/fonts/graphfont.ttf”? y
    [root@zbx ~]#

然后按F5键刷新图形查看页面,图形中的汉字就能够正常显示了,如图-26所示。
LNXSEC DAY06 - 图26
图-26
步骤三:创建“网卡流量分析”,整合入站/出站流量数据
1)添加“网卡流量分析”图形
通过zabbix监控页的“监测”—>“图形”—>“创建图形”,使用网卡ens33的入站流量、出站流量两个监控项创建“网卡流量分析”监控图形,如图-27、28所示。
LNXSEC DAY06 - 图27
图-27
LNXSEC DAY06 - 图28
图-28
注意先通过小的“添加”连接来选择监控项,最后再单击大的“添加”按钮来完成图形创建。
2)查看“网卡流量分析”图形结果
单击zabbix平台的“监测”—>“图形”—>选择“网卡流量分析”图形,可以看到非常直观的、动态的流量图形,如图-29所示。
LNXSEC DAY06 - 图29
图-29
步骤四:创建“路由器102状态”,监控路由器102的存活状态
1)添加“路由器102状态”图形
通过zabbix监控页的“监测”—>“图形”—>“创建图形”,使用“路由器102存活状态”监控项创建“路由器102状态”监控图形,如图-30所示。
LNXSEC DAY06 - 图30
图-30
2)查看“路由器102状态”图形结果
单击zabbix平台的“监测”—>“图形”—>选择“路由器102状态”图形,可以看到监控结果,数值为1的线表示此设备可ping通,数值为0的线(如果有的话)表示不能ping通,如图-31所示。
LNXSEC DAY06 - 图31
图-31

7 案例7:配置zabbix邮件告警

7.1 问题

本例要求针对Zabbix服务器设置严重事件告警,当登录用户数超过5个或者运行进程数超过500个时,发送告警邮件给zabbix服务器的root用户。

  1. 依次配置报警媒介、报警媒介类型、动作
  2. 配置监控项及触发器
  3. 模拟用户登录数超标(比如同时登录7个用户)
  4. 在zabbix服务器上收取root用户的邮件,可以看到告警消息

    7.2 方案

    zabbix监控系统的事件通知机制,如图-32所示。
    LNXSEC DAY06 - 图32
    图-32

    7.3 步骤

    实现此案例需要按照如下步骤进行。
    步骤一:配置报警媒介类型(谁负责发送告警邮件、如何发送)
    管理—>报警媒介类型—>Email,正确设置可用来发送电子邮件的服务器(这里选用本机自带的邮件服务)信息、发件人电子邮箱地址,如图-33所示。
    LNXSEC DAY06 - 图33
    图-33
    步骤二:配置报警媒介(告警邮件发送给谁)
    管理—>用户—>选择用户XX—>报警媒介。
    比如,可以为用户Admin添加邮件报警,接收通知的邮箱地址为root@zbx.tedu.cn, 如图-34、图-35所示。
    LNXSEC DAY06 - 图34
    图-34
    LNXSEC DAY06 - 图35
    图-35
    步骤三:配置动作
    配置—>动作—>创建动作。
    比如,示警程度在“一般严重”以上时发送报警,如图-36、图-37所示。
    LNXSEC DAY06 - 图36
    图-36
    LNXSEC DAY06 - 图37
    图-37
    步骤四:配置监控项及触发器
    配置—>主机—>选中主机—>触发器—>创建触发器。
    比如,当登录用户数超过5个时生成“一般严重”事件消息,如图-38、图-39所示。
    LNXSEC DAY06 - 图38
    图-38
    LNXSEC DAY06 - 图39
    图-39
    步骤五:模拟用户登录数超标
    在被控主机Zabbix server上同时打开多个命令行终端,也可以使用SecureCRT、Putty等工具远程登录到Zabbix server服务,来模拟超过5个用户登录的情况。
    具体过程略。
    步骤六:检查root用户收到告警邮件消息
    当设置的动作满足条件时,即发起对应的邮件告警操作,用户报警媒介对应的收件人电子邮箱中会收到通知邮件。比如当登录用户数超过5个时,root用户将会收到告警邮件,只需要在主机zbx.tedu.cn上查收邮件即可,如图-40所示。
    LNXSEC DAY06 - 图40
    图-40
    同时,通过“监测”—>“仪表板”页面也会看到相应的问题报告,如图-41所示。通过单击“动作”下的小图标可以跟踪邮件发送状态。
    LNXSEC DAY06 - 图41
    图-41