ZABBIX平台部署及使用

ZABBIX平台部署及使用

1 准备zabbix平台环境

  • 新建一台CentOS7虚拟主机,设置主机名zbx.sss.cn,IP地址:192.168.10.156/24
  • 修改 /etc/hosts 文件,添加 zbx.tedu.cn 的本地域名映射记录
  • 安装并启用LAMP平台
  • 禁用防火墙和SELinux保护机制

2 部署步骤

步骤一:服务器地址设置

1)配置主机名为zbx.sss.cn

[root@centos7 ~]# hostnamectl set-hostname zbx.sss.cn	//设置主机名

退出当前命令行终端,重新打开,命令行提示信息中的主机名也会变更。

[root@zbx ~]# hostnamectl 
   Static hostname: zbx.sss.cn
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 74cf90f94eb1465ca75cf06c07ccdaf2
           Boot ID: e47660f510bd4fc3833b81e3b20a6c76
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1127.el7.x86_64
      Architecture: x86-64
[root@zbx ~]# 

2)配置IP地址192.168.10.156/24

[root@zbx ~]# nmcli connection show		//查看设备、连接名(比如ens33)
NAME    UUID                                  TYPE      DEVICE 
ens33   99c20005-a856-4f56-bc7f-e9cc8664389d  ethernet  ens33  
virbr0  cb9f2d6b-ac80-4d32-9bc4-8cca3f37d499  bridge    virbr0 
[root@zbx ~]#
[root@zbx ~]# nmcli  connection  modify  ens33  ipv4.method  manual  ipv4.addresses  "192.168.10.156/24"  connection.autoconnect  yes	//配置IP地址

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

3)添加本机主机映射记录,方便快速访问。

[root@zbx ~]# vim /etc/hosts	//编辑该文件,添加以下内容
	......
	192.168.10.156  zbx     zbx.sss.cn
	
[root@zbx ~]# ping zbx.sss.cn	//确认修改结果
PING zbx (192.168.10.156) 56(84) bytes of data.
64 bytes from zbx (192.168.10.156): icmp_seq=1 ttl=64 time=0.049 ms	
64 bytes from zbx (192.168.10.156): icmp_seq=2 ttl=64 time=0.114 ms
64 bytes from zbx (192.168.10.156): icmp_seq=3 ttl=64 time=0.096 ms
64 bytes from zbx (192.168.10.156): icmp_seq=4 ttl=64 time=0.069 ms
^C
--- zbx ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.049/0.082/0.114/0.024 ms
[root@zbx ~]#

步骤二:安装并启用LAMP平台。

1)安装LAMP各平台组件

[root@zbx ~]# yum -y install httpd mariadb-server mariadb php php-mtsql
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 httpd-2.4.6-93.el7.centos.x86_64 已安装并且是最新版本
软件包 1:mariadb-server-5.5.65-1.el7.x86_64 已安装并且是最新版本
软件包 1:mariadb-5.5.65-1.el7.x86_64 已安装并且是最新版本
软件包 php-5.4.16-48.el7.x86_64 已安装并且是最新版本
没有可用软件包 php-mtsql。
无须任何处理
[root@zbx ~]#

2)启用LAMP平台相关服务

[root@zbx ~]# systemctl enable httpd mariadb --now	//设置开机自运行,并立即开启服务
[root@zbx ~]#

步骤三:禁用防火墙和SELinux保护机制

[root@zbx ~]# systemctl stop firewalld.service 		//立即停止防火墙
[root@zbx ~]# systemctl disable firewalld.service 	//禁止开机自动运行
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zbx ~]#

2)关闭SELinux机制

[root@zbx ~]# setenforce 0		//使SELinux失效
[root@zbx ~]# vim /etc/selinux/config		//开机时禁用
	SELINUX=disable

步骤三:安装、启用zabbix主控机

1)安装依赖包+组件

[root@zbx ~]#yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*

