Zabbix 的介绍以及部署

一、Zabbix 的概述

Zabbix 是一个监控软件,其可以监控各种网络参数,保证企业服务架构安全运营,同时支持灵活的告警机制,可以使得运维人员快速定位故障、解决问题。Zabbix 支持分布式功能,支持复杂架构下的监控解决方案,也支持 web 页面,为主机监控提供了良好直观的展现。

Zabbix 官网地址为 https://www.zabbix.com/
在这里插入图片描述

二、Zabbix 的结构

Zabbix 主要由 5 个组件构成:

2.1 Server

Zabbix server 是 Zabbix 的核心组件,Server 内部存储了所有的配置信息、统计信息和操作信息。Zabbix agent 会向 Zabbix server 报告可用性、完整性及其他统计信息。

2.2 Web 页面

Web 页面也是 Zabbix 的一部分,通常和 Zabbix server 位于一台物理设备上,但是在特殊情况下也可以分开配置。Web 页面主要提供了直观的监控信息,以方便运维人员监控管理。

2.3 数据库

Zabbix 数据库内存储配置信息、统计信息等 Zabbix 的相关内容。

2.4 Proxy

Zabbix proxy 可以根据具体生产环境进行采用或者放弃。如果使用了 Zabbix proxy,则其会替代 Zabbix server 采集数据信息,可以很好的分担 Zabbix server 的负载。Zabbix proxy 通常运用与架构过大、Zabbix server 负载过重,或者是企业设备跨机房、跨网段、Zabbix server 无法与 Zabbix agent 直接通信的场景。

2.5 Agent

Zabbix agent 通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给 Zabbix server。

三、 Zabbix 的监控范畴(监控对象)

Zabbix 支持监控各种系统平台,包括 Linux 和 Windows 等主流操作系统,也可以借助 SNMP 或是 SSH 协议监控路由交换设备。

Zabbix 如果部署在服务器上,可以监控其 CPU 、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

硬件监控: Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

系统监控: Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

Java 监控: Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

网络设备监控: Zabbix SNMP Interface ,通过 SNMP 协议与被监控对象进行通信,SNMP 协议的全称为 Simple Network Management Protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装 Agent,但是这些硬件都支持 SNMP 协议。

应用服务监控: Zabbix Agent UserParameter

MySQL 数据库监控: Percona-monitoring-plulgins

URL 监控: Zabbix Web 监控

四、 Zabbix 的常用术语

Zabbix 的学习需要掌握一些 Zabbix 的常用术语

4.1 主机(host)

监控的设备,可以由 IP 或者是主机名(必须可解析)指定。

4.2 主机组(host group)

主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。

4.3 监控项(item)

一个特定监控指标的相关数据,比如内存的大小、 CPU 的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个 Key 来标识。

4.4 触发器(trigger)

一个表达式,用于评估监控项的值是否在合理的范围内。当接受的值超出触发器的规定时,就被认为是故障,若超出后再次符合,就会被认为是正常。

4.5 事件(event)

触发器触发的一个特定事件,或者是 Zabbix 定义的一个自动上线注册主机的事件。

4.6 动作(action)

根据配置,Zabbix 对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。

4.7 报警升级(escalation)

发生警报或者是执行远程命令的自定义方案。

4.8 媒介(media)

发送通知(告警)的手段,如微信、邮件、钉钉等等。

4.9 通知(notification)

通过指定的媒介,想用户发送的有关事件的信息。

4.10 远程命令(remote command)

运维人员提前写好的命令,可以让被监控主机在触发事件后执行。

4.11 模板(template)

用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。

4.12 应用(application)

一组监控项的集合。

4.13 Web场景(web scennario)

用于检测 Web 站点可用性的一个或多个 HTTP 请求。

4.14 前端(frontend)

Zabbix 的 Web 接口。

上类术语都会在后面直接使用,从而不过多讲述了,到企业技术交流中也会经常使用。

五、 Zabbix 的工作流程

Zabbix 在进行监控时,Zabbix 客户端要安装在被监控设备上,负责定期收集数据,并将其发送给 Zabbix 服务端;Zabbix 服务端要安装在监控设备上,其将 Zabbix 客户端发送的数据存储的数据库中,Zabbix web 根据数据在前端进行展示和绘图。

5.1 Zabbix 的数据收集分为两种模式

5.1.1 主动模式

Zabbix 客户端主动向 Zabbix server 请求监控项列表,并主动监控项内需要的数据提交给 Zabbix server。

5.1.2 被动模式

Zabbix server 向 Agent 请求获取监控想玩的数据,Zabbix agent 返回数据。

由上述可以看出 Zabbix 的主动和被动模式是以 Zabbix 客户端为基准的。

在这里插入图片描述

六、 Zabbix 的进程解析

Zabbix 在默认的情况下,是有 6 个工作进程的,分别是 zabbix_agentd,zabbix_get,zabbix_proxy,zabbix_sender,zabbix_server 以及 zabbix_gateway。

其中,zabbix_java_gatewey 是个可选进程。

6.1 zabbix_agentd

zabbix_agentd 为 zabbix 客户端守护进程,主要负责收集客户端监控项数据。

6.2 zabbix_get

zabbix_get 为一个 zabbix 工具,通常运行在 zabbix server 或者 zabbix proxy 上,用于远程获取客户端信息,通常用于排错。

6.3 zabbix_proxy

zabbix_proxy 是 zabbix 代理进程,其功能类似 server ,作用上类似与一个中转站,到最后会把收集到的数据再次提交给 zabbix_server。

6.4 zabbix_sender

zabbix_sender 是一个 zabbix 工具,通常运行在 zabbix 客户端,通常用于耗时比较长的检查,其作用是主动发送数据。

6.5 zabbix_server

zabbix_server 为 zabbix 服务端守护进程,主要负责收集 zabbix 客户端数据。

6.6 zabbix_java_gatewey

zabbix_java_gatewey 是 zabbix2.0 之后引入的新功能,可以用户 JAVA 方面的设备,但是其只能主动获取数据,而不能被动获取数据。

七、 Zabbix 监控架构

实际生产中,根据网络环境和监控规模的不同,Zabbix 一共有三种监控架构,分别是 server-client 架构、master-node-client 架构和 server-proxy-client 架构。

7.1 server-client 架构

Zabbix 最简单的架构,监控设备和被监控设备之间直接相连,zabbix server 和 zabbix client 之间直接进行数据交互。

7.2 server-proxy-client 架构

proxy 是连接 server 和 client 之间的桥梁,其本身并不存放数据,只是将 zabbix agent 端发送来的数据暂存,然后再提交给 server。这种架构一般用于跨机房、跨网络的中型网络架构。在 server-proxy-client 架构架构中,server 设备的宕机会导致整个系统无法正常工作。

7.3 master-node-client 架构

master-node-client 架构是 zabbix 最复杂的架构,一般用于跨机房、跨网络、监控设备较多的大型网络架构。与 server-proxy-client 相比,master-node-client 架构的主要区别在于 node 与 proxy 上。在 master-node-client 架构中,每个node可以理解为一个小的 server 端,有自己的配置文件和数据库,node下游可以直接连接 client,也可以再次经过 proxy 代理后连接 client。在 master-node-client 架构中,master 设备宕机不会影响 node 结点的正常工作。

三种架构模式图:

7.3.1每个模块工作职责

  1. Zabbix Server:Zabbix Server 为核心组件,用来获取 Agent 存活状况及监控数据。所有的配置、统计、操作数据均通过 Server 进行存取到 database。

  2. Zabbix Database:用户存储所有 Zabbix 的配置信息、监控数据的数据库。

  3. Zabbix Web:Zabbix 的 web 界面,管理员通过 web 界面管理 zabbix 配置以及查看 zabbix 相关监控信息,通常与 Zabbix Server 运行在同一台主机上,也可以单独部署在独立的服务器上。

  4. Zabbix Proxy:常用于分布监控环境中,代理 Zabbix Server 收集部分被监控的监控数据并统一发往 Server 端;(通常大于 500 台主机需要使用)。

  5. Zabbix Agent:部署在被监控主机上,负责收集被监控主机的数据,并发往 Server 端或者 Proxy 端。

另外,Zabbix Server、Proxy、Agent 都有自己的配置文件以及 Log 文件,重要的参数需要正在这里配置。

八、Zabbix 源码的安装以及部署

8.1 服务端的安装

8.1.1 安装 Zabbix 5.0 存储卡(二进制安装方式)

rpm-Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

在这里插入图片描述

这时,记得去查看自己的库中会有一个 Zabbix 库
在这里插入图片描述

8.1.2 安装 Zabbix 软件包

在这里插入图片描述

可选配置:如果官方仓库无法连接,可将仓库地址改为清华大学,下边是清华大学仓库地址。

vim /etc/yum.repos.d/zabbix.repo

[zabbix]
name=Zabbix Official Repository - $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1 gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/ enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported
- $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX
gpgcheck=0

启用zabbix-frontend存储库
vim /etc/yum.repos.d/zabbix.repo
...
[zabbix-frontend]
name=Zabbix Official Repository frontend -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend 
enabled=1    ——启用仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX-A14FE591

在这里插入图片描述

8.1.3 安装 Zabbix 前端软件包

zabbix-web-mysql-scl       ——用于连接数据库
zabbix-apache-conf-scl     ——用于连接apache 

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl 

如果缺包加入以下两个库

yum -y install epel-release

yum install centos-release-scl

在这里插入图片描述
在这里插入图片描述

如果缺包了,它会提示,然后就去安装另外的库就可以了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1.4 安装数据库的软件

yum install -y mariadb-server

systemctl start mariadb		——启动数据库

systemctl enable mariadb	——设置开机自启

在这里插入图片描述

在这里插入图片描述

8.1.5 数据库的配置

进入数据库
mysql

在这里插入图片描述

创建存储数据的库,并支持中文(库名:zabbix)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

在这里插入图片描述

授权连接数据库的用户,并设置密码(用户名:zabbix)
MariaDB [(none)]> create user zabbix@localhost identified by '123456';

在这里插入图片描述

数据库授权,在本地登录的
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;

在这里插入图片描述

查看所有库
MariaDB [(none)]> show databases;
+--------------------+
| Database    |
+--------------------+
| information_schema |
| mysql    |
| performance_schema |
| test    |
| zabbix    |
+--------------------+
5 rows in set (0.00 sec)

在这里插入图片描述
别忘了结尾加“ ; ”的!

进入zabbix库
MariaDB [(none)]> use zabbix; 
Database changed

在这里插入图片描述

查看当前库下表
MariaDB [zabbix]> show tables; 
Empty set (0.00 sec)	  ——空

在这里插入图片描述

在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码
别忘了先退出数据库!!!
zcat /usr/share/doc/zabbix-server- mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: password    ——输入zabbix用户密码

在这里插入图片描述

Zabbix服务器配置数据库
vim /etc/zabbix/zabbix_server.conf
100 DBName=zabbix         ——存储监控数据的库名
116 DBUser=zabbix         ——连接数据库的用户
124 DBPassword=123456     ——设置zabbix用户密码

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为Zabbix配置正确的时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai    ——亚洲/上海 

在这里插入图片描述
在这里插入图片描述

8.1.6 启动后且查看

启动所有服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm



设置服务随机自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

查看zabbix服务占用端口信息
netstat -anptul | grep zabbix
tcp	LISTEN	0	128	*:10051
zabbix-server端口
tcp	LISTEN	0	128	*:10050
zabbix-agent端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值