为了防止Zabbix单点故障,做了Zabbix的高可用,如果公司集群不是很大,单台就可以;
如果agentd特别多的话,就需要Proxy做代理,来减少Zabbix的压力;
数据存储在database数据库中;
开源,无软件成本投入
Server对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
开放式接口,扩展性强,插件编写容易
当监控的 item 比较多服务器队列此较大时可以采用主动状态,被监控客户端主动从server端去下载需要监控的item然后取数据上传到server端。这种方式对服务器的负载比较小。
Api的支持,方便与其他系统结合
需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
项目批量修改不方便。
社区虽然成熟,但是中文资料相对较少,服务支持有限。
入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发难度较大。
系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;且自定义的项目报警需要自己设置,过程比较繁琐。
缺少数据汇 总功能,如无法查看-组服务器平均值, 需进行二次开发;
类型 典型代表服务 安装的服务
数据库 MySQL,MariaDB,Oracle,SQL Server agent
应用软件 Nginx,Apache, PHP,Tomcat agent
集群 LVS,Keepalived,HAproxy,RHCS,F5 agent
虚拟化 VMware,KVM,XEN ,docker ,k8s agent
操作系统 Linux,Unix,Windows性能参数 agent
硬件 服务器,存储,网络设备 IPMI
网络 网络环境(内网环境,外网环境) SNMP
主动检测: 相对于agent而言; agent(active),agent向server请求与自己相关监控项配置, 主动地将server配置的监控项相关的数据发送给server;
主动监控能极大节约监控server的资源。
被动检测:相对于agent而言 ; agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;
Zabbix_ server:服务端守护进程
Zabbix_ agentd:agent守 护进程
zabbix_ proxy: 代理服务器
zabbix database: 存储系统,mysql, pgsq|
Zabbix_ web:web GUI图形化界面
Zabbix_ get:命令行工具,测试向agent发起数据采集请求
Zabbix_ sender:命令行工具,测试向server发 送数据
Zabbix_ java_ gateway: java网关
5.0版本对基础环境的要求有大的变化,最大的就是对php版本的要求,最低要求7.2.0 版本,对php扩展组
件版本也有要求,详见官网文档:https://www.zabbix.com/documentation/5.2/manual
环境准备工作:
服务器类型 系统和IP地址 备注
server服务器 CentOS7.4(64 位) 192.168.80.10 4G内存、zabbix-server-mysql、zabbix-agent、centos-release-scl
所有服务器关闭防火墙和SElinux
systemctl stop firewalld
setenforce 0
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
ls /etc/yum.repos.d/
sed -i ‘s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#’ /etc/yum.repos.d/zabbix.repo
vim /etc/yum.repos.d/zabbix.repo ##查看确认
yum clean all && yum makecache
yum install zabbix-server-mysql zabbix-agent -y
SCL(Software Collections )可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。
软件包会安装在/opt/rh目录下
为了避免系统广泛冲突,/opt/rh包安装在目录中, 例如,这允许你在CentOS 7机器上安装Python 3.5, 而不会删除或干扰Python 2.7
/etc/opt/rh/软件包的所有配置文件都存储在目录中相应的目录中,SCL包提供了定义使用所包含应用程序所需的环境变量的shell脚本
yum install centos-release-scl -y #需要在线源进行安装
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
ls /opt/rh/ #查看是否有rh-php72
rh-php72
systemctl enable --now mariadb.service
systemctl status mariadb.service
netstat -tunlp | grep :3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2692/mysqld
然后测试登录数据库。
mysql_secure_installation
mysql -uroot -p #输入密码
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create user zabbix@localhost identified by ‘abc123’;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql -u用户名 -p 数据库名
ls /usr/share/doc/zabbix-server-mysql*/create.sql.gz
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
mysql -uzabbix -pabc123
show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| zabbix |
±-------------------+
use zabbix;
show tables;
vim /etc/zabbix/zabbix_server.conf
grep ‘^DBPa’ /etc/zabbix/zabbix_server.conf
DBPassword=abc123
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
grep ‘timezone’ /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
systemctl restart zabbix-server.service zabbix-agent httpd rh-php72-php-fpm.service
systemctl enable zabbix-server.service zabbix-agent httpd rh-php72-php-fpm.service