目录
一、Zabbix是什么
Zabbix是企业级开源监控解决方案,支持实时监控数万台服务器、虚拟机和网络设备,采集百万级监控指标。
Zabbix由zabbix-server和zabbix-agent组成。zabbix-server由服务和可视化界面组成,可部署在大多数平台(Linux、OS X、Open BSD等)。zabbix-server除了能单独监控服务器,还能与zabbix-agent配合进行监控,将zabbix-agent部署在任意设备上用于收集监控数据并实时反馈给zabbix-server端处理、展示及预警(分为主动模式和被动模式)。zabbix-agent支持Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统。
另外,zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
1.主要特点
- 跨平台Zabbix代理
- 自定义监控方法
- 数据可视化和报表
- 完善的告警与修复功能
- 海量模板,开箱即用
- 集中管理,分布式监控,无限拓展
2.主要功能
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 服务监控
- 端口监控
- 日志监控
3.主要应用及意义
- 常用于大型系统的设备及服务监控
- 监控服务器内存、CPU等,常用软件nginx、MySQL、redis等运行情况
- 运维管理提质增效
二、监控部署
使用两台虚拟机测试,一台部署zabbix-server,另一台部署zabbix-agent。
IP | 角色 | 系统版本 | 涉及软件 |
192.168.44.15 | zabbix-server | centos7.6 | zabbix-server、Mariadb、PHP、httpd等 |
192.168.44.16 | zabbix-agent | centos7.6 | zabbix-agent |
1.初始化虚拟机
在zabbix-server及所有agent上执行,关闭防火墙及selinux:
//临时关闭selinux
setenforce 0
//永久关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
//关闭防火墙及移除防火墙开机自启规则
systemctl stop firewalld && systemctl disable firewalld
2.部署zabbix-server
//提示:在192.168.44.15上部署
//安装zabbix源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
//修改为国内源以获得更快的安装速度
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
//安装zabbix-server主服务
yum install zabbix-server-mysql zabbix-agent -y
//安装兼容CentOS插件
yum install centos-release-scl -y
//启用前端源,安装可视化前端。修改/etc/yum.repos.d/zabbix.repo,将[zabbix-frontend]源的 enabled 改为 1,表示启用源
enabled=1
//安装前端
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
//安装数据库,这里使用centos7默认的Mariadb5.5。zabbix5是支持MySQL8.0的,但后期需要进行调整且小问题较多
yum install mariadb-server -y
//启动Mariadb并设置开机自启
systemctl start mariadb && systemctl enable mariadb
//以下命令初始化Mariadb,不熟悉的请百度,按需设置即可(记住设置的root密码,后面要用)
mysql_secure_installation
//使用上个步骤设置的root密码登录Mariadb
mysql -uroot -p
//创建数据库及设置权限,yourpassword是你为zabbix用户设置的密码
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'%' identified by 'yourpassword';
grant all privileges on zabbix.* to zabbix@'%';
exit;
//使用zabbix用户初始化数据,输入yourpassword,待数据初始化完毕
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
//编辑zabbix-server的配置文件/etc/zabbix/zabbix_server.conf,添加数据库的密码,注意是zabbix用户的密码
DBPassword=yourpasword
//编辑/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf文件,修改最后一行时区(注意前面的分号要删除)
php_value[date.timezone] = Asia/Shanghai
//重启相关服务并设置开机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
//浏览器输入前端访问地址:http://ip/zabbix,如httpd端口被修改,则使用:http://ip:port/zabbix登录。完成初始信息设置,即可登录(默认登录名Admin密码zabbix),登录后如下:
//页面默认为英文,可在左侧菜单User settings设置为中文或其他文字
//以上步骤完成基础配置。我们再添加一个主机,以便后面将zabbix-agent加进监控列表。【配置】-【主机】-【添加主机】。
//按如下步骤配置主机,配置完后不要点【添加】,继续配置模板。
//按如下步骤设置主机模板信息,配置完后点击【添加】,页面上方会提示绿色的已添加提示。
//查看刚刚添加的主机是否成功【监测】-【主机】。可以看到主机状态为【已启用】,但有1个问题标记且可用性那里【ZBX】显示为红色。这是因为还没有安装zabbix-agent。
3.部署zabbix-agent
//提示:在192.168.44.16上部署
//安装zabbix-agent
rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.14-1.el7.x86_64.rpm
//修改zabbix-agent配置文件 vi /etc/zabbix/zabbix_agentd.conf,修改以下三处。
Server=192.168.44.15
ServerActive=192.168.44.15
Hostname=192.168.44.16
//启动zabbix-agent并设置开机自启
systemctl start zabbix-agent && systemctl enable zabbix-agent
4.验证监控
//部署zabbix-agent后,在zabbix-server查看主机监控情况【监测】-【主机】,【ZBX】变为绿色,问题消失,监控正常。默认为一分钟刷新一次最新数据及状态。
三、术语解释及其他事项
1.zabbix-server:即服务器端,安装可视化管理界面。
2.zabbix-agent:即客户端(代理),安装在需要监控的主机上。
3.主机:需要监控的设备,包括服务器、路由器等设备。
4.模板:zabbix内置的海量通用模板,配置即用,包括OS、MySQL、Nginx、Redis等等。但需要注意的是启用模板需要在客户端编写相应的模板配置文件,zabbix官网提供对应模板的配置文件做为参考。
5.问题:即zabbix反馈给用户的监控信息,由触发器监测并推送。
6.zabbix使用多种颜色直管显示问题的严重程度及状态。
7.zabbix具有高度自定义的特点,支持用户编写自己的模板、脚本、触发器及配置监控的方式。
参考文档: