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*
[root@zbx ~]# yum -y install php-bcmath php-mbstring //安装php支持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组件
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';
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 //确认修改结果
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监控的Web前端系统
1)重启httpd服务以更新zabbix的网页配置
[root@zbx ~]# systemctl restart httpd
[root@zbx ~]#
2)从浏览器访问 http://192.168.10.156/zabbix/ 前端页面
单击Next step按钮,根据提示进行Zabbix监控的Web前端系统安装。
上图中所有检查项必须全部是OK!!!
输入前面创建的用户名和密码
接下来这个页面可以在Name处为你的zabbix系统起一个名字,或者不用起名直接单击Next Step继续。
3)确认安装设置,完成Web前端系统的安装
看到“Congratulations!”的提示,说明安装已经成功,单击Finish就可以结束安装了。
步骤五:安装、启用zabbix被控机
这里我使用KALI作为被控机。
root@KALI:~# apt-get -y install zabbix-agent
步骤六:调整被控机配置,允许主控机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-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监控网页。
2)将界面语言更改为“Chinese(zh_CN)”
单击zabbix监控页面右上方的头像标识,可以打开当前用户的属性设置页面。
单击“Language”右侧的下拉箭头,选择“Chinese(zh_CN)”,然后单击下方的“Update”按钮更新用户属性。
更新成功后,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上也要做相应的映射。
创建被控机:
2)为KALI添加监控项模板
点击KALI的名称,在新窗口中选择模板。
选择Linux系统的模板。
3)选择Zabbix Server的监控项
可以看到此主机的各种监控项目。
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的监控项删除。
步骤三:确认/添加对本机网卡(比如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”字样。
如果没有也可以自行创建:
步骤四:配置 icmpping 检查设备存活状态
1)在Zabbix Server上添加一个监控项,检测路由器102是否能ping通
在监控项管理页面,单击右上角的“创建监控项”页面,在接下来的设置页面中指定名称“路由器102存活状态”、类型选“简单检查”,然后选择好icmpping键值并正确修改检测参数,然后单击底部的“添加”就可以了。这里用KALI当作路由器。
2)再添加一个监控项,检测交换机103是否能ping通
这里192.168.10.2是网关,用来模拟一个交换设备
4 使用监控图形
步骤一:访问“图形”管理页
单击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键刷新图形查看页面,图形中的汉字就能够正常显示了。
步骤二:创建“网卡流量分析”,整合入站/出站流量数据
1)添加“网卡流量分析”图形
通过zabbix监控页的“配置”–>“主机”–>”“图形“–>创建图形”,使用网卡ens33的入站流量、出站流量两个监控项创建“网卡流量分析”监控图形。
2)查看“网卡流量分析”图形结果
单击zabbix平台的“监测”–>“图形”–>选择“网卡流量分析”图形,可以看到非常直观的、动态的流量图形。
步骤三:创建“路由器102状态”,监控路由器102的存活状态
1)添加“路由器102状态”图形
通过zabbix监控页的“监测”–>“图形”–>“创建图形”,使用“路由器102存活状态”监控项创建“路由器102状态”监控图形。
2)查看“路由器102状态”图形结果
单击zabbix平台的“监测”–>“图形”–>选择“路由器102状态”图形,可以看到监控结果,数值为1的线表示此设备可ping通,数值为0的线(如果有的话)表示不能ping通。
5 配置zabbix邮件告警
针对Zabbix服务器设置严重事件告警,当登录用户数超过5个或者运行进程数超过500个时,发送告警邮件给zabbix服务器的root用户。
- 依次配置报警媒介、报警媒介类型、动作
- 配置监控项及触发器
- 模拟用户登录数超标(比如同时登录7个用户)
- 在zabbix服务器上收取root用户的邮件,可以看到告警消息
方案
zabbix监控系统的事件通知机制。
步骤一:配置报警媒介类型(谁负责发送告警邮件、如何发送)
正确设置可用来发送电子邮件的服务器(这里选用本机自带的邮件服务)信息、发件人电子邮箱地址,以QQ邮箱为例。
为了确保QQ邮箱正常通过SMTP发送邮件,需要在用于发送报警信息的QQ邮箱中设置。
登录QQ邮箱主页 ,选择”设置“ -->账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务:
第二项IMAP/SMTP一般是默认关闭的,开启前需要使用邮箱关联的手机号发送信息到指定的号码。
发送信息后会返回一串授权码,该授权码用于后面ZABBIX Server中创建发件人时登录邮箱的密码。
出于安全考虑,第三方不能使用邮箱原始密码登录邮箱。
管理–>报警媒介类型–>Email,创建邮件报警的发件人。
这里填入的密码是上图获得的的授权码,切记!!!
步骤二:配置报警媒介(告警邮件发送给谁)
管理–>用户–>选择用户XX–>报警媒介–>添加。
步骤三:配置动作
配置–>动作–>创建动作。
比如,示警程度在“一般严重”以上时发送报警。
步骤四:配置监控项及触发器
配置–>主机–>选中主机–>触发器–>创建触发器。
比如,当登录用户数超过5个,允许任务书超过200个时,生成 “一般严重” 事件消息。
确认结果:
步骤五:模拟用户登录数超标
在被控主机Zabbix server上同时打开多个命令行终端,也可以使用SecureCRT、Putty等工具远程登录到Zabbix server服务,来模拟超过5个用户登录的情况。
具体过程略。
登录7个终端
查看当前任务数,可以看见当前的任务数远大于200。
步骤六:检查用户收到告警邮件消息
当设置的动作满足条件时,即发起对应的邮件告警操作,用户报警媒介对应的收件人电子邮箱中会收到通知邮件。
登录收件人的邮箱,可以收到报警邮件。
同时,通过ZABBIX Server上 “监测”–>“仪表板”页面也会看到相应的问题报告。