ZABBIX平台部署及使用

[root@zbx ~]# yum -y install php-bcmath php-mbstring	//安装php支持zabbix组件

ZABBIX平台部署及使用

[root@zbx ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm  #会自动生成ZABBIX相关的yum源文件,保证系统可以上网
[root@zbx ~]# yum install zabbix-server-mysql zabbix-web-mysql -y    #安装zabbix组件

ZABBIX平台部署及使用

2)准备ZABBIX数据库与用户。

[root@zbx ~]# mysql -uroot -p
Enter password: 
......
MariaDB [(none)]> create  database  zabbix  character set utf8 collate utf8_bin;
MariaDB [(none)]> grant  all  on  zabbix.*  to  zabbix@localhost  identified  by  'sss@123';

ZABBIX平台部署及使用

3)导入数据到数据库zabbix中

[root@zbx ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -p -h localhost zabbix
Enter password: 
[root@zbx ~]#

如果zabbix数据库密码忘记,可编辑下列文件,修改密码

[root@zbx ~]# vim /etc/zabbix/zabbix_server.conf	//编辑ZABBIX配置文件
[root@zbx ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf	//确认修改结果

ZABBIX平台部署及使用

4)配置时区,并设置加入开机自启动zabbix-server

[root@zbx ~]# vim /etc/httpd/conf.d/zabbix.conf
将#php_value date.timezone Europe/Riga 变更成 php_value date.timezone Asia/Shanghai
[root@zbx ~]# systemctl enable zabbix-server --now	//设置开机自启,并立即启动ZABBIX服务
[root@zbx ~]# netstat -anpt | grep zabbix	//监听在10051端口上,如果没监听成功,可重启zabbix-server服务试试

ZABBIX平台部署及使用
ZABBIX平台部署及使用

步骤四:安装zabbix监控的Web前端系统

1)重启httpd服务以更新zabbix的网页配置

[root@zbx ~]# systemctl restart httpd
[root@zbx ~]#

2)从浏览器访问 http://192.168.10.156/zabbix/ 前端页面

ZABBIX平台部署及使用
单击Next step按钮,根据提示进行Zabbix监控的Web前端系统安装。
ZABBIX平台部署及使用
上图中所有检查项必须全部是OK!!!

输入前面创建的用户名和密码
ZABBIX平台部署及使用
接下来这个页面可以在Name处为你的zabbix系统起一个名字,或者不用起名直接单击Next Step继续。
ZABBIX平台部署及使用

3)确认安装设置,完成Web前端系统的安装

ZABBIX平台部署及使用
看到“Congratulations!”的提示,说明安装已经成功,单击Finish就可以结束安装了。
ZABBIX平台部署及使用

步骤五:安装、启用zabbix被控机

这里我使用KALI作为被控机。

root@KALI:~# apt-get -y install zabbix-agent

ZABBIX平台部署及使用

步骤六:调整被控机配置,允许主控机192.168.10.156采集数据

调整zabbix-agent配置文件,允许zabbix主控机(默认只允许自己127.0.0.1)来采集数据。

root@KALI:~# vim /etc/zabbix/zabbix_agentd.conf		//编辑被控端文件
	Server=192.168.10.156			//添加主控机地址,多个地址以逗号分隔
	ServerActive=192.168.10.156	//添加主控机地址,多个地址以逗号分隔
	Hostname=KALI.sss.cn	//本机的主机名
root@KALI:~# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf	//确认结果

ZABBIX平台部署及使用

步骤七:启动zabbix-agent被控服务

被控端服务zabbix-agent主要负责与主控端的zabbix-server通信,报告、提供需要的监控数据,相当于在被控机上安置的一个“卧底”。
为了顺利实现监控,需要启用zabbix-agent服务。

root@KALI:~# systemctl enable zabbix-agent.service --now	//开机自启,并立即运行服务
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /lib/systemd/system/zabbix-agent.service.
root@KALI:~#

