通用架构为客户端/服务器端模式,客户端将采集到的数据传输给服务器
分布式架构为客户端/代理端/服务器端,客户端将采集到的数据传输到代理服务器端,然后通过代理服务器端将数据汇总传输到zabbix-server端
主动方式(push):客户端将采集到的数据,主动传输到服务器端,这种方式对服务器的开销较小,适合大规模的监控环境
被动方式(pull):服务器主动向客户端拉取数据,这种方式将增加服务器的开销,只适合小规模监控环境
3、常见监控指标
主机:监控CPU、内存、硬盘的剩余空间/利用率和I/O、SWAP使用率、系统启动时间、进程数、负载
网卡:监控ping的响应时间及数据包发送的成功率、网卡流入/流出量和错误的数据包数
文件:监控文件大小、文件指纹哈希值、匹配查询、字符串存在与否
URL:监控指定URL访问过程中的返回码、下载时间及文件大小,返回数据的匹配
应用程序:监控端口和内存使用率、CPU使用率、服务状态、请求数、并发连接数、消息队列的字节数、客户端事务处理数等
数据库:监控数据库中指定的表空间、数据库的游标数、会话数、事务数、死锁数、缓冲池命中率、缓存库命中率、当前连接数、进程的内存利用率等性能参数
日志:监控错误日志匹配、特定字符串匹配
硬件:监控温度、风扇转速、电压、电源、主板控制器、磁盘阵列等
4、zabbix数据采集方式
zabbix支持:agent(专用代理客户端)、SNMP、SSH、Telnet、IPMI等
5、磁盘空间使用估算
由于使用环境不同,数据大小可能有差别,因此在规划磁盘空间时,只能大于估算空间,不能小于估算空间
历史数据使用空间
数据保存天数 x 监控项数量 / 刷新时间 x 24小时 x 3600秒 x 50B
# 60000个监控项,刷新时间60s,数据保存90天
90*24*3600*60000/60*50 约等于:362G
主要是安装与配置Apache、MySQL、PHP
# 1、安装基础环境
[root@localhost ~]# yum -y install httpd mariadb mariadb-server php
# 2、配置mariadb-server配置文件
[root@localhost ~]# vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
## 配置MySQL数据存放目录
datadir=/var/lib/mysql
## socket文件路径
socket=/var/lib/mysql/mysql.sock
## MySQL错误日志存放路径
log-error=/var/log/mariadb/mariadb.log
## pid文件路径
pid-file=/run/mariadb/mariadb.pid
## 设置字符集编码为UTF-8
character-set-server=utf8
## 让innodb的每个表文件单独存储
innodb_file_per_table=1
# 3、初始化数据库
[root@localhost ~]# mysql_secure_installation
# 4、重置MySQL数据库root账户密码,如果执行过数据库初始化操作,这条语句就不需要执行了
[root@localhost ~]# mysqladmin -uroot password [user_pwd]
# 5、登录MySQL数据库
[root@localhost ~]# mysql -uroot -p[PASSWORD]
# 6、创建zabbix数据库,并设置使用UTF-8字符编码
MariaDB [(none)]> create database zabbix character set utf8;
# 7、设置数据库的所有权限,允许用户zabbix的IP地址:127.0.0.1访问,并设置zabbix账户的密码为zabbix
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';
# 8、设置数据库的所有权限,允许用户zabbix的localhost访问,并设置zabbix账户的密码为zabbix
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';
# 9、刷新权限,使其立即生效
MariaDB [(none)]> flush privileges;
6.2、安装zabbix
# 1、导入官方repo
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
# 2、安装zabbix-server、代理服务及代理客户端
[root@localhost ~]# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-agent
# 3、安装zabbix前端
[root@localhost ~]# yum install zabbix-web-mysql zabbix-apache-conf
6.3、导入zabbix数据库
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
6.4、配置zabbix_server.conf
[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf
# 设置数据库名称(默认)
DBName=zabbix
# 设置数据库用户名(默认)
DBUser=zabbix
# 设置数据库用户密码
DBPassword=zabbix
# 约5台服务器开一个进程,最大1000
StartPollers=100
# 视IPMI监控主机个数而定
StartIPMIPollers=10
# 不可达主机重试获取数据进程个数
StartPollersUnreachable=10
# trapper进程个数
StartTrappers=10
# ping进程个数
StartPingers=10
# 自动发现进程个数
StartDiscoverers=10
# 视具体情况设定
CacheSize=128M
# 视具体情况设定
HistoryCacheSize=128M
# 视具体情况设定
TrendCacheSize=128M
# 视具体情况设定
ValueCacheSize=128M
# 最大执行时长
Timeout=30
6.5、启动相关服务
[root@localhost ~]# systemctl start httpd mariadb zabbix-server zabbix-agent
6.6、设置开机启动
[root@localhost ~]# systemctl enable httpd mariadb zabbix-server zabbix-agent
6.7、开启防火墙端口或服务
# 允许HTTP服务通过防火墙
[root@localhost ~]# firewall-cmd --add-service=http --permanent
# agent端使用10050端口与连接服务器端10051端口
[root@localhost ~]# firewall-cmd --add-port=10050/tcp --permanent
# server端使用10051端口与agent代理客户端通信
[root@localhost ~]# firewall-cmd --add-port=10051/tcp --permanent
# 重载防火墙策略
[root@localhost ~]# firewall-cmd --reload
7、ZABBIX web初始化
在zabbix服务器配置完成后,在浏览器中输入zabbix-serverIP/zabbix,使用web界面对服务器进行最后的配置与初始化,此处直接上图