Zabbix 5.0 LTS
该学习文档为 Zabbix 5.0 LTS 学习文档 (LTS:稳定版)
一、zabbix简介
Zabbix 是一个基于web界面的提供分布式系统监控以及网络监视功能的企业级的开源解决方案 Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
1.Zabbix的基本框架与组成
Zabbix 由 Zabbix Serer与可选组件 Zabbix agent 两部分组成
-
Zabbix server 可以通过SNMP,Zabbix agent,ping,端口监视等方法提供远程服务器/网络状态的监视 。
-
Zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息与操作系统有关的内存,cup等信息的收集。
SNMP(简单网络管理协议):Zabbix 也可以通过该协议来监控
2.Zabbix 各组件介绍
-
zabbix agent:部署在被监视主机上,负责被监视主机的数据,将数据发送给 zabbix server。
-
zabbix server :负责接收 agent 发送的报告信息,并且负责组织配置信息、统计信息、操作数据等 。
-
zabbix database:用于存储 zabbix 的配置信息、监视数据的数据库。
-
zabbix web:zabbix的 web 界面,管理员通过web界面管理zabbix配置以及查看 zabbix相关 监控信息,可以单独部署在独立的服务器上。
-
zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表erver端,完成局部区域的信息收集,最终统一发往 server端。
3.Zabbix的工作原理
Agent安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送到 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用于基于 Zabbix web 可以看到数据在前端展现图像。当 Zabbix监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短 信、钉钉),发送命令:(SHELL命令、Reboot、Restart、Install)
如果要推送到钉钉,微信等的上面,还需要创建一个新的触发器,原理是当报警媒介大于定义的阀值时,会自动执行一个脚本,通过位参推送给钉钉自定义的机器人的接口,然后展现给群组用户观看。
好处:灵活,可以定义监控项,不需要脚本,自定义模板(创建流程)
4.Zabbix的优点
-
安装与配置简单
-
支持多语言(包括中文)
-
免费开源
-
自动发现服务器与网络设备
-
分布式监控以及web集中管理功能
-
可以无agent监视
-
用户安全认证和柔和的授权方式
-
通过 web 界面设置或监视结果
-
email等通知功能
5.Zabbix 主要功能
CPU负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视
6.Zabbix优缺点
1)优点
-
自动发现服务器和网络设备
-
底层自动发现(如自动发现多实例mysql、tomcat进程等)
-
分布式的监控体系和集中式的web管理 支持主动监控和被动监控模式
-
支持多种操作系统linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD等
-
高效的Agent支持linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,windows NT4.0,window2000等
-
无Agent监控等多种监控方法(如:用SNMP协议监控路由或交换机、IPMI检测硬件温度 等)
-
安全的用户认证模式
-
灵活的用户权限设置
-
基于web的管理方法,支持自由的定义事件和邮件发送
-
高水平的业务视图监控资源,支持日志审计
-
丰富的监控基础模板
2)缺点
-
性能瓶颈,监控系统没有低估高峰期,具有持续性和周期性,机器量越大,数据的增大会使数据库的写入成为一定的瓶颈,官网给出的单机上限5000台,届时就需要增加proxy,增加成本
-
Zabbix采集数据有pull方式,也就是server主动模式,当目标机器量大之后,pull任务会出现积压。采集数据会延迟
-
项目二次开发,需要分析MySQL表结构,表结构比较复杂,通过API开发对开发能力有要求
-
内置housekeeping在执行过程中会对数据库增加压力,需要对数据库进行优化
7.环境准备
1.操作系统:CentOS 7.X
2.Zabbix版本:5.0 LTS
3.网络情况:能连接互联网,配置网络yum源,禁止配置epel源
4.关闭SELinux和firewalld防护
二、zabbix 安装搭建
注:按装搭建zabbbix的服务器安装时和 php7.1有冲突:若此机器上已经安装php7.1就安装不上 zabbix
1.搭建zabbix服务器端
1)软件配置
1.1 安装基础web环境
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
# 或选择官方自带yum仓库,切记不要安装epel源,会和zabbix源造成冲突
1.2 安装基础web环境所需软件包
yum -y install net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools mariadb mariadb-server
1.3 配置mariadb数据库并启动
systemctl enable mariadb
systemctl start mariadb
2)安装zabbix服务器端
2.1 下载并安装zabbix仓库,并安装zabbix服务器端和客户端
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum -y install zabbix-server-mysql zabbix-agent
2.2 安装并修改zabbix frontend仓库,然后安装zabbix前端软件包
vim /etc/yum.repos.d/zabbix.repo #修改zabbix官方yum仓库
yum -y install centos-release-scl
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
2.3 创建数据库,授权指定用户管理数据库
mysql
create database zabbix default character set utf8 collate utf8_bin;
grant all on zabbix.* to "zabbix"@"localhost" identified by "123456";
cd /usr/share/doc/zabbix-server-mysql-5.0.39/
# 解压create.sql.gz 并导入到mysql当中
gunzip create.sql.gz
mysql zabbix < create.sql
3)修改zabbix server 配置文件
$ vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix #授权mysql的账户
DBPassword=123456 #登陆mysql数据库的密码
4)编辑PHP配置解析配置
cd /etc/opt/rh/rh-php72/php-fpm.d/
vim zabbix.conf
php_value[date.timezone] = Asia/Shanghai
5)启动httpd等服务,并设置开机自启
systemctl enable httpd zabbix-server zabbix-agent rh-php72-php-fpm
systemctl start httpd zabbix-server zabbix-agent rh-php72-php-fpm
6)使用浏览器访问,安装zabbix
http://192.168.180.61/zabbix 安装并配置zabbix web界面
# 数据库密码 Password:123456
账号:Admin
密码:zabbix
中文显示乱码解决方法
打开windows控制面板——打开字体——选择需要的字体复制到桌面——导入linux当中
cd /usr/share/fonts/dejavu
mv /root/msyh.ttc ./
# 把DejaVuSans.ttf替换成导入linux的字体
mv DejaVuSans.ttf DejaVuSans.ttf.bak
mv msyh.ttc DejaVuSans.ttf
字体显示正常
2.安装zabbix客户端(linux 端)
1)配置客户端软件仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#使用网络源和zabbix官方软件仓库
2)安装客户端软件
yum -y install zabbix-agent
3)修改zabbix agent配置文件
vim /etc/zabbix/zabbix_agentd.conf
server=zabbix server IP
ServerActive=192.168.180.61
# Server 和 ServerActive 填写的都是服务器端ip,区别就是主动模式和被动模式
4)启动zabbix agent服务
systemctl enable zabbix-agent
systemctl start zabbix-agent
5)web管理页面添加客户端监控
3.安装zabbix客户端(windows 端)
1)访问zabbix官网,下载windows版客户端软件
官方网址 Zabbix:企业级开源监控解决方案 下载Zabbix Agents
Host name #填写和zabbix web界面上相同的名字即可
zabbix server IP/DNS #填写zabbix server的IP地址即可
server or proxy for active checks #同样也填写zabbix server的IP地址
windows中启动的方法: 计算机——管理——服务——Zabbix Agent (右击属性)
选择windows 系统监控模板
Template OS Windows Zabbix agent #主动模式模板
Template OS Windows Zabbix agent active #被动模式模板
4.搭建zabbix proxy代理
1)配置代理服务器软件仓库并安装相关软件
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum -y install zabbix-proxy-mysql mariadb mariadb-server
2)配置mariadb数据库
systemctl enable mariadb
systemctl start mariadb
----
> create database zabbix_proxy default character set utf8 collate utf8_bin;
> grant all on zabbix_proxy.* to "zabbix"@"localhost" identified by "123456";
cd /usr/share/doc/zabbix-proxy-mysql-5.0.39/
zcat schema.sql.gz | mysql zabbix_proxy
3)修改zabbix proxy配置文件,并完成启动和自启动
vim /etc/zabbix/zabbix_proxy.conf
---------------------------------------------------------------
Server=192.168.180.61 #填写Zabbix主服务器的ip
ServerPort=10051
Hostname=Zabbix proxy
ListenPort=10051
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456 #默认为空,需要修改
DBPort=3306
# 注意:配置文件中Hostname的名称非常重要,确定好之后不要随便修改!!!
---------------------------------------------------------------
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
4)修改zabbix agent使用zabbix proxy监控
# 前提:被监控的主机已经安装好zabbix agent工具
vim /etc/zabbix/zabbix_agentd.conf
---------------
server=zabbix proxy IP
ServerActive=zabbix proxy IP
systemctl enable zabbix-agent
systemctl start zabbix-agent
# 要求zabbix agent将数据发往zabbix proxy进行保存处理
# 其余步骤同安装 zabbix 客户端相同,不再赘述
5)web管理界面添加代理,并设置zabbix agent指向zabbix proxy
添加主机,并设置zabbix agent指向zabbix proxy
添加主机,并设置zabbix agent指向zabbix proxy
注意:每次操作完之后都要点击更新才会生效,最后重启 zabbix server端,变更数据源为 zabbix proxy
# 在Zabbix Server端中
systemctl restart zabbix-server
# 在Zabbix proxy
systemctl restart zabbix-proxy
三、报警设置
1.web端声音报警
2.发送邮件报警
1)报警邮箱设置
需要获取所使用邮箱账号的授权码,这里以qq邮箱为例:
# 打开邮箱 STMP 服务获取授权码
配置完成后测试是否能正常发送邮件
邮箱报警需要两个邮箱,一个邮箱负责发送,另外一个邮箱才是真正接受报警信息的
1.发送邮箱:1833423618@qq.com
2.接收邮箱:3817022658@qq.com
# 两个邮箱可以是不同邮箱域
测试成功,接受邮箱成功收到发送邮箱的信息
2)将报警媒介添加到指定监控项的动作中
设置符合触发机制的操作行为:发现问题时发送的信息
Problem: {EVENT.NAME}
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
设置符合触发机制的操作行为:问题恢复时发送的信息
Resolved in {EVENT.DURATION}: {EVENT.NAME}
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
3)配置用户参数,设置收件人信息
4)验证邮箱报警是否正常