Zabbix介绍与安装

2023-09-21 11:22:18

目录

一、概述

二、zabbix的主要功能

三、zabbix监控原理

四、Zabbix 监控模式

五、zabbix的架构

server-client

server-proxy-client

master-node-client

六、zabbix的安装

安装zabbix服务端

安装zabbix客户端

测试zabbix

1、在 Web 页面中添加 agent 主机点击左边菜单栏【配置】中的【主机】,点击【创建主机】​编辑

2、创建模板

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

4、创建监控项

5、创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

6、创建图形

7、将主机与模板关联起来(一个主机可以关联多个模板)

8、此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

9、报警媒介类型

10、报警媒介

12、动作

13、//测试邮件报警

生成授权码方法:


一、概述

zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

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

zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

总结:是一个开源的IT基础监控软件,能实时监控网络服务,服务器和网络设备的状态,如网络使用,CPU负载、磁盘空间等,主要是包括数据的收集、报警和通知的可视化界面

zabbix server port 端口号为10051

zabbix agent port 端口号为10050

二、zabbix的主要功能

(1)监控CPU负载

(2)内存使用

(3)硬盘使用

(4)网络状态

(5)端口监视

(7)日志监视

(8)插件开发自定义

三、zabbix监控原理

zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。

数据收集

数据存储

告警

展示

自动化操作

四、Zabbix 监控模式

主动监控:agent端向server发起连接

zabbix agent,主动向zabbix server端发起请求,发送监控项列表,并且主动将监控内需要的数据提交给zabbix server

被动监控:server端向agent端发起连接

zabbix server 向agent端,请求获取监控项的数据,zabbix agent返回数据,可以看出zabbix主动和被动模式,是以zabbix客户端为基准的

总结:

被动模式:由zabbix server向agent发出指令,获取数据,zabbix agent被动的去获取数据,并返回给zabbix server,zabbix server端周期性的向agent索取数据,这种模式的最大的问题就是加大zabbix server 的工作量,在数百台服务器的环境下,zabbix server 端不能能及时获取到最新的数据,但这也是默认的工作方式。

主动模式:由zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix server进行干预,因此主动模式在一定程度上,可减轻zabbix server的压力。

五、zabbix的架构

server-client

最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由server和agent之间进行数据交换。适用于网络比较简单,尽量在局域网内,涉及比较少的监控。

server-proxy-client

其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而其本身也并不存放数据,只是将agent发来的数据暂时存放,而后再提交给server。该架构经常是和master-node-client作比较,一般适用于跨机房、跨网络的中型网络架构。

master-node-client

是zabbix最复杂的监控架构,适用于跨网络、跨机房设备较多的大型环境。每个node同时有server端,node下面可以接proxy代理,也可以直接接client,node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master故障或损坏,对node其下架构的完整性

六、zabbix的安装

主机名ip地址
192.168.11.13 / zabbix-server/zabbix192.168.11.13
192.168.11.12 zabbix-agent01192.168.11.12

代码示例:

-------------------- 安装 zabbix 5.0 --------------------

---------- 部署 zabbix 服务端 ----------
zabbix-server 内存至少 2G,推荐 4G;

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server

//获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

//更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo

yum clean all && yum makecache

yum install -y zabbix-server-mysql zabbix-agent

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

yum install -y centos-release-scl 

//修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1          #开启安装源
......

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

//安装 zabbix 所需的数据库
yum install -y mariadb-server mariadb

systemctl enable --now mariadb

mysql_secure_installation         #初始化数据库,并设置密码,如 abc123

//添加数据库用户,以及 zabbix 所需的数据库信息
mysql -u root -pabc123

CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;

//导入数据库信息
rpm -ql zabbix-server-mysql 		#查询 sql 文件的位置

zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz | mysql -uroot -pabc123 zabbix

//修改 zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix_server.conf 
......
DBPassword=zabbix					#124行,指定 zabbix 数据库的密码

//修改 zabbix 的 php 配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
......
php_value[date.timezone] = Asia/Shanghai		#24行,取消注释,修改时区

//启动 zabbix 相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

浏览器访问:http://192.168.10.20/zabbix
点击下一步,设置数据库的密码 zabbix
安装完成后,默认的登录账号和密码为:Admin/zabbix
设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

//解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts

\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf


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


systemctl disable --now firewalld
setenforce 0
 

//服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com

//客户端配置时区,与服务器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date

//设置 zabbix 的下载源,安装 zabbix-agent2
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

//修改 agent2 配置文件
vim /e
......tc/zabbix/zabbix_agent2.conf
Server=192.168.10.22			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.10.22		#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			#131行,指定当前 zabbix 客户端的主机名

//启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2

netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2 

//在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get				#安装 zabbix 主动获取数据的命令

zabbix_get -s '192.168.10.21' -p 10050 -k 'agent.ping'
1

zabbix_get -s '192.168.10.21' -p 10050 -k 'system.hostname'
zbx-agent01


//在 Web 页面中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01-192.168.11.12
【群组】选择 Linux server
【Interfaces接口】的【IP地址】设置成 192.168.10.21

再点击上方菜单栏【模板】
【Link new tamplates链接新模板】搜索 Linux ,选择 Template OS Linux by Zabbix agent
点击 【添加】

自定义脚本监控 https://kaikai136.blog.csdn.net/article/details/111309497?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&utm_relevant_index=1

---------- 自定义监控内容 ----------
案列:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

//在客户端创建自定义 key
1.明确需要执行的 linux 命令
who | wc -l

2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
268 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
291 #	Format: UserParameter=<key>,<shell command>

cd /etc/zabbix/zabbix_agent2.d/

vim UserParameter_login.conf
UserParameter=login.user,who|wc -l

systemctl restart zabbix-agent2

3.在服务端验证新建的监控项
zabbix_get -s '192.168.10.21' -p 10050 -k 'login.user'


//在 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.将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates链接新模板】搜索 login,选择 Template Login User,点击【更新】

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

7.设置邮件报警
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 124481457@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 124481457@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义                        
点击上方菜单栏【Message templates】,点击【添加】,【Message type消息类型】选择 问题,点击【更新】
点击 【添加】,并测试功能

点击左边菜单栏【User settings用户设置】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】最后报警的邮件会发送到此邮箱中,样例设置成 960027936@139.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】

//测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警

安装zabbix服务端

 ​​​​

 

 

 

 

 

 

安装zabbix客户端

 

 

 

 

 

 

 

测试zabbix

1、在 Web 页面中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】

2、创建模板

 在 Web 页面创建自定义监控项模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了

 

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


点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击 【添加】

 

4、创建监控项


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

 

5、创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】

 

6、创建图形


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

 

7、将主机与模板关联起来(一个主机可以关联多个模板)


点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates链接新模板】搜索 login,选择 Template Login User,点击【更新】

 

8、此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

 

9、报警媒介类型


点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 124481457@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 124481457@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义                        
点击上方菜单栏【Message templates】,点击【添加】,【Message type消息类型】选择 问题,点击【更新】
点击 【添加】,并测试功能
 

 

10、报警媒介

点击左边菜单栏【User settings用户设置】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】最后报警的邮件会发送到此邮箱中,样例设置成 960027936@139.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

12、动作

点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】 

13、//测试邮件报警


增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警

 去邮箱中查看即可

生成授权码方法:

更多推荐

Redis 篇

1、为什么要用缓存?使用缓存的目的就是提升读写性能。而实际业务场景下,更多的是为了提升读性能,带来更好的性能,带来更高的并发量。Redis的读写性能比Mysql好的多,我们就可以把Mysql中的热点数据缓存到Redis中,提升读取性能,同时也减轻了Mysql的读取压力。2、什么是Redis?Redis是一个开源(BSD

嵌入式:驱动开发 Day9

作业:通过platform总线驱动实现a.应用程序通过阻塞的io模型来读取number变量的值b.number是内核驱动中的一个变量c.number的值随着按键按下而改变(按键中断)例如number=0按下按键number=1,再次按下按键number=0d.在按下按键的时候需要同时将led1的状态取反e.驱动中需要编

树莓派使用Nginx 搭建轻量级网站远程访问

文章目录1.Nginx安装2.安装cpolar3.配置域名访问Nginx4.固定域名访问5.配置静态站点转载自cpolar极点云文章:树莓派使用Nginx搭建轻量级网站远程访问安装Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的Web服务器,可以用于托管网站或Web应用程序。相比其他Web服务器,

01_Bootstrap基础组件01

1什么是Bootstrap?Bootstrap,来自Twitter,是目前很受欢迎的前端框架。Bootstrap是基于HTML、CSS、JavaScript的,它简洁灵活,使Web开发更加快捷。它对HTML、CSS和JavaScript进行了封装,使它们使用起来更方便。我们只需要使用它已经设定好的类,或规则,即可快速应

[全家桶之SpringMVC]SpringMVC 的模块和结构

目录SpringMVC的模块Web模块WebMVC模块SpringMVC的结构SpringMVC的模块SpringMVC的模块主要包括以下几个:Web模块:这个模块提供了Spring对Web项目的支持,包括文件上传、异常处理、国际化、主题等功能。WebMVC模块:这个模块是SpringMVC的核心,它包含了前端控制器、

驱动开发--字符设备驱动的实现

一、字符设备驱动内部注册过程通过对register_chrdev内部的实现过程进行分析,其实注册字符设备驱动的过程就是下面几步:1.分配structcdev对象空间2.初始化structcdev对象3.注册cdev对象完成上面的三步,就完成了字符设备驱动的注册。二、通过字符设备驱动分步注册方式编写LED驱动,完成设备文

【LittleXi】第五章 Process API exercise

文章目录【LittleXi】第五章ProcessAPIexercise第五章(simulator)实验准备第五章(code)【LittleXi】第五章ProcessAPIexercise第五章(simulator)实验准备github下载对应代码https://github.com/remzi-arpacidussea

基于Python的微博舆论分析,微博情感分析可视化系统(V2.0)

简介Python基于微博的舆情分析,情感分析可视化系统微博舆情分析系统,项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。功能包括登陆注册用户管理热门事件展示舆情分析,包括舆情分析,情感分类,用户分布,关键词云图,热门帖子,热门评论排名舆情预警个人信息管理原文地址先后进行了数据获取和筛选存储,对存储后的

自然语言处理应用(三):微调BERT

微调BERT微调(Fine-tuning)BERT是指在预训练的BERT模型基础上,使用特定领域或任务相关的数据对其进行进一步训练以适应具体任务的需求。BERT(BidirectionalEncoderRepresentationsfromTransformers)是一种基于Transformer架构的深度双向预训练语

机器学习 day35(决策树)

决策树上图的数据集是一个特征值X采用分类值,即只取几个离散值,同时也是一个二元分类任务,即标签Y只有两个值上图为之前数据集对应的决策树,最顶层的节点称为根节点,椭圆形节点称为决策节点,矩形节点称为叶子节点决策树学习算法的工作是,在所有可能的决策树中,选择一个在训练集上能表现良好,并能很好的推广到新数据(即交叉验证集和测

CUDA小白 - NPP(9) 图像处理 Statistical Operations

cuda小白原始API链接NPPGPU架构近些年也有不少的变化,具体的可以参考别的博主的介绍,都比较详细。还有一些cuda中的专有名词的含义,可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》常见的NppStatus,可以看这里。本文主要介绍的是NPP的统计

热文推荐