3 管理监控项

步骤一:确认zabbix登录页面,启动zabbix-server主控服务

1)以默认管理员Admin登录Zabbix平台

ZABBIX平台部署及使用
登录成功以后,可以看到英文版的zabbix监控网页。
ZABBIX平台部署及使用

2)将界面语言更改为“Chinese(zh_CN)”

单击zabbix监控页面右上方的头像标识,可以打开当前用户的属性设置页面。
单击“Language”右侧的下拉箭头,选择“Chinese(zh_CN)”,然后单击下方的“Update”按钮更新用户属性。
ZABBIX平台部署及使用
更新成功后,zabbix监控页面就会变成中文。
ZABBIX平台部署及使用

步骤二:检查“Zabbix Server”的监控项

1)查看被监控主机

单击zabbix监控页面上的“配置”–>“主机”,可以列出被监控主机。Zabbix平台默认已将本机添加为被监控对象,单击右上角 创建主机 添加被控机KALI。
注意:主机名为KALI的系统主机名
同时最好在 /etc/hosts,下做相应的映射。

root@KALI:~# hostnamectl 
   Static hostname: KALI.sss.cn		//主机名称
         Icon name: computer-vm
           Chassis: vm
        Machine ID: d6b913ac13654f269ae1a362b219135b
           Boot ID: 8e18278fd39147198f9e8d5b921bc85b
    Virtualization: vmware
  Operating System: Kali GNU/Linux Rolling
            Kernel: Linux 5.5.0-kali2-amd64
      Architecture: x86-64
root@KALI:~# vim /etc/hosts
	......
	192.168.10.128	KALI	KALI.sss.cn	
	192.168.10.156	zbx		zbx.sss.cn

同理,在ZABBIX上也要做相应的映射。

创建被控机:
ZABBIX平台部署及使用
ZABBIX平台部署及使用

2)为KALI添加监控项模板

点击KALI的名称,在新窗口中选择模板。
ZABBIX平台部署及使用
选择Linux系统的模板。
ZABBIX平台部署及使用
ZABBIX平台部署及使用

3)选择Zabbix Server的监控项

可以看到此主机的各种监控项目。
ZABBIX平台部署及使用
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[]

4)控制监控项

在监控项管理页面,不仅可以查看监控项,还可以禁用指定的监控项、或者删除用不到的自动发现的监控项。比如,可以把自动发现的针对虚拟接口virbr0的监控项删除。
ZABBIX平台部署及使用

步骤三:确认/添加对本机网卡(比如eth0)入站流量、出站流量的监控

常用的网络流量监控项采用 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”字样。
如果没有也可以自行创建:
ZABBIX平台部署及使用

ZABBIX平台部署及使用

步骤四:配置 icmpping 检查设备存活状态

1)在Zabbix Server上添加一个监控项,检测路由器102是否能ping通

在监控项管理页面,单击右上角的“创建监控项”页面,在接下来的设置页面中指定名称“路由器102存活状态”、类型选“简单检查”,然后选择好icmpping键值并正确修改检测参数,然后单击底部的“添加”就可以了。这里用KALI当作路由器。
ZABBIX平台部署及使用

2)再添加一个监控项,检测交换机103是否能ping通

这里192.168.10.2是网关,用来模拟一个交换设备
ZABBIX平台部署及使用

4 使用监控图形

步骤一:访问“图形”管理页

单击zabbix平台中的“配置”–>“主机”–>选中被监控主机–>“图形”,可以看到已经创建的监控图形(默认都是从模板创建的)。
ZABBIX平台部署及使用
zabbix 默认的绘图字体位于 /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键刷新图形查看页面,图形中的汉字就能够正常显示了。
ZABBIX平台部署及使用

步骤二:创建“网卡流量分析”,整合入站/出站流量数据

1)添加“网卡流量分析”图形

