分布式监控平台-Zabbix

news2025/1/17 13:57:38

分布监控平台-Zabbix

    • 一、Zabbix概述
      • 1、Zabbix是什么?
      • 2、Zabbix监控原理
    • 二、部署Zabbix服务端(端口:10051)
      • 1、关闭防火墙 修改主机名
      • 2、获取Zabbix下载资源
      • 3、安装SCL(Software Collections),修改 Zabbix-front 前端源
      • 4、添加数据库用户,以及Zabbix所需的数据库信息
      • 5、导入数据库信息
      • 6、修改Zabbix server配置文件
      • 7、启动Zabbix相关服务
      • 8、浏览器访问验证
    • 三、部署Zabbix客户端(端口号10050)
      • 1、服务端和客户端,配置时间同步
      • 2、客户端配置时区,要与服务端保持一致
      • 3、设置Zabbix的下载源,安装Zabbix-agent2
      • 4、安装Zabbix-agent2,并修改配置文件
      • 5、启动Zabbix-agent2
      • 6、在服务端验证Zabbix-agent2 的连通性
      • 7、将客户端加入服务端的监控主机
    • 四、在 Web 页面创建自定义监控项模板
      • 1、创建模板
      • 2、创建应用集(用于管理监控项的)
      • 3、创建监控项
      • 4、创建触发器
      • 5、创建图形
      • 6、将主机与模板关联起来
      • 7、设置邮件报警

一、Zabbix概述

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。
利用一个优秀的监控软件,我们可以:

  • 通过一个友好的界面进行浏览整个网站所有的服务器状态
  • 可以在Web 前端方便的查看监控数据
  • 可以回溯寻找事故发生时系统的问题和报警情况

1、Zabbix是什么?

  • zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。
  • zabbix由2部分构成,zabbix server 与可选组件zabbix agent。 通过c/s 模式采集数据,通过B/s模式在web端展示和配置。
  • zabbix server 可以通过SNMP(简单网络管理协议),zabbix agent,ping, 端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它 可以运行在Linux等平台上。(支持多个平台,windows也支持)
  • zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
    在这里插入图片描述

2、Zabbix监控原理

zabbix agent安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至zabbix server 端,zabbix server收到数据后,将数据存储到数据库中,用户基于zabbix WEB可以看到数据在前端展现图像。

当zabbix 监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、 restart、 install 等)。

用户可以基于zabbix-web可以在WEBUI界面中查看展现的数据图像,以及进行相关的配置管理用户还可以在WEBUI界面中设置监控项的触发器,如被监控的数据指标超过触发器设定的阈值,会进行发送通知信息或者一些应急操作指令。

二、部署Zabbix服务端(端口:10051)

实验环境:

节点IP地址安装服务
zabbix-server192.168.10.130zabbix-server-mysql 、zabbix-agent
zabbix-agent192.168.10.132zabbix-agent2

部署zabbix

zabbix-server内存至少2G,推荐4G

zabbix 服务端同时安装zabbix-server-mysql和zabbix-agent,因为服务端所在主机自己也要被监控。

1、关闭防火墙 修改主机名

[root@localhost ~]#hostname zbx-server 
[root@localhost ~]#su
[root@zbx-server ~]#systemctl disable --now firewalld   #开机不再启动防火墙
[root@zbx-server ~]#setenforce 0

2、获取Zabbix下载资源

[root@zbx-server ~]#rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zbx-server ~]#cd /etc/yum.repos.d/

[root@zbx-server yum.repos.d]#sed -i  's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo  #更换 zabbix.repo 为阿里源

[root@zbx-server yum.repos.d]#yum clean all
[root@zbx-server yum.repos.d]#yum makecache 

在这里插入图片描述

3、安装SCL(Software Collections),修改 Zabbix-front 前端源

便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。

[root@zbx-server yum.repos.d]#yum install -y centos-release-scl
[root@zbx-server yum.repos.d]#vim zabbix.repo 
[root@zbx-server yum.repos.d]#yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

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

安装Zabbix所需的数据库

