【监控软件】Zabbix

目录

重点提要

1. 常见监控软件

2. 常用的zabbix组件

3. 主动模式与被动模式原理

4. 主动模式与被动模式实现

5. 监测JAVA程序Tomcat

6. proxy架构

7. proxy的安装

8. proxy的主动被动实现

9. zabbix自定义模版

10. zabbix邮件通知

11. zabbix自愈(nginx为例)

12. zabbix批量添加主机


重点提要

1. 常见监控软件

cacti:流量监控工具,对交换机路由器,对服务器不行
nagios:分层告警,监控数量有限,承载能力低
Open-falcon:小米开发
Nightingale:与猎鹰差不多
zabbix:功能强大,成熟稳定
prometheus:主要监控容器

2. 常用的zabbix组件

zabbix-server
zabbix-agent
zabbix-proxy用于转发
java-gateway用于监控java程序

3. 主动模式与被动模式原理

主动、被动模式都是相对于agent而言的,默认是被动模式
若业务量大,且不想用proxy,则最好使用主动模式
​
主动模式:客户端主动将数据发给server或proxy
1. 初次连接agent服务器会开启随机端口去连接   服务端的 10051 端口 来获取 需要监控的数据类型(监控项)
2. 从节点将数据交给主
3. 主写入数据库
4. 最后展示在 web页面中
5. 此后的数据收集就不需要先去获取监控项目
​
被动模式:客户端什么都不用做,只需要等被动等待server或proxy索要数据
1. 主服务器会开启随机端口去连接 客户端的 10050 端口 来获取数据
2. 从节点将数据交给主
3. 主写入数据库
4. 最后展示在 web页面中
被动模式

主动模式

4. 主动模式与被动模式实现

#主动模式实现
#在agent服务器
vim /apps/zabbix/etc/zabbix_agentd.conf
​
Server=192.168.254.10#谁可以来主动获取本服务器的数据
ServerActive=192.168.254.10#配置主动模式的zabbix server地址
​
#被动模式实现
#默认即为被动模式

5. 监测JAVA程序Tomcat

#通过JMX监控软件来监测
​
#在tomcat服务器上
vim /usr/local/tomcat/bin/catalina.sh
#一般加在116行
CATALINA_OPTS="$CATALINA_OPTS  -Dcom.sun.management.jmxremote #启用远程监控JMX -Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可                 -Dcom.sun.management.jmxremote.authenticate=false    #不使用用户名密码-Dcom.sun.management.jmxremote.ssl=false  #不使用ssl认证-Djava.rmi.server.hostname=192.168.254.20"#hostname填写自己的IP
​
​
​
#在zabbix_server服务器上
vim /apps/zabbix_server/sbin/zabbix_java/settings.sh
START_POLLERS=5  #启动5个线程去采集java数据
TIMEOUT=30       #一个数据的超时时间30s
​
​
/apps/zabbix_server/sbin/zabbix_java/startup.sh
#启动服务
ss -antp |grep 10052
vim /apps/zabbix_server/etc/zabbix_server.conf
JavaGateway=192.168.254.100    #指明gateway地址
StartJavaPollers=5            #开启多少个进程去收集java服务器的信息
JavaGatewayPort=10052         # 默认不用改
​
systemctl restart zabbix-server
/apps/zabbix_server/sbin/zabbix_java/startup.sh

6. proxy架构

proxy也分主动和被动模式
一般推荐使用主动模式减轻server的负担
​
主动模式:agent主动去连proxy,proxy再连server
​
被动模式:proxy先向server发送连接请求,agent被动等待proxy连接,proxy再转发给server

7. proxy的安装

#安装依赖环境
yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y
​
./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
​
make   install
​
#准备 数据库
yum install mariadb-server -y
systemctl start mariadb
​
#新建表 后用于主动与被动模式的配置
create database zabbix_proxy_active character set utf8 collate utf8_bin;
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
# 授权
grant all privileges on zabbix_proxy_active.*  to proxy@'192.168.254.%' identified by '158436';
grant all privileges on zabbix_proxy_passive.* to proxy@'192.168.254.%' identified by '158436';
grant all privileges on zabbix_proxy_active.*  to proxy@'localhost' identified by '158436';
grant all privileges on zabbix_proxy_passive.* to proxy@'localhost' identified by '158436';
​
#导入数据结构
#先去源码包目录
mysql -uproxy -p158436 -h192.168.254.30 zabbix_proxy_passive < database/mysql/schema.sql
mysql -uproxy -p158436 -h192.168.254.30 zabbix_proxy_active < database/mysql/schema.sql

