分布式系统监控Zabbix

news2024/10/7 16:22:24

分布式系统监控Zabbix

    • 一、Zabbix监控
      • 1.什么是Zabbix
      • 2.Zabbix功能
      • 3.Zabbix运行机制
      • 4.Zabbix的三种架构
      • 5.Zabbix工作原理及数据走向
      • 6.zabbix监控模式
    • 二、Zabbix部署
      • 1.安装,部署准备
      • 2.zabbix图形化页面显示设置
    • 三、Zabbix监控使用
      • 1.安装zabbix监控客户端
      • 2.服务端验证连通性
      • 3.Web 页面中添加agent 主机
      • 4.配置主机模板
      • 5.自定义监控内容
      • 6.web页面配置自定义监控模板
      • 7.zabbix 自动发现与自动注册
    • 四、总结
      • 1.安装和配置Zabbix服务器:
      • 2.部署Zabbix代理:
      • 3.创建主机和监控项:
      • 4.创建触发器和操作:
      • 5.查看报告和趋势:

一、Zabbix监控

1.什么是Zabbix

(1)一个基于web界面提供的分布式系统监控及网络监视功能的企业级开源解决方案

(2)Zabbix能监视各种网络参数,保证server系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

(3)Zabbix由两部分构成,zabbix server和可选组件zabbix agent。通过C/S模式采集数据,提供B/S在web前端展示和配置。

(4)一款开源免费的,自动化发现服务与网络设备的分布式监控,可以监视应用层。并以web页面集中管理并展示。

2.Zabbix功能

监控CPU负载,服务器内存使用,服务器磁盘使用及网络状态,还可以监控中间件。

缺点:只支持传统运维,不容错。

3.Zabbix运行机制

(1)Zabbix是C/S架构有zabbix server和zabbix agent组成。

(2)zabbix server:负责存储,展示硬件信息,通过B/S模式传给web端展示配置

(3)zabbix agent:监控收集服务器信息,端口号10500

4.Zabbix的三种架构

(1)C/S模式:

在这里插入图片描述

总结:zabbix C/S模式是最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-agent之间进行数据交换,适用于网络,比较简单。尽量在局域网内,设备较少的监控环境。

(2)zabbix-proxy-client分布式架构:

在这里插入图片描述

总结:proxy是server和client沟通的桥梁,proxy本身没有前端,且其本身存放的数据,只是将agent发的数据暂时存放,而后提交给server。适用于跨机房,跨网络,或中型网络架构的监控。

(3)master-node-client架构:

在这里插入图片描述

总结:master下有node节点,node可以存储数据,node有自己的配置文件和数据库注意负责将配置信息和监控数据与master同步,node下可以直接接入主机或接入代理proxy。

5.Zabbix工作原理及数据走向

(1)zabbix agent在主机上采集监控数据,将采集的数据传给zabbix server

(2)zabbix server收到数据后将数据存在自己的数据库中

(3)然后从数据库中提取数据进行分析,是否需要报警

(4)分析完成后server在web前端页面进行界面数据展示

在这里插入图片描述

6.zabbix监控模式

(1)主动模式:zabbix agent主动将采集到的监控信息传输给zabbix server

(2)被动模式:zabbix server向zabbix agent索引采集到的监控信息,zabbix agent返回采集到的数据

二、Zabbix部署

准备一台2核4G内存数据库,至少2核2G

1.安装,部署准备

systemctl stop firewalld.service 
setenforce 0
#关闭防火墙
setenforce 0
#关闭selinux
hostnamectl set-hostname zbx-server
#更改主机名
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
#获得zabbix下载yum源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
vim zabbix.repo
#编辑配置文件 开启安装源
[zabbix-frontend]
......
enabled=1          #1表示开启安装源
......
#进入yum源目录文件并使用sed将国外源替换为阿里云源
yum clean all && yum makecache
#清除原理yum源缓存并加载新的yum
yum install -y zabbix-server-mysql zabbix-agent
#安装zabbix客户端和服务端
yum install -y centos-release-scl 
#安装scl,原因为便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4zabbix要求php版本为7.2以上,若达到要求则无须安装scl
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装连接数据库和连接apache前端页面的连接工具
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#安装并开启数据库
mysql_secure_installation         
#初始化数据库,并设置密码,如 abc123选择执行,先回车,然后输入2次自己想设置的密码,其他全部yes即可
mysql -uroot -p #登陆数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#创建zabbix库并设置库格式为utf-8
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#创建并授权zabbix远程登录用户密码为zabbix
flush privileges;
#刷新数据
quit
rpm -ql zabbix-server-mysql
#查询zabbix数据库中配置文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.36/create.sql.gz | mysql -uroot -p123123 zabbix(导入的库名)
#将zabbix数据库格式导入数据库中,此处需要等待10s左右
vim /etc/zabbix/zabbix_server.conf 
DBPassword=zabbix					#124行,去掉#注释然后指定 zabbix 数据库的密码
#编辑zabbix配置文件将设置的远程登录用户的密码zabbix输入进去保存退出
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai		#24行,取消注释,修改时区
#编辑php的配置文件,将时区改为亚洲上海,注意去掉前面的;在此文件中表示注释
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#重启zabbix服务php服务并设置开机自启

2.zabbix图形化页面显示设置

(1)浏览器输入自己部署zabbix地址的服务器地址如本机:http://192.168.174.15/zabbix进入配置页面

在这里插入图片描述

(2)点击netxt step进入下一步检查zabbix配置,所有状态都要为ok,若有问题则需要去服务器侧检查配置

在这里插入图片描述

(3)所有配置都正常则继续点击下一步使用zabbix账户登录数据库

在这里插入图片描述

(4)连接数据库后下一步配置zabbix信息

在这里插入图片描述

(5)配置完成zabbix后检查配置项然后点击下一步保存安装
在这里插入图片描述

(6)信息检查完成后点击结束安装完成

在这里插入图片描述

(7)结束后登录验证,默认账户为:Admin 默认密码为:zabbix

在这里插入图片描述

(8)登录完成后主页面如下

在这里插入图片描述

(9)修改zabbix语言为中文,点击user settings然后选择语言为中文,点击update保存即可

在这里插入图片描述

三、Zabbix监控使用

1.安装zabbix监控客户端

再开启一台服务器进行zabbix agent客户端系统安装

systemctl stop firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
bash
#关闭防火墙和selinux,更改主机名并运行bash刷新主机名
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
#服务端和客户端都配置时间同步
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
#客户端配置时区,与服务器保持一致
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
#设置 zabbix 的下载源,安装 zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
#修改配置文件,修改内容如下
Server=192.168.174.15			
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.174.15		
#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			
#131行,指定当前 zabbix 客户端的主机名
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
#设置zabbix-agent2开机自启并现在启动,检查端口是否存在

2.服务端验证连通性

yum install -y zabbix-get
#安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.174.17' -p 10050 -k 'agent.ping'
#返回结果为1则表示连接成功
zabbix_get -s '192.168.174.17' -p 10050 -k 'system.hostname'
#可以显示客户端zbx-agent01的主机名表示连接成功

3.Web 页面中添加agent 主机

(1)点击左边菜单栏【配置】中的【主机】,点击【创建主机】

在这里插入图片描述

在这里插入图片描述

4.配置主机模板

在这里插入图片描述

5.自定义监控内容

1.明确需要执行的 linux 命令
who | wc -l
2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
296 #	Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#添加内容如下
UserParameter=login.user,who|wc -l
#UserParameter为键不可变login.user为键值名称逗号后可写命令或脚步
systemctl restart zabbix-agent2
#重启zabbix-agent2
3.在服务端验证新建的监控项
zabbix_get -s '192.168.174.17' -p 10050 -k 'login.user'
#返回值为1则表示监控项无问题

6.web页面配置自定义监控模板

(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)设置邮件报警

点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】

在这里插入图片描述

在这里插入图片描述

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

(7)添加告警告知邮箱

点击左边菜单栏【用户设置】–>【报警媒介】,点击【添加】

在这里插入图片描述

7.zabbix 自动发现与自动注册

(1)zabbix自动发现说明,自动发现与自动注册指的是相对服务器而言,若为被动发现则需要手动将客户端机器添加到zabbix中,若是自动发现则是在zabbix上配置,由zabbix主动去扫描。

(2)确保监控server agent2客户端是存活状态

server agent2上执行:
systemctl is-active zabbix-agent2.service 
#返回active即agent2正常

在这里插入图片描述

(3)删除原有的客户端主机

点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

在这里插入图片描述

(4)客户端服务端添加hosts

vim /etc/hosts
192.168.174.15 zbx-server
192.168.174.17 zbx-agent01

(5)web页面自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】【名称】设置成 mynetw3ork
【IP范围】设置成 192.168.174.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【更新】
在这里插入图片描述

在这里插入图片描述

(6)发现客户端

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【发现动作】,点击 【启用】
在这里插入图片描述

在这里插入图片描述

(7)验证发现结果

点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机 ,需要等待一段时间。

在这里插入图片描述

四、总结

Zabbix是一种流行的开源分布式系统监控工具。Zabbix支持多种操作系统和网络设备,可以通过Zabbix代理或SNMP协议收集数据。以下是使用Zabbix进行分布式系统监控的一些关键步骤:

1.安装和配置Zabbix服务器:

首先需要安装Zabbix服务器,并配置Zabbix数据库和Web界面。可以使用Zabbix官方提供的二进制安装包或从源代码编译。

2.部署Zabbix代理:

可以在需要监控的服务器上部署Zabbix代理,从而向Zabbix服务器发送数据。可以使用二进制安装包或从源代码编译。要配置代理以与Zabbix服务器通信,可以在代理配置文件中设置Server或ServerActive选项。

3.创建主机和监控项:

在Zabbix服务器上创建要监控的主机和监控项。主机可以是物理服务器、虚拟机或网络设备。监控项定义要监控的数据类型,例如CPU、内存、磁盘等。

4.创建触发器和操作:

根据监控项的值,可以创建触发器并定义操作。当条件满足时,触发器将触发操作,例如发送电子邮件或短信通知。

5.查看报告和趋势:

使用Zabbix报告和趋势功能可以查看历史数据、性能趋势和告警情况。可以创建各种自定义报告和图表以获得有关分布式系统健康状况的深入洞察。

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

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

相关文章

一个逗号引发的血案——变量定义得值类型总是tuple

问题背景 今天准备用python写个mysql连接脚本&#xff0c;实现脚本执行sql语句&#xff0c;哪知脚本写好了运行时一直报一个mysql连接入参类型错误的提示&#xff0c;提示我host这个变量取值不是str类型&#xff0c;仔细检查一番&#xff0c;cfg配置的类型没错啊&#xff0c;下…

Spring security之JWT

JWT 这里写目录标题 JWT一级目录二级目录三级目录1.什么是JWT 2.JWT的组成部分3.编码/解码4.特点5. 为什么使用JWT5.1传统的验证方式 5.2基于JWT的验证方式6.JWT进行登录验证6.1依赖安装6.2编写UserDetailServiceImpl类6.3编写UserDetailsImpl类6.4 实现config.SecurityConfig类…

简单的员工工资管理 ssm人事考勤jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 简单的员工工资管理 ssm 系统有1权限&#xff1a;管理…

8年软件测试工程师感悟——写给还在迷茫中的朋友

去年还在全网声讨互联网企业996呢&#xff0c;今年突然没声音了&#xff0c;也不用讨论在哪个路灯上吊死互联网资本家了&#xff0c;因为都被裁了。 继教育培训领域大幅度裁员之后&#xff0c;大厂裁员消息也开始陆续传出&#xff0c;百度AIG,MEG多条业务线进行精简&#xff0…

1、for循环

①for循环 在程序中&#xff0c;一组被重复执行的语句被称之为循环体&#xff0c; 能否继续重复执行&#xff0c;取决于循环的终止条件 &#xff0c; 由循环体及循环的终止条件组成语句&#xff0c;被称之为循环语句 1.1语法结构 for循环主要用于把某些代码循环若干次&#xf…

Protues如何安装下载使用:STM32利用Protues进行仿真

文章目录&#xff1a; 一&#xff1a;Proteus仿真的使用步骤 第一步&#xff1a;Proteus新建项目 第二步&#xff1a;Proteus设计电路图&#xff08;选取元器件、摆放元器件、编辑元器件属性、原理图布线&#xff09; 第三步&#xff1a;程序代码编写 第四步&#xff1a;…

el-tree-select那些事

下拉菜单树形选择器 用于记录工作及日常学习涉及到的一些需求和问题 vue3 el-tree-select那些事 1、获取el-tree-select选中的任意层级的节点对象 1、获取el-tree-select选中的任意层级的节点对象 1-1数据集 1-2画面 1-3代码 1-3-1画面代码 <el-tree-selectv-model"s…

gitlab-Runner搭建

root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行&#xff1a; gitlab-runner register --url https://git…

vue3项目中引入dialog插件,支持最大最小化、还原、拖拽

效果图&#xff1a; 上图是layui-vue组件库中的layer插件&#xff0c;我的项目使用的是element-plus组件库&#xff0c;在用不上layui组件库的情况下&#xff0c;就单独引入layui/layer-vue这个弹层插件就可以了 npm地址&#xff1a;layui/layer-vue - npm layui-vue组件库地址…

mysql_docker主从复制_实战_binlog混合模式_天座著

步骤1&#xff1a;拉取镜像 docker pull mariadb:latest 步骤2.1&#xff1a;创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2&#xff1a;创…

ssh 连接断开,正在执行的shell脚本也被中断了

背景 最近在训练chatGLM&#xff0c;一次训练经常要花掉近2个小时&#xff0c;但是由于网络不稳定&#xff0c;经常ssh莫名的断开&#xff0c;导致训练不得不重新开启&#xff0c;这就很浪费时间了 解决方案 下面教大家一种在后台执行命令的方案&#xff0c;即使你ssh连接断…

层状介质一维大地电磁数值模拟

层状介质一维大地电磁数值模拟 前言 大地电磁测深法&#xff08; MT&#xff09;是根据电磁感应原理研究天然场源在地下激励产生的交变电场或者磁场&#xff0c;通过地表观测到的电磁场或者通过电磁场计算出视电阻率或者相位等量来进行地下构造研究的一种电磁方法。由于它不需…

★动态规划(DP算法)详解

什么是动态规划&#xff1a;动态规划_百度百科 内容太多了不作介绍&#xff0c;重点部分是无后效性&#xff0c;重叠子问题&#xff0c;最优子结构。 问S->P1和S->P2有多少种路径数&#xff0c;毫无疑问可以先从S开始深搜两次&#xff0c;S->P1和S->P2找出所有路…

【Linux】深入理解进程概念

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言浅谈进程概念1. 进程和操作系统的联系2.描述进程的对象——PCB …

MongoDB:Linux环境全套安装指南

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; MongoDB&#xff1a;Linux环境全套安装指南 ⏱️ 创作时间&#xff1a…

Hybrid App 可以从哪些技术路径实现性能优化

说到 Hybrid App&#xff08;混合应用&#xff09;大家都不陌生&#xff0c;因为这种开发模式大行其道发展的这些年取代了很多原生和 Web 应用&#xff0c;为什么大家对这种「Native HTML5」的开发模式额外偏爱呢&#xff1f; 因为一方面在一定程度上兼顾了原生应用的优质体验…

compile_and_runtime_not_namespaced_r_class_jar\debug\R.jar: 另一个程序正在使用

问题情况&#xff1a; run App的时候&#xff0c;提示该文件被占用 想要clean Project&#xff0c;还是提示该文件被占用&#xff0c;这个文件和连带的文件夹都无法被删除。 方法1&#xff1a; AndroidStudio下方的terminal&#xff08;没有这个窗口的话&#xff0c;从上面的…

Java源码-Context源码解析

您好&#xff0c;我们来一起了解一下Java源码中的Context源码解析。 Context是Android中的一个重要的概念&#xff0c;在Android开发中可以用来获取应用程序的各种信息&#xff0c;如Activity、Service、Application等等。在Android中&#xff0c;Context是一个抽象类&#xf…

虚拟机centos7配置网络

虚拟机centos7配置网络 centos7克隆之后需要配置网络才能联网。 实验环境&#xff1a; VMware Workstation Pro 16CentOS 7系统虚拟机主机Windows 11系统 1.VMware网络模式设置为NAT模式 虚拟机–设置–网络适配器– ​​ ‍ 2.查看虚拟机 子网IP和网关IP 编辑–虚拟网…

AcWing 129:火车进栈 ← DFS

【题目来源】https://www.acwing.com/problem/content/131/【题目描述】 这里有 n 列火车将要进站再出站&#xff0c;但是&#xff0c;每列火车只有 1 节&#xff0c;那就是车头。 这 n 列火车按 1 到 n 的顺序从东方左转进站&#xff0c;这个车站是南北方向的&#xff0c;它虽…