通过zabbix监控页的“配置”–>“主机”–>”“图形“–>创建图形”,使用网卡ens33的入站流量、出站流量两个监控项创建“网卡流量分析”监控图形。
ZABBIX平台部署及使用

2)查看“网卡流量分析”图形结果

单击zabbix平台的“监测”–>“图形”–>选择“网卡流量分析”图形,可以看到非常直观的、动态的流量图形。
ZABBIX平台部署及使用

步骤三:创建“路由器102状态”,监控路由器102的存活状态

1)添加“路由器102状态”图形

通过zabbix监控页的“监测”–>“图形”–>“创建图形”,使用“路由器102存活状态”监控项创建“路由器102状态”监控图形。
ZABBIX平台部署及使用

2)查看“路由器102状态”图形结果

单击zabbix平台的“监测”–>“图形”–>选择“路由器102状态”图形,可以看到监控结果,数值为1的线表示此设备可ping通,数值为0的线(如果有的话)表示不能ping通。
ZABBIX平台部署及使用

5 配置zabbix邮件告警

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

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

方案

zabbix监控系统的事件通知机制。
ZABBIX平台部署及使用

步骤一:配置报警媒介类型(谁负责发送告警邮件、如何发送)

正确设置可用来发送电子邮件的服务器(这里选用本机自带的邮件服务)信息、发件人电子邮箱地址,以QQ邮箱为例。
为了确保QQ邮箱正常通过SMTP发送邮件,需要在用于发送报警信息的QQ邮箱中设置。
登录QQ邮箱主页 ,选择”设置“ -->账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务:
ZABBIX平台部署及使用
第二项IMAP/SMTP一般是默认关闭的,开启前需要使用邮箱关联的手机号发送信息到指定的号码。
ZABBIX平台部署及使用
发送信息后会返回一串授权码,该授权码用于后面ZABBIX Server中创建发件人时登录邮箱的密码。
出于安全考虑,第三方不能使用邮箱原始密码登录邮箱。
ZABBIX平台部署及使用
ZABBIX平台部署及使用

管理–>报警媒介类型–>Email,创建邮件报警的发件人。
这里填入的密码是上图获得的的授权码,切记!!!
ZABBIX平台部署及使用

步骤二:配置报警媒介(告警邮件发送给谁)

管理–>用户–>选择用户XX–>报警媒介–>添加。
ZABBIX平台部署及使用
ZABBIX平台部署及使用

步骤三:配置动作

配置–>动作–>创建动作。
比如,示警程度在“一般严重”以上时发送报警。
ZABBIX平台部署及使用

ZABBIX平台部署及使用

步骤四:配置监控项及触发器

配置–>主机–>选中主机–>触发器–>创建触发器。
比如,当登录用户数超过5个,允许任务书超过200个时,生成 “一般严重” 事件消息。
ZABBIX平台部署及使用
ZABBIX平台部署及使用
ZABBIX平台部署及使用
确认结果:
ZABBIX平台部署及使用

步骤五:模拟用户登录数超标

在被控主机Zabbix server上同时打开多个命令行终端,也可以使用SecureCRT、Putty等工具远程登录到Zabbix server服务,来模拟超过5个用户登录的情况。
具体过程略。
登录7个终端
ZABBIX平台部署及使用

查看当前任务数,可以看见当前的任务数远大于200。
ZABBIX平台部署及使用

步骤六:检查用户收到告警邮件消息

当设置的动作满足条件时,即发起对应的邮件告警操作,用户报警媒介对应的收件人电子邮箱中会收到通知邮件。
登录收件人的邮箱,可以收到报警邮件。
ZABBIX平台部署及使用
ZABBIX平台部署及使用
ZABBIX平台部署及使用
同时,通过ZABBIX Server上 “监测”–>“仪表板”页面也会看到相应的问题报告。
ZABBIX平台部署及使用

上一篇:数组的一些常用方法分析 介绍


下一篇:zabbix 4.4监控搭建