8. proxy的主动被动实现

环境介绍:
zabbix_server:192.168.254.50
zabbix_agent:192.168.254.30
zabbix_proxy:192.168.254.10
​
##########################被动模式#################################
#先去源码包目录,为数据库添加数据
mysql -uproxy -p158436  -h192.168.254.30 zabbix_proxy_passive < database/mysql/schema.sql
​
#配置proxy服务器
vim   /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1
#1是被动 0为主动 修改为1
Server=192.168.254.10
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的
ServerPort=10051
#被动模式可以不修改 应为是 zabbix-server 主动
Hostname=passive
# web 配置中需要使用, 必须一致
DBHost=192.168.254.30
#数据库地址
DBName=zabbix_proxy_passive
# 数据库名字
DBUser=proxy
#数据库用户
DBPassword=158436
#数据库密码
ConfigFrequency=5
#间隔多少秒从zabbix server获取监控项信息
#创建zabbix用户
useradd zabbix
#开启proxy
/apps/zabbix_proxy/sbin/zabbix_proxy
ss -natpl |grep 10051
#开启agent
/apps/zabbix_proxy/sbin/zabbix_agentd
pstree -p|grep zabbix
​
#在web端添加被动代理
点击管理,点击agent代理创建,名称为上面Hostname的值,IP为proxy服务器IP
​
#在agent服务器上
vim /apps/zabbix/etc/zabbix_agentd.conf
Server=192.168.254.10,192.168.254.50
systemctl  restart   zabbix-agent.service
​
##########################主动模式###############################
#先去源码包目录,为数据库添加数据
mysql -uproxy -p158436  -h192.168.254.30 zabbix_proxy_active < database/mysql/schema.sql
​
#配置proxy服务器
vim   /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=0
# 1是被动   0为主动 需要开启
Server=192.168.254.10
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的
ServerPort=10051
#被动模式可以不修改 应为是 zabbix-server 主动
Hostname=active
# web 配置中需要使用, 必须一致
DBHost=192.168.254.30
#数据库地址
DBName=zabbix_proxy_active
# 数据库名字
DBUser=proxy
#数据库用户
DBPassword=158436
#数据库密码
#创建zabbix用户
useradd zabbix
#开启proxy
/apps/zabbix_proxy/sbin/zabbix_proxy
ss -natpl |grep 10051
#开启agent
/apps/zabbix_proxy/sbin/zabbix_agentd
pstree -p|grep zabbix
​
#在agent服务器上
vim /apps/zabbix/etc/zabbix_agentd.conf
Server=192.168.254.10,192.168.254.50
ServerActive=192.168.254.10
systemctl  restart   zabbix-agent.service

9. zabbix自定义模版

1.先修改agent配置文件,290行左右加入监控项的键值
UserParameter=test[*],/usr/bin/bash /data/tcp.sh $1  $2
需要自备脚本,提取相应的值
2.在网页端,添加自定义模版,修改监控项、触发器、图形

10. zabbix邮件通知

1.使用qq邮箱,打开设置中的smtp协议,扫码后获取一个授权码。
2.进入zabbix-server的网页,点击管理,点击报警媒介类型,点击Email。
3.编辑smtp服务器:smtp.qq.com,端口465,SMTP HELO:qq.com,
SMTP电邮:你的QQ邮箱,SSL验证对端和主机☑️,用户名与密码:用户名为QQ邮箱、密码为授权码,点击更新。
4.点击管理,点击用户,点击Admin,点击报警媒介,点击添加,类型为Email,收件人可以填自己邮箱,点击添加,并且更新。
5.点击配置,点击动作,
5.1 创建动作,
名称:邮件通知(可自定义)。触发条件:触发器示警度、等于、警告(自选),点击添加。
5.2 点击操作,默认操作持续时间:60s。操作细节:步骤:1-0。发送到用户:Admin。仅送到:Email。点击添加。
5.3 点击回复操作,发送到用户:Admin。仅送到:Email。点击添加

11. zabbix自愈(nginx为例)

1.进入zabbix-agent服务器
vim /etc/zabbix/zabbix_agentd.conf
73  EnableRemoteCommands=1 #开启远程执行命令
287 UnsafeUserParameters=1 #允许远程执行命令的时候使用不安全的参数(特殊字符串)
systemctl restart zabbix-ag
​
2.进入zabbix-server网页
点击配置--动作--创建动作
名称:nginx自愈。新的触发条件:触发器、等于、选模版nginx listen80
​
点击操作,默认操作持续时间:60s,操作细节:操作类型:远程命令。目标列表:当前主机。类型:自定义脚本。命令:systemctl start nginx。
点击添加。

12. zabbix批量添加主机

1.获取token
2.编辑添加主机的信息
3.执行命令或脚本
​
#!/bin/bash
#zabbix-server的IP
HostIP="192.168.254.50"
#输入你想要添加主机的IP
AddIP="
192.168.254.100
192.168.254.110
192.168.254.120
"
#获取token
Token=$(curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"id":1}' http://192.168.254.50/zabbix/api_jsonrpc.php | cut -d : -f3 | cut -d , -f1 | tr -dc [:alnum:])
​
#批量添加主机(不加代理)
for i in ${AddIP}
do
curl -s -X POST -H 'Content-Type:application/json' -d '
{"jsonrpc": "2.0","method": "host.create","params": {"host": "'${i}'",#下面这项为代理的id,不加代理不需要下面这行"proxy_hostid": "10274", #上面这项为代理的id,不加代理不需要上面这行"interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "'${i}'","dns": "","port": "10050"}],"groups": [{"groupid": "15"}],"templates": [{"templateid": "10001"}]
},
"auth": "'${Token}'",
"id": 1
}' http://${HostIP}/zabbix/api_jsonrpc.php | python -m json.tool
done

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

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

相关文章

EXCEL 排名(RANK,COUNTIFS)

1.单列排序 需求描述&#xff1a;如有下面表格&#xff0c;需要按笔试成绩整体排名。 解决步骤&#xff1a; 我们使用RANK函数即可实现单列整体排名。 Number 选择第一列。 Ref 选择这一整列&#xff08;CtrlShift向下箭头、再按F4&#xff09;。 "确定"即可计算…

Scikit-learn内置的数据集

数据集是我们学习和研究机器学习不可或缺的基础&#xff0c;Scikit-learn库内置了丰富的数据集资源&#xff0c;非常适合初学者用来练习和验证机器学习算法的效果。 一、鸢尾花数据集 鸢尾花数据集&#xff08;Iris Dataset&#xff09;是机器学习领域中最著名的数据集之一&am…

论文解读 | ICML2024:突破Transformer上下文学习中的瓶颈

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者简介 付靖文&#xff0c;西安交通大学博士生 简介 上下文学习&#xff0c;即从上下文示例中学习&#xff0c;是Transformer一项令人印象深刻的能力。然而&#xff0c;由于学习瓶颈的出现——在训练过程中模…

【Java题解】以二进制加法的方式来计算两个内容为二进制数字的字符串相加的结果

&#x1f389;欢迎大家收看&#xff0c;请多多支持&#x1f339; &#x1f970;关注小哇&#xff0c;和我一起成长&#x1f680;个人主页&#x1f680; &#x1f451;目录 分析&#xff1a;&#x1f680; 数字层面分析⭐ 字符串层面分析⭐ 代码及运行结果分析:&#x1f6…

对语言大模型的现状总结与趋势

ChatGPT与LLM技术现状 LLM的主要手段 模型&#xff1a;Transformer拥有强大的表示能力&#xff0c;能对具有组合性(compositinality)的语言进行很好的表示和学习。 预训练&#xff08;pre-training&#xff09;&#xff1a;使用大规模文本数据进行语言建模&#xff08;langu…

浅谈监听器之后端监听器

浅谈监听器之后端监听器 “后端监听器”&#xff08;Backend Listener&#xff09;是一种高级功能&#xff0c;用于异步地将测试结果数据发送至外部系统&#xff0c;如数据库、消息队列或时间序列数据库等&#xff0c;以便于长期存储、实时分析和可视化展示。 后端监听器的作…

绕过token降低与对方服务器交互时延,如何实现??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

[C++] string管理:深浅拷贝写时拷贝

文章目录 拷贝问题的引入问题代码string类的构造函数String 类的析构函数测试入口函数&#xff08;问题&#xff09;详细分析 浅拷贝深拷贝传统版与现代版的String类传统String类现代版String类 写时拷贝先构造的对象后析构的影响写时拷贝举例及测试样例代码举例测试用例 拷贝问…

浅谈Llama3.1,从结构、训练过程、影响到数据合成

Llama3.1系列模型的开源&#xff0c;真让大模型格局大震&#xff0c;指标上堪比最好的闭源模型比如GPT 4o和Claude3.5&#xff0c;让开源追赶闭源成为现实。 这里给大家分享一篇俊林兄&#xff08;知乎张俊林&#xff09;的一篇解读&#xff0c;主要对LLaMA3.1的模型结构、训练…

1.1 操作系统的基本概念

文章目录 操作系统的概念(定义)操作系统的目标和功能操作系统作为计算机系统资源的管理者操作系统向上层提供方便易用的服务命令接口程序接口 操作系统作为最接近硬件的层次 操作系统的特征&#xff08;4个&#xff09;并发共享互斥共享方式同时共享方式 虚拟虚拟处理器&#x…

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(二)

上一篇只是简单演示了’下一张’的操作和整体的设计思路,这两天把剩余功能补全了,代码经过精简,可封装当成轮播组件使用,详细如下. 代码 <template><div class"container"><button click"checkNext(last)">上一张</button><b…

Vue Router基础

Router 的作用是在单页应用&#xff08;SPA&#xff09;中将浏览器的URL和用户看到的内容绑定起来。当用户在浏览不同页面时&#xff0c;URL会随之更新&#xff0c;但页面不需要从服务器重新加载。 1 Router 基础 RouterView RouterView 用于渲染当前URL路径对应的路由组件。…

Linux--Socket编程预备

目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…

边缘计算网关项目(含上报进程、32Modbus采集进程、设备搜索响应进程源码)

目录 边缘层 架构说明 包含知识点 数据上报进程 功能描述 功能开发 上报线程 数据存储线程 指令处理线程 项目源码 上报模块.c代码&#xff1a; 上报模块Makefile代码&#xff1a; STM32采集模块.c代码 设备搜索响应模块Linux部分.c代码 设备搜索响应模块Qt端代码.h …

流量录制与回放:jvm-sandbox-repeater工具详解

在软件开发和测试过程中&#xff0c;流量录制与回放是一个非常重要的环节&#xff0c;它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater&#xff0c;以及如何利用它来提高软件测试的效率和质量。 …

《Cross-Modal Dynamic Transfer Learning for Multimodal Emotion Recognition》

Multi-modal系列论文研读目录 文章目录 Multi-modal系列论文研读目录1.ABSTRACT2.INDEX TERMS3.INTRODUCTION4.RELATED WORKSA. MULTIMODAL EMOTION RECOGNITION 多模态情感识别1) CONVENTIONAL FUSION METHODS 常规融合方法2) TRANSFORMER-BASED FUSION METHODS 基于变压器的融…

C#测试控制台程序调用Quartz.NET的基本用法

Quartz.Net是常用的任务调用框架之一&#xff0c;既能在客户端程序中使用&#xff0c;也支持在网页程序后台调用。本文结合参考文献4中的示例代码学习其在控制台程序中的基本用法。   VS2022新建控制台项目&#xff0c;在Nuget包管理器中搜索并安装Quartz包&#xff0c;如下所…

IDEA在编译的时候报Error: java: 找不到符号符号: 变量 log lombok失效问题

错误描述 idea因为lombok的报错: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy8Lombok supports: sun/apple javac 1.6, ECJ 原因&#xff1a;这是由于Lombok的版本过低的…

若依 ruoyi poi Excel合并行的导入

本文仅针对文字相关的合并做了处理 &#xff0c;图片合并及保存需要另做处理&#xff01;&#xff01; 目标&#xff1a;Excel合并行内容的导入 结果&#xff1a; 1. ExcelUtil.java 类&#xff0c;新增方法&#xff1a;判断是否是合并行 /*** 新增 合并行相关代码&#xff1a;…

matlab 绘制参数方程

matlab 绘制参数方程 绘制参数方程绘制结果 绘制参数方程 clc; clear; close all;axis_length 100;% 定义参数t的范围 t 0:0.01:100;% 计算x和y的值 x t.^2 1; y 4*t - t.^2;% 绘制函数图像 plot(x, y); xlabel(x); ylabel(y); title(Plot of the curve xt^21, y4t-t^2…