一、Zabbix概述

1、Zabbix简介

zabbix是一个基于WEB界面的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由zabbix server与可选组件zabbix agent两部分组成:
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

2、Zabbix监控工作原理

Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。
 当Zabbix监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)。
agent收集数据分为主动和被动两种模式:
主动: agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy。
被动: server向agent请求获取监控项的数据,agent返回数据。

二、Zabbix5.0平台搭建

本章环境:
系统:CentOS Linux release 7.9.2009
数据库:Mysql 8.0.26

前期工作准备:

关闭防火墙 关闭selinux
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# systemctl distable firewalld.service
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
[root@localhost ~]# setenforce 0
1、下载安装zabbix存储源
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@localhost ~]# yum clean all
2、yum安装zabbx-server于agent
[root@localhost ~]#yum install centos-release-scl -y
3、 编辑文件 /etc/yum.repos.d/zabbix.repo 并启用 zabbix-frontend库
[zabbix-frontend]
...
enabled=1
...
4、安装zabbix前端包
[root@localhost ~]#yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y
5、数据库初始化zabbix账户密码
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

具体Mysql8.0部署操作请看,这里不再细说:

mysql8.0密码问题请参考:

zabbix日志 caching_sha2_password报错请参考:

6、在 Zabbix server上导入初始模板数据,系统将提示您输入新创建的密码
[root@localhost ~]#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
7、编辑配置/etc/zabbix/zabbix_server.conf
增加一条,password是你数据库的密码
DBPassword=password
8、配置PHP

编辑文件/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
取消注释’listen’ 和 ‘server_name’
这里说明:server_name 后面必须设置成自己的IP,不然后面访问页面会报错

listen          80;
server_name     192.168.150.134;

编辑文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,将 nginx 添加到 listen.acl_users 指令中。

listen.acl_users = apache,nginx

然后取消注释并设置时区为Asia/Shanghai

php_value[date.timezone] = Asia/Shanghai
9、启动zabbix-server及代理并加入系统服务
[root@localhost ~]#systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
[root@localhost ~]#systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
10、谷歌浏览器访问http://zabbixIP 进入图形配置页面

zabbix获取agent值 zabbix agent 原理_zabbix

这里检查是否都是ok

zabbix获取agent值 zabbix agent 原理_php_02


zabbix获取agent值 zabbix agent 原理_php_03

这里出现Cannot connect to the database.报错,是因为缺少一个zabbix.conf.php文件

解决方法:

[root@localhost ~]# find / -name zabbix.conf.php.example
/usr/share/zabbix/conf/zabbix.conf.php.example
[root@localhost conf]# mv zabbix.conf.php.example zabbix.conf.php

这里我们给他改名为zabbix.conf.php,随后我们编辑他,在里面修改我们的数据库参数就可以了

zabbix获取agent值 zabbix agent 原理_zabbix_04

保存退出,重启一下zabbix服务,在刷新一下页面

[root@localhost ~]#systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

zabbix获取agent值 zabbix agent 原理_zabbix获取agent值_05


zabbix获取agent值 zabbix agent 原理_zabbix_06


zabbix获取agent值 zabbix agent 原理_mysql_07


注意:这里admin有的时候是大写Admin

zabbix获取agent值 zabbix agent 原理_php_08


这里可以改成中文:

zabbix获取agent值 zabbix agent 原理_zabbix获取agent值_09

好了,本章到此结束!!!