Linux——zabbix

news2024/11/14 20:32:45

 简介

官网:https://www.zabbix.com/

Zabbix 是一个开源的网络监控和警报解决方案。它允许管理员监控网络中的各种设备、服务器和应用程序,并收集有关它们性能和状态的数据。Zabbix 提供了一个集中化的管理界面,通过各种监控方式(如PING、SNMP、JMX 和自定义脚本)来监视系统的资源利用率、网络流量、服务可用性等。此外,Zabbix 还提供了灵活的警报功能,当某些指标超出设定的阈值时可以发送通知或执行特定操作。总的来说,Zabbix 是一个强大的工具,帮助管理员实时监控和管理复杂的 IT 环境。

常见的监控软件:zabbix、promehteus、nagios、cacti、open-falcon等
监控的意义:
    1.需要保障业务时时刻刻正常的运转,一旦出现问题,需要马上知道,赶紧修复
    2.解放人力,提升效率,获得更加多的幸福感和安全感

监控软件:
    1.开源的软件  zabbix,prometheus,cacti,nagios、open-falcon 等
    2.自研的,自己研发 falcon  

zabbix能监控什么?

架构

参考:https://www.cnblogs.com/mysql-dba/p/5010902.html 

重要组件说明:

1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3)web interface:zabbix的GUI接口;

4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

一个监控系统运行的大概的流程是这样的:

agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。

【主动监测】通信过程如下:

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:

 获取ACTIVE ITEMS列表

  • Agent打开TCP连接(主动检测变成Agent打开)
  • Agent请求items检测列表
  • Server返回items列表
  • Agent 处理响应
  • 关闭TCP连接
  • Agent开始收集数据

主动检测提交数据过程如下:

  • Agent建立TCP连接
  • Agent提交items列表收集的数据
  • Server处理数据,并返回响应状态
  • 关闭TCP连接

【被动监测】通信过程如下:

  • Server打开一个TCP连接
  • Server发送请求agent.ping\n
  • Agent接收到请求并且响应<HEADER><DATALEN>1
  • Server处理接收到的数据1
  • 关闭TCP连接

这里,有人可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。

还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:

1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。

2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

安装和使用

1. 安装zabbix环境

官网

根据Centos的版本进入官网www.zabbix.com选择要下载的zabbix版本

安装zabbix服务器的源