[root@zbx-server yum.repos.d]#yum install -y mariadb-server.x86_64 mariadb
[root@zbx-server yum.repos.d]#systemctl enable --now mariadb.service 
[root@zbx-server ~]#yum install -y zabbix-server-mysql zabbix-agent

在这里插入图片描述

[root@zbx-server yum.repos.d]#mysql_secure_installation   #初始化数据库,并设置密码abc123

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

4、添加数据库用户,以及Zabbix所需的数据库信息

[root@zbx-server yum.repos.d]#mysql -uroot -pabc123

create database zabbix character set utf8 collate utf8_bin;  #修改字符集utf8

grant all on zabbix.*to 'zabbix'@'%' identified by 'zabbix'; #创建权限用户,是的zabbix可以访问数据库

flush privileges;  #刷新权限

在这里插入图片描述

5、导入数据库信息

[root@zbx-server ~]#rpm -ql zabbix-server-mysql  查询sql文件位置
[root@zbx-server ~]#zcat /usr/share/doc/zabbix-server-mysql-5.0.33/create.sql.gz | mysql -uroot -pabc123 zabbix

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

6、修改Zabbix server配置文件

修改数据库密码

[root@zbx-server ~]#vim /etc/zabbix/zabbix_server.conf 

DBPassword=zabbix					#124行,指定 zabbix 数据库的密码
#保存退出
[root@zbx-server ~]#vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 
 
php_value[date.timezone] = Asia/Shanghai  25行,取消注释,修改时区
#保存退出

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

7、启动Zabbix相关服务

[root@zbx-server ~]#systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zbx-server ~]#systemctl enable  zabbix-server zabbix-agent httpd rh-php72-php-fpm

在这里插入图片描述

8、浏览器访问验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
中文模式下有乱码
在这里插入图片描述
解决 Zabbix-server Web页面中文乱码问题
在这里插入图片描述
在这里插入图片描述

三、部署Zabbix客户端(端口号10050)

zabbix 5.0版本采用golang 语言开发的新版本客户端agent2 。
zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

[root@localhost ~]#setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]#systemctl  disable --now firewalld
[root@localhost ~]#hostname zbx-agent1

1、服务端和客户端,配置时间同步

[root@zbx-agent1 ~]#yum install -y ntpdate.x86_64 
[root@zbx-agent1 ~]#ntpdate -u ntp.aliyun.com

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

2、客户端配置时区,要与服务端保持一致

[root@zbx-agent1 ~]#mv /etc/localtime{,.bak}
[root@zbx-agent1 ~]#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@zbx-agent1 ~]#date 

在这里插入图片描述

3、设置Zabbix的下载源,安装Zabbix-agent2

[root@zbx-agent1 ~]#rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
[root@zbx-agent1 ~]#cd /etc/yum.repos.d/
[root@zbx-agent1 yum.repos.d]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

在这里插入图片描述

4、安装Zabbix-agent2,并修改配置文件

[root@zbx-agent1 yum.repos.d]#yum install -y zabbix-agent2  #安装zabbix-agent2
[root@zbx-agent1 yum.repos.d]#vim /etc/zabbix/zabbix_agent2.conf 

Server=192.168.10.130			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.10.130		#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent1			#131行,指定当前 zabbix 客户端的主机名
#修改完保存退出

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

5、启动Zabbix-agent2

[root@zbx-agent1 ~]#systemctl start zabbix-agent2.service 
[root@zbx-agent1 ~]#systemctl enable zabbix-agent2.service 
[root@zbx-agent1 ~]#ss -natp | grep zabbix
LISTEN     0      128         :::10050                   :::*                   users:(("zabbix_agent2",pid=12294,fd=8))

在这里插入图片描述

6、在服务端验证Zabbix-agent2 的连通性

[root@zbx-server ~]#yum install -y zabbix-get.x86_64 
[root@zbx-server ~]#zabbix_get -s '192.168.10.132' -p 10050 -k 'agent.ping'
1
[root@zbx-server ~]#zabbix_get -s '192.168.10.132' -p 10050 -k 'system.hostname'
zbx-agent1
[root@zbx-server ~]#

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

7、将客户端加入服务端的监控主机

在Web界面添加agent主机

(1)点击左边菜单栏【配置】中的【主机】,点击【创建主机】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)再点击上方菜单栏【模板】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、在 Web 页面创建自定义监控项模板

[root@zbx-agent1 ~]#cd  /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent1 zabbix_agent2.d]#vim UserParameter_login.conf

UserParameter=login.user,who|wc -l

#保存退出
[root@zbx-agent1 zabbix_agent2.d]#systemctl restart zabbix-agent2

在这里插入图片描述

1、创建模板

点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了
在这里插入图片描述
在这里插入图片描述

2、创建应用集(用于管理监控项的)

点击上方菜单栏【应用集】,点击【创建应用集】、【名称】设置成 Login User、点击 【添加】
在这里插入图片描述
在这里插入图片描述

3、创建监控项

点击上方菜单栏【监控项】,点击【创建监控项】【名称】设置成 Number of login users【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致、【更新间隔】设置成 10s、【历史数据保留时长】Storage period 30d #保留时间可自定义设置、点击 【添加】
在这里插入图片描述
在这里插入图片描述

4、创建触发器

(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】、【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重、【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】、点击 【添加】
在这里插入图片描述
在这里插入图片描述

5、创建图形

点击上方菜单栏【图形】,点击【创建图形】、【名称】设置成 Number of login users 【宽】、【高】可直接采用默认值、【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】
在这里插入图片描述
在这里插入图片描述

6、将主机与模板关联起来

(一个主机可以关联多个模板)点击左边菜单栏【配置】中的【主机】,点击你要关联的主机、点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、设置邮件报警

点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成自己的邮箱地址,例 00000000@qq.com
【认证】选择 用户名和密码
【用户名称】设置成自己的邮箱地址,例 0000000@qq.com
【密码】可登录QQ邮箱页面,点击【设置】–>【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择问题,点击【更新】
点击 【添加】,并测试功能
点击左边菜单栏【User settings】–>【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 0000000@163.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】
点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】

//测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值,查看【监测】–>【仪表盘】,确认报警
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结
自定义监控模板:
1、先明确获取监控数据的方式,比如通过命令或者shell/python脚本来获取。
2、创建zabbix 的监控项配置文件( /etc/zabbix/ zabbix-agent2.d/*.conf) ,自定义监控数据的键名 Userparameter= ,
3、在zabbix-server 的WEB页面上设置自定义监控模板:
配置->模板->应用集->监控项->触发器->图形
将自定义监控模板和主机关联起来
4、设置邮件报警:
管理 -> 报警媒介类型,设置发件人邮箱配置并测试
user settings->报警媒介 ,设置收件人的邮箱和运行时间
配置 -> 动作,将触发器和报警媒介关联起来
测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL Server的子查询

SQL Server的子查询一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个子查询中的查询。 可以在允许表达式的任何位置使用子查询。…

【MySQL】联合查询

目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…

macOS Monterey 12.6.5 (21G531) 正式版发布,ISO、IPSW、PKG 下载

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

如何使用Midjourney辅助建筑平面设计和室内设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅图为例)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

unity 全局光照

全局光照由两部分组成:直接光照和间接光照。 直接光照由直接光照射到物体上以后直接弹射到人眼接收到的光照。 间接光照为直接光照照射到物体上又弹射到其它物体上面以后多次弹射才被人眼接收的光照(两次及以上的光照统称为间接光照) 材质光…

消息队列RocketMQ、Kafka小计

1、消息队列模型 点对点模式 (一对一,消费者主动拉取数据,消息收到后消息清除)点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是…

Observability: Elastic RUM (真实用户监控)演示

在之前的文章 “Elastic RUM(真实用户监测)浅谈”,我们详细描述了 Elastic RUM (Real User Monitor)。在今天的文章中,我将详细一步一步地对该文章进行演示以便大家也能和我一样进行展示。在今天的展示中&a…

Docker6种网络配置详解,网络模式应该这么选

文章目录一、Bridge网络模式二、Host网络模式三、Overlay网络模式四、None网络模式五、Macvlan网络模式六、Ipvlan网络模式七、网络模式选择在Docker中,网络配置是一个重要的主题,因为容器需要与其他容器或外部网络进行通信。Docker提供了多种网络模式和…

GPT-4 和ChatGPT API的定价分析

OpenAI发布了他们的ChatGPT新机器学习模型GPT-4。GPT-4是GPT-3的一大进步,GPT-3是当前ChatGPT免费版本(GPT 3.5 Turbo)所运行的模型的基础,今天我们也来凑个热点,研究一下它们的定价 GPT-4新的功能 GPT-4可以在对话中使用图像,并…

2023年美赛春季赛 赛题浅析

由于今年各种各样的原因,导致美赛头一次,据说也将是最后一次,临时调整,加设春季赛。这对于急需建模奖项的大家来说是一个很好的机会。无论怎样的原因,今年美赛我们可能有所遗憾。但,春季赛也许就是弥补遗憾…

在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法

尽管您可以使用指纹解锁手机,但大多数智能手机都需要 PIN 码、图案或字母数字代码作为主密码。如果您有一段时间没有输入手机密码,很容易忘记。正是由于这个原因,即使您打开了指纹解锁,大多数智能手机也会让您每天至少输入一次 PI…

Linux之磁盘分区、挂载

文章目录一、Linux分区●原理介绍●硬盘说明查看所有设备挂载情况挂载的经典案例二、磁盘情况查询基本语法应用实例磁盘情况-工作实用指令一、Linux分区 ●原理介绍 Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,…

【软考五】数据库(做题)

该文章不适合学习数据库,适合考证,遇到实际问题的,不要在这儿浪费时间。切记切记 软考之数据库一、概念数据模型(下午题常考)二、结构数据模型关系模型1、关系模型中基本术语2、关系模型中的关系完整性约束3、关系代数…

SQL Server 数据查询

文章目录前言首先在SQL Server 2008 中新建一个数据库chaxun.在库中建三个表,结构如下表所示,并且录入数据.1.2.(1)在KC表中查询学分低于三分的课程信息,并按课程号升序排列(2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列(3)在XS_KC表中…

「文心一言」内测详细使用体验

★观前提示:以下内容仅为内测测试内容,不代表未来正式版如何,或许你认为它与chatgpt仍有不小的差距,或许你认为它目前做的已经不错了,都可以,但是咱们测试体验,只讲述体验,本篇文章不…

【数字图像处理】直方图均衡化

文章目录1. 算法原理2. 算法缺陷及改进2.1 缺陷2.2 改进3. 实现3.1 调包侠版本3.2 自由发挥版本1. 算法原理 直方图均衡化是一种常见的图像增强方法,可以增强图像的对比度。其数学原理如下: 首先,我们需要了解直方图的概念。直方图是对图像…

Bezier Curve 贝塞尔曲线 - 在Unity中实现路径编辑

文章目录简介一阶贝塞尔曲线二阶贝塞尔曲线三阶贝塞尔曲线图形理解 Bezier Curve一阶贝塞尔曲线二阶贝塞尔曲线三阶贝塞尔曲线应用Bezier CurveSimpleBezierCurvePathSimpleBezierCurvePathAlonger简介 贝塞尔曲线(Bezier Curve),又称贝兹曲…

人工智能概述

一、人工智能发展必备三要素 算法 数据 算力 CPU、GPU、TPU 计算力之CPU、GPU对比: CPU主要适合I\O密集型任务GPU主要适合计算密集型任务 什么样的程序适合在GPU上运行? 计算密集型的程序 所谓计算密集型(Compute-intensive)的程序,就是…

【K8S系列】深入解析无状态服务

目录 序言 1. 无服务介绍 1.1 优点 1.2 使用场景 1.3 资源类型 1.4 总结 2 使用介绍 2.1 Deployment 使用场景: 2.2 ReplicaSet 使用场景 2.3 pod Pod 资源定义示例 2.4 service 创建一个Deployment: 创建一个Service: 总结…

前置知识——Linux网络虚拟化

Linux网络虚拟化 信息是如何通过网络传输被另一个程序接收到的? 我们讨论的虚拟化网络是狭义的,它指容器间网络。 好了,下面我们就从 Linux 下网络通信的协议栈模型,以及程序如何干涉在协议栈中流动的信息来开始了解吧。 Linux…