当前位置: 首页 > news >正文

【监控软件】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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Langchain大语言模型开发教程】基于文档问答
  • 太原高校大学智能制造实验室数字孪生可视化系统平台建设项目验收
  • 基于区块链技术的高校教育资源共享的研究
  • Animate.css的使用
  • 视图,存储过程和触发器
  • 若依 ruoyi poi Excel合并行的导入
  • labview实现两台电脑共享变量传输及同步
  • 立创梁山派--移植开源的SFUD万能的串行 Flash 通用驱动库
  • 明星中药企业系列洞察(十二):百年老字号胡庆余堂如何借势焕新?
  • Go基础编程 - 10- 接口(interface)
  • 服务器选择租用还是托管?托管和租用哪个比较划算
  • 为RTEMS Raspberrypi4 BSP添加SPI支持
  • css快捷代码【超出一行文本显示省略号/超出三行显示省略号/超出n行...】
  • springboot 缓存预热的几种方案
  • 科技云报道:算网筑基AI注智,中国联通如何讲出AI时代的“新故事”?
  • python3.6+scrapy+mysql 爬虫实战
  • DataBase in Android
  • LintCode 31. partitionArray 数组划分
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • react 代码优化(一) ——事件处理
  • React-redux的原理以及使用
  • supervisor 永不挂掉的进程 安装以及使用
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 回顾2016
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 算法之不定期更新(一)(2018-04-12)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 携程小程序初体验
  • 一些关于Rust在2019年的思考
  • 异步
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 正则学习笔记
  • nb
  • Python 之网络式编程
  • 选择阿里云数据库HBase版十大理由
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #include<初见C语言之指针(5)>
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (11)MATLAB PCA+SVM 人脸识别
  • (NSDate) 时间 (time )比较
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (回溯) LeetCode 131. 分割回文串
  • (十八)三元表达式和列表解析
  • (五)网络优化与超参数选择--九五小庞
  • (原創) 物件導向與老子思想 (OO)
  • (转)LINQ之路
  • (转载)Linux网络编程入门
  • ./configure、make、make install 命令