[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安装zabbix相关软件

[root@zabbix ~]# yum install zabbix-server-mysql zabbix-agent

安装前端相关的软件并修改配置

[root@zabbix ~]# yum install centos-release-scl

修改仓库文件,启用前端的源

[root@zabbix ~]# vim /etc/yum.repos.d/zabbix.repo

安装web相关的软件

[root@zabbix ~]# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl

安装数据库

如果已经存在mysql的centos系统,则不需要重新安装数据库

如果系统中没有数据库,需要进行安装

[root@zabbix ~]# yum install mariadb mariadb-server -y

mariadb-server 服务器端的软件包

mariadb 提供客户端命令的软件包启动数据库

[root@zabbix ~]# service mariadb start
Redirecting to /bin/systemctl start mariadb.service

设置mariadb数据库开机启动

[root@zabbix ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

查看mysql的进程是否运行

[root@zabbix ~]# ps aux|grep mysqld
mysql      2574  0.0  0.1 113412  1596 ?        Ss   11:22   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql      2739  0.1  8.2 968920 81684 ?        Sl   11:22   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root       2794  0.0  0.0 112824   980 pts/0    R+   11:26   0:00 grep --color=auto mysql

查看端口号

[root@zabbix ~]# yum install net-tools -y
[root@zabbix ~]# netstat -antplu|grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2739/mysqld   

登录mysql

[root@zabbix ~]# mysql -uroot -p
Enter password:    #没有密码,直接回车
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 367
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

创建初始数据库

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  #创建zabbix数据库
MariaDB [(none)]> create user zabbix@localhost identified by 'sc123456';   #创建用户 
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;   #对用户进行授权
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
MariaDB [(none)]> quit;

导入初始架构和数据,系统将提示您输入新创建的密码

[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

为Zabbix server配置数据库

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

为Zabbix前端配置PHP

[root@zabbix ~]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

[root@zabbix ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

将zabbix的nginx更换为默认80端口

修改默认nginx中的配置,防止与zabbix中的nginx抢占端口

修改默认的nginx为8080端口

[root@zabbix ~]# vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf

重新启动zabbix

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

2. 测试访问

访问http://192.168.107.16

需要做初始化操作才能出现下面画面

首次登陆的账号密码:

账号:Admin

密码:zabbix

至此zabbix环境就搭建成功了!

3.  在要监控的服务器上安装zabbix-agent服务

这里以一台机器为例,其他机器操作一致

安装zabbix服务器的源

[root@ansible ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安装zabbix-agent服务

[root@ansible ~]# yum install zabbix-agent -y

修改zabbix_agentd.conf 配置文件,让zabbix-server服务器能来拿数据

[root@ansible ~]# cd /etc/zabbix
[root@ansible zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@ansible zabbix]# vim zabbix_agentd.conf 

重启zabbix-agnt服务

[root@ansible zabbix]# service zabbix-agent restart
Redirecting to /bin/systemctl restart zabbix-agent.service

4. 在zabbix-server服务器上安装zabbix-get服务

[root@zabbix fonts]# yum install zabbix-get

5. 获取数据

[root@zabbix zabbix]# zabbix_get -s 192.168.31.67 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.14 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.15 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.17 -p 10050 -k "system.cpu.load[all,avg1]"
0.290000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.18 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.19 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix zabbix]# zabbix_get -s 192.168.107.20 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

至此,zabbix-server就可以获取到要监控的服务器的数据了

6. 在web页添加监控主机

添加每一台主机都是一样的操作,这里只展示其中一台 

把文字换成中文

添加监控主机

选择模板

也可以不使用模板,自己添加各种应用集和监控项

查看数据图像

可以看到已经有数据

注意:图像下面的文字方框是语言问题,把语言换成英文再看就可以了

至此,zabbix监控web集群外的服务器就完成了!

除了使用模板,还可以自己设置应用集、监控项、触发器、图形、告警等! 

自定义监控项

当zabbix自带的模板不能满足公司的需求的时候,就需要设置自定义监控项。

这里以监控ssh服务为例

前提是已经执行了上面的安装配置

1. 在agent上编写监控脚本,监控sshd进程是否启动

[root@ansible ~]# cd /etc/zabbix
[root@ansible zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@ansible zabbix]#cd zabbix_agentd.d
[root@ansible zabbix_agentd.d]# vim monitor_sshd.sh
#!/bin/bash

#统计sshd进程的数量
num=$( ps aux|grep /usr/sbin/sshd|wc -l)
echo  $num

给予脚本可执行权限

[root@ansible zabbix_agentd.d]# chmod +x monitor_sshd.sh 

编写自定义监控的配置文件 

[root@ansible zabbix_agentd.d]# vim userparameter_ssh.conf 
UserParameter=sc.ssh.status,/etc/zabbix/zabbix_agentd.d/monitor_sshd.sh

2. 在server上测试获取数据

[root@zabbix ~]# zabbix_get -s 192.168.107.20 -p 10050 -k sc.ssh.status
1

3. 在web页面上添加应用集和监控项出图

添加触发器报警

{ssh:sc.ssh.status.last(#2)}=1 这个表达式表示,当输出结果为1时,就报警

Zabbix设置微信报警

参考:https://blog.csdn.net/whell_scl/article/details/106722721

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

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

相关文章

大模型技术实践(三)|用LangChain和Llama 2打造心灵疗愈机器人

上期文章我们实现了Llama 2-chat-7B模型的云端部署和推理&#xff0c;本期文章我们将用“LangChainLlama 2”的架构打造一个定制化的心灵疗愈机器人。有相关知识背景的读者可以直接阅读「实战」部分。 01 背景 1.1 微调 vs. 知识库 由于大模型在垂直行业领域的问答效果仍有待提…

基于Simulink的用于电力系统动态分析

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

zemax双透镜公差分析

公差分析&#xff0c;就是在设计了一个理想的系统后&#xff0c;想看看实际生产过程中如果产生公差&#xff08;误差&#xff09;&#xff0c;系统会坏到什么程度&#xff0c;也就是光学性能受到多大影响。 先设计出双透镜&#xff1a; 在zemax中找到公差选项卡&#xff0c;准…

算法专题:前缀和

文章目录 Acwing&#xff1a;前缀和示例2845.统计趣味子数组的数目思路容易理解的写法&#xff1a;前缀和两层循环存在问题&#xff1a;超时 优化写法&#xff1a;两数之和思路&#xff0c;转换为哈希表 前缀和&#xff0c;就是求数组中某一段的所有元素的和。 求子数组中某一…

输运方程的推导

1 概述 对于流场中守恒的物理量&#xff0c;均可采用输运方程&#xff08;transport equation&#xff09;进行描述其随时间变化和在空间的分布规律。输运方程的通用形式为&#xff1a; 输运方程描述了流动过程中的物理量守恒&#xff0c;其包括瞬态&#xff08;transient&…

FPGA实战小项目2

基于FPGA的贪吃蛇游戏 基于FPGA的贪吃蛇游戏 基于fpga的数字密码锁ego1 基于fpga的数字密码锁ego1 基于fpga的数字时钟 basys3 基于fpga的数字时钟 basys3

ElMessageBox.prompt 点击确认校验成功后关闭

ElMessageBox.prompt(, 验证取货码, {inputPattern: /^.{1,20}$/,inputErrorMessage: 请输入取货码,inputPlaceholder: 请输入取货码,beforeClose: (action, instance, done) > {if (action confirm) {if (instance.inputValue) {let flag false;if (flag) {done()} else …

OpenCV(二十五):边缘检测(一)

目录 1.边缘检测原理 2.Sobel算子边缘检测 3.Scharr算子边缘检测 4.两种算子的生成getDerivKernels() 1.边缘检测原理 其原理是基于图像中灰度值的变化来捕捉图像中的边界和轮廓。梯度则表示了图像中像素强度变化的强弱和方向。 所以沿梯度方向找到有最大梯度值的像素&…

信息检索与数据挖掘 |(一)介绍

文章目录 &#x1f4da;信息检索&#x1f407;概念&#x1f407;结构化与非结构化数据&#x1f407;信息检索的基本假设&#x1f407;信息检索小结&#x1f407;附&#xff1a;IR新课题 &#x1f4da;数据挖掘&#x1f407;定义&#x1f407;数据挖掘 vs 机器学习 &#x1f4da…

论文笔记:一分类及其在大数据中的潜在应用综述

0 概述 论文&#xff1a;A literature review on one‑class classification and its potential applications in big data 发表&#xff1a;Journal of Big Data 在严重不平衡的数据集中&#xff0c;使用传统的二分类或多分类通常会导致对具有大量实例的类的偏见。在这种情况…

2023 大学生数学建模竞赛-C题-第一问

题目&#xff1a; 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销…

深入浅出PyTorch函数torch.rand与torch.randn

torch.rand 和 torch.randn 都是PyTorch中用于生成随机张量的函数&#xff0c;但它们生成随机数的方式有所不同。 一、torch.rand torch.rand 生成在区间 [0, 1) 内均匀分布的随机数。 size 参数是一个表示所需张量形状的元组或整数。可以生成任何形状的随机张量。 二、torch.…

1、Flutter移动端App实战教程【环境配置、模拟器配置】

一、概述 Flutter是Google用以帮助开发者在IOS和Android 两个平台开发高质量原生UI的移动SDK&#xff0c;一份代码可以同时生成IOS和Android两个高性能、高保真的应用程序。 二、渲染机制 之所以说Flutter能够达到可以媲美甚至超越原生的体验&#xff0c;主要在于其拥有高性…

相似性搜索,第 4 部分:分层可导航小世界 (HNSW)

一、说明 SImilarity 搜索是一个问题&#xff0c;给定一个查询的目标是在所有数据库文档中找到与其最相似的文档。相似度搜索&#xff08;similarity search&#xff09;是指在大规模数据集中寻找与某个查询对象最相似的对象的过程。该过程通常涉及计算两个对象之间的相似度得分…

软件设计师学习笔记9-进程调度

目录 1. PV操作 1.1进程的同步与互斥 1.1.1互斥 1.1.2同步 1.2 PV操作 1.2.1信号量 1.2.2 PV操作的概念 2.信号量与PV操作 2.1 PV操作与互斥模型 2.2 PV操作与同步模型 2.3 互斥与同步模型结合 3.前趋图与PV操作 1. PV操作 1.1进程的同步与互斥 1.1.1互斥 互斥&…

Car Window Control Reset

大众汽车窗口自动升降失效&#xff0c;重置&#xff1a; 扣住5秒&#xff0c;重启汽车&#xff0c;试一下车钥匙&#xff0c;和再重试这个按钮&#xff0c;扣一下试一试

使用openWRT 配置SFTP 实现远程文件安全传输

文章目录 前言 1. openssh-sftp-server 安装2. 安装cpolar工具3.配置SFTP远程访问4.固定远程连接地址 前言 本次教程我们将在OpenWRT上安装SFTP服务&#xff0c;并结合cpolar内网穿透&#xff0c;创建安全隧道映射22端口&#xff0c;实现在公网环境下远程OpenWRT SFTP&#xf…

nginx空字节漏洞复现

将nginx复制到C盘根目录 cmd运行startup.bat 安装完成后访问 输入info.php 输入info.png 抓包使用00截断 可以看到phpinfo成功执行 在PHP的底层C语言里&#xff0c;%00代表着字符串结束&#xff0c;00截断可以用来绕过后端验证&#xff0c;后端验证的时候因为00截断认为文件是…

【已更新代码图表】2023数学建模国赛E题python代码--黄河水沙监测数据分析

E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c;以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位于小浪底水…

postgresql-使用plpgsql批量插入用户测试数据

目的 使用plpgsql批量插入用户测试数据 ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤我是分割线❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ 我的环境 客户端&#xff1a;windows 版pgadmin4 服务端&#xff1a;linux版PostgreSQL 15.4 ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤…