Zabbix 监控系统部署

Zabbix 监控系统简介

Zabbix是一个企业级开源分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的运行状况和完整性。
在这里插入图片描述
Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。 Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。

Zabbix 发展历史

Zabbix的发展历史可以追溯到1998年,由Alexei Vladishev创建,最初是为了自动化日常系统管理工作。以下是Zabbix的主要发展历程:

  • 1998年:Alexei Vladishev开始开发Zabbix,作为一个内部项目来监控大型数据库和网络设备。
  • 2001年:首个Alpha版本发布。 由 Alexei Vladishev 创建并首次发布。最初版本是一个简单的监控工具,用于解决 Alexei 在工作中遇到的 IT 基础设施监控问题。
  • 2004年:Zabbix 1.0正式版发布,标志着Zabbix的正式推出。这是第一个稳定版本,具备了基础的监控功能和简单的 Web 界面。
  • 2005年:Zabbix公司成立,并宣布Zabbix 100%开源。Zabbix SIA在拉脱维亚成立,为该项目提供商业支持和服务。

Zabbix 部署环境规划

节点规划如下:

节点名称节点IP操作系统版本
zabbix-server192.168.72.50Ubuntu 22.04v7.0
zabbix-agent192.168.72.51Ubuntu 22.04v7.0

其中zabbix-server节点同时部署zabbix-serverzabbix-web以及zabbix-agent三个组件,以及MySQL数据库服务。

MySQL数据库部署

zabbix依赖数据库存储监控数据,在zabbix-server节点安装mysql数据库。

配置主机名

root@ubuntu:~# hostnamectl set-hostname zabbix-server

安装mysql-server

apt update -y
apt install -y mysql-server
mysql_secure_installation --use-default

查看安装版本

root@zabbix-server:~# mysqld --version
/usr/sbin/mysqld  Ver 8.0.37-0ubuntu0.22.04.3 for Linux on x86_64 ((Ubuntu))

查看数据库服务运行状态

root@zabbix-server:~# systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-06-27 12:27:35 CST; 3h 39min ago
   Main PID: 3426 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 4556)
     Memory: 365.1M
        CPU: 13.084s
     CGroup: /system.slice/mysql.service
             └─3426 /usr/sbin/mysqld

Jun 27 12:27:34 db01 systemd[1]: Starting MySQL Community Server...
Jun 27 12:27:35 db01 systemd[1]: Started MySQL Community Server.
root@zabbix-server:~# 

默认情况下,MySQL在127.0.0.1的本地地址上监听3306端口,可以使用以下命令查看:

root@db01:~# ss -antpl | grep -i mysql
LISTEN 0      70         127.0.0.1:33060      0.0.0.0:*    users:(("mysqld",pid=3426,fd=21))        
LISTEN 0      151        127.0.0.1:3306       0.0.0.0:*    users:(("mysqld",pid=3426,fd=23))  

Zabbix-server安装

以下操作在zabbix server节点执行。

官方文档:https://www.zabbix.com/cn/download

在官方网站选择相应平台获取安装命令,这里以Zabbix 7.0 + Ubuntu + MySQL + Apache为例。
在这里插入图片描述

安装 Zabbix 软件

配置 zabbix 软件源

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
apt update

或者使用国内阿里云APT源

sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' \
/etc/apt/sources.list.d/zabbix.list
apt update -y

安装Zabbix server,Web前端,agent

apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf \
zabbix-sql-scripts zabbix-agent

初始化zabbix数据库。

在数据库主机上运行以下代码,默认数据库无密码,直接回车。

root@zabbix-server:~# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'Zabbix@123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入初始架构和数据,系统将提示您输入新创建的密码,这里为Zabbix@123456

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

导入数据库架构后禁用log_bin_trust_function_creators选项。

root@zabbix-server:~# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

为Zabbix server配置数据库,编辑配置文件 /etc/zabbix/zabbix_server.conf

$ vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@123456
DBPort=3306
ValueCacheSize=256M

安装中文语言包

sudo apt install -y zabbix-frontend-php language-pack-zh-hans

解决图形下方中文乱码问题,查看zabbix使用的字体文件

root@zabbix-server:~# ll /usr/share/zabbix/assets/fonts
total 16596
drwxr-xr-x 2 root root      148 Jul  2 18:11 ./
drwxr-xr-x 5 root root       44 Jul  1 19:36 ../
-rw-r--r-- 1 root root 16791251 Jul  2 18:04 DejaVuSans.ttf
lrwxrwxrwx 1 root root       38 Jul  1 19:37 graphfont.ttf -> /etc/alternatives/zabbix-frontend-font
-rw-r--r-- 1 root root   149851 May 29 14:35 zabbix-icons.svg
-rw-r--r-- 1 root root    22072 May 29 14:35 zabbix-icons.ttf
-rw-r--r-- 1 root root    11716 May 29 14:35 zabbix-icons.woff
-rw-r--r-- 1 root root     9756 May 29 14:35 zabbix-icons.woff2

root@zabbix-server:~# ll /etc/alternatives/zabbix-frontend-font
lrwxrwxrwx 1 root root 47 Jul  1 19:37 /etc/alternatives/zabbix-frontend-font -> /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf

root@zabbix-server:~# cat /usr/share/zabbix/include/defines.inc.php |grep ZBX_GRAPH_FONT_NAME
define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name

安装中文字体,使用下载的字体文件wqy-zenhei.ttc替换DejaVuSans.ttf

apt install -y ttf-wqy-zenhei
cp /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf{,.bak}
cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf

启动Zabbix server和agent进程,并为它们设置开机自启:

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

打开Zabbix UI网页,开始使用Zabbix。使用Apache web服务器时,Zabbix UI的默认URL为http://host/zabbix

http://192.168.72.50/zabbix

选择默认语言
在这里插入图片描述
检查必要条件
在这里插入图片描述
配置数据库连接,数据库主机配置为localhost,密码为Zabbix@123456
在这里插入图片描述
设置主机名及系统时间
在这里插入图片描述
安装前汇总
在这里插入图片描述
完成安装
在这里插入图片描述

进入登录页面,默认账号密码为Admin/zabbix

在这里插入图片描述
登录后如下:
在这里插入图片描述

Zabbix-agent 安装

以下操作在zabbix-agent节点执行。

参考官方文档,选择agent组件,按照官方指引进行安装。
在这里插入图片描述
配置主机名

root@ubuntu:~# hostnamectl set-hostname zabbix-agent01

安装 Zabbix 软件源

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
apt update -y

安装Zabbix agent组件

apt install -y zabbix-agent

Zabbix agent配置

Zabbix Agent 分二种模式:

  • 主动模式:Zabbix Agent 启动之后,把采集的数据主动发给 Zabbix Server 或者 Zabbix Porxy;
  • 被动模式:Zabbix Server 或者 Zabbix Proxy 被动找 Zabbix Agent 拿监控数据。

在这里插入图片描述

监控数据请求流程
在这里插入图片描述

这二种模式在使用过程中有所不同,各有优势,主要有以下区别

模式Server 压力远程命令日志监控
主动不支持支持
被动支持不支持

鉴于以上不同,根据实际需求,选择对应模式。

  • 被动模式(仅配置 Server)适用于Zabbix Server和Zabbix Agent之间网络连通性良好的环境。
  • 主动模式(仅配置 ServerActive)适用于Zabbix Server不能直接访问Zabbix Agent的环境。
  • 同时配置:提供更高的灵活性和冗余,确保在多种网络环境下都能正常获取监控数据。

zabbix agent 主动模式配置

修改zabbix agent配置文件。

root@zabbix-agent01:~# vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.72.50
Hostname=zabbix-agent01
StartAgents=0

配置解释:

  • ServerActive 配置为 Zabbix Server 或 Zabbix proxy 的地址,这里可以配置域名/ip,如需配置多个地址,多地址之间用英文逗号隔开即可,如:192.168.1.100,10.10.1.100。这个参数指定了主动模式下Zabbix Agent将向哪个Zabbix Server或Zabbix Proxy发送监控数据。192.168.72.50 是Zabbix Server或Zabbix Proxy的IP地址。在主动模式下,Zabbix Agent会主动连接到Zabbix Server并发送监控数据。若纯被动模式可注释该参数。
  • Hostname 配置唯一的主机名,以便识别此机器。在 Zabbix 里,不同主机的区分就是通过 hostname 区分的,并不是通过 IP!因此这里建议进行规划,按照一定规律配置,比如区域-机房-业务-ip 等形式配置,此配置建议使用英文(有人修改只后可使用中文的),也可按照 FQDN 规则配置主机名。
  • StartAgents Zabbix Agent 配置以上 2 个参数之后,即可使用主动模式,如果要想非常“纯粹”的使用主动模式,而关闭被动模式,还需要增加一个配置StartAgents=0,此项目配置被动模式下 zabbix agentd 所派生的进程数量。如果配置为 0,会关闭被动模式检查,而且 Agent 不会监听任何主机 TCP 端口!。因为是数据是从 Agent 发出,因此主机放行对外通行即可(一般都放开),不需要在主机上添加配置防火墙规则。查看进程如下

启动zabbix-agent服务

systemctl restart zabbix-agent
systemctl enable zabbix-agent

主动模式配置之后,Agent 启动之后就会发送监控到 Server 或者 Proxy,如找不到对应的主机名,agent 日志会有如下报错

no active checks on server [172.16.66.20:10051]: host [node201] not found

Zabbix Server 或 Zabbix Proxy 的日志也会看到如下报错

cannot send list of active checks to "172.16.66.20": host [node201] not found

Zabbix web配置

此时就需要通过手动添加或 Zabbix Server 的自动注册功能,将主机添加到 Zabbix Server。 如果为手动添加主机,需要在 Zabbix Server 添加主机。

在web页面,选择数据采集–主机–创建主机
在这里插入图片描述

配置参数说明:

  • Host name 为必须配置项目,需要和 Agent 配置里的 Hostname 配置一致。这个参数指定了Zabbix Agent在Zabbix Server中的标识(即主机名)。node51是此Zabbix Agent的主机名,在Zabbix Server的Web界面中将会以这个主机名显示。这个主机名必须与Zabbix Server中的配置一致,否则会导致数据无法正确关联。
  • 接口不用配置。
  • 注意:主动模式使用的Zabbix模板必须带有xxx-active

添加后确认可用性
在这里插入图片描述
选择监测–最新数据,确认是否监测到最新数据:
在这里插入图片描述

Zabbix agent被动模式配置

要配置被动模式,只需要配置以下几个参数即可

root@zabbix-agent01:~# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.72.31
ListenPort=10050

配置参数说明:

  • Server 配置为 Zabbix Server 或 Zabbix proxy 的地址,这里可以配置域名/ip,如需配置多个地址,多地址之间用英文逗号隔开即可,如:192.168.1.100,10.10.1.100。这里可以理解为 ACL 功能,即允许那些 Zabbix Server 及 Zabbix Proxy 访问 Zabbix Agent,因此可以配置网段和配置成所有 IP,如:192.168.1.0/24 或 0.0.0.0/0,纯被动模式下只需要配置 Server 即可,Hostname 不配置。这个参数指定了被动模式下Zabbix Agent将接受来自哪个Zabbix Server或Zabbix Proxy的连接。192.168.72.31 是Zabbix Server或Zabbix Proxy的IP地址。在被动模式下,Zabbix Server会主动连接到Zabbix Agent来获取监控数据。若纯主动模式可注释该参数。
  • ListenPort:zabbix agent的监听端口,zabbix-server主动通过该端口访问zabbix-agent。

Zabbix web配置

被动模式配置之后,启动 zabbix agent,需要在 Zabbix Server 添加主机。

在web页面,选择数据采集–主机–创建主机
在这里插入图片描述
配置参数说明:

  • Host name 可随意配置,建议按照一定规则,不与其他机器重复即可,主机列表会显示此名称
  • interfaces agent 所在机器的 IP 和端口,这里一定要配置成 agent 真实的 IP,默认 zabbix agent 端口为 10050,可以通过配置文件进行修改
  • 注意:模板选择xxx,而非xxx-active,zabbix 自带模版大多数为被动模式,因此直接关联模版即可进行监控。

确认主机状态
在这里插入图片描述

zabbix-server 配置告警

示例场景:当zabbix-server监测到zabbix-agent01节点CPU负载过高时,发送告警到163邮箱。

设置163邮箱

登录 https://mail.163.com/ 邮箱,设置中开启POP3/SMTP/IMAP服务,新增并记录下授权密码
在这里插入图片描述

创建媒介类型

登录zabbix控制台,选择告警–媒介–创建媒介类型,配置如下,注意密码配置为授权码密码
在这里插入图片描述

设置消息模板。
在这里插入图片描述
添加后点击测试
在这里插入图片描述
确认测试成功
在这里插入图片描述
登录163邮箱,确认收到测试邮件
在这里插入图片描述

用户添加报警媒介

选择用户–用户–Admin–报警媒介–添加报警媒介

在这里插入图片描述

设置触发器动作

选择告警–动作–触发器动作–创建动作
在这里插入图片描述
选择操作,发送给指定用户
在这里插入图片描述

触发告警事件

在zabbix-agent01节点安装stress-ng工具,使用stress-ng进行压测,触发告警负载过高事件

apt install -y stress-ng
stress-ng --cpu 8 --vm 8

等待5分钟,在zabbix-server控制台查看产生的告警事件,并且状态显示已送达。
在这里插入图片描述

在163邮箱确认已收到告警邮件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willops

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值