zabbix原理及zabbix的rpm包方式搭建

zabbix的含义:

zabbix的架构原理如下:

一、总体上zabbix的整体架构如下图所示:

重要组件说明:

1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3)web interface:zabbix的GUI接口;

4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

一个监控系统运行的大概的流程是这样的:

agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。

【主动监测】通信过程如下:

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:

 获取ACTIVE ITEMS列表

  • Agent打开TCP连接(主动检测变成Agent打开)
  • Agent请求items检测列表
  • Server返回items列表
  • Agent 处理响应
  • 关闭TCP连接
  • Agent开始收集数据

主动检测提交数据过程如下:

  • Agent建立TCP连接
  • Agent提交items列表收集的数据
  • Server处理数据,并返回响应状态
  • 关闭TCP连接

【被动监测】通信过程如下:

  • Server打开一个TCP连接
  • Server发送请求agent.ping\n
  • Agent接收到请求并且响应<HEADER><DATALEN>1
  • Server处理接收到的数据1
  • 关闭TCP连接

这里,有人可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。

还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:

1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。

2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

二、常用的监控架构平台

1、server-agentd模式:

这个是最简单的架构了,常用于监控主机比较少的情况下。

2、server-proxy-agentd模式:

这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。

##############################################################################

###############################################################################

############################################################################

#开始安装zabbix-server   10051端口

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm

yum -y install zabbix-server-mysql zabbix-web-mysql

121 ping mirror.tuna.tsinghua.edu.cn

122 echo "mirror.tuna.tsinghua.edu.cn"

123 echo "mirror.tuna.tsinghua.edu.cn 101.6.15.130" >>/etc/hosts;

124 cat /etc/hosts;

125 yum -y install zabbix-server-mysql zabbix-web-mysql

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

gpgcheck=1

#######################################################################################

安装zabbix-server-mysql遇到的坑:

 

 

wget http://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-compat-5.7.22-1.el7.x86_64.rpm

 

 

yum -y install mysql-community-libs-compat-5.7.22-1.el7.x86_64.rpm

yum -y install zabbix-server-mysql zabbix-web-mysql

 

 

安装数据库

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';

导入数据:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -uzabbix -p123456 zabbix

主机名和密码更改一下,其他2个即用户和数据库库名已存在zabbix

启动zabbix

systemctl disable firewalld --now

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

更改时区:
vi /etc/httpd/conf.d/zabbix.conf

 

 

 

 

 

启动http服务,开机自启http服务

访问前段网页:

Admin zabbix

posted @ 2023-03-28 23:28  往事已成昨天  阅读(287)  评论(0编辑  收藏  举报