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

上传空间网站品牌建设与管理

上传空间网站,品牌建设与管理,从化门户网站建设,如何建设数据库搜索网站一#xff0c;前言 有zabbix监控#xff0c;也并不是时刻盯着数据#xff0c;所以想着#xff0c;每天固定某个时刻#xff0c;自动发送服务器数据到指定群组#xff0c;给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档#xff1a;https://www.z…一前言 有zabbix监控也并不是时刻盯着数据所以想着每天固定某个时刻自动发送服务器数据到指定群组给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档https://www.zabbix.com/documentation/current/zh/manual/api 二功能实现 主要功能概览 获取cpu和内存的数据可根据实际情况添加其他监控项数据。只需要24小时内最大最小平均数据。只获取群组为prod的主机服务器意味着生产环境。 需要获取主机在zabbix分到同一个组方便获取所有主机信息。 代码步骤概览 获取 Zabbix 认证 Token登录有权限的账户。 user.login方法获取Token。需要注意的是由于安装版本不同API链接可能不同如有些是https://example.com/zabbix/api_jsonrpc.php有些是https://example.com/api_jsonrpc.php获取指定群组中的所有主机获取群组ID。 hostgroup.get方法获取群组ID获取群组内所有主机host.get方法。遍历每个主机获取CPU和RAM的监控项获取需要监控项的itemIDitem.get方法。通过 监控项的itemID获取历史数据记录history.get方法。计算将结果通过媒体发送到指定群组这里为TG群组。 三代码实现 这里使用shell脚本 #!/bin/bash# 信息验证 ZABBIX_URLhttps://zabbix.example.com/api_jsonrpc.php ZABBIX_GROUPprod # 指定的服务器群组名称 ZABBIX_USERAdmin ZABBIX_PASSpassoword# TG 群组token和ID TELEGRAM_BOT_TOKEN5487418237:AAGibU....... TELEGRAM_CHAT_ID-452112....# 登录并获取zabbix token AUTH_TOKEN$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: user.login,params: {user: $ZABBIX_USER,password: $ZABBIX_PASS},id: 1 } $ZABBIX_URL | jq -r .result) #echo $AUTH_TOKEN# Step 1: 获取群组ID GROUP_ID$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: hostgroup.get,params: {output: extend,filter: {name: [$ZABBIX_GROUP]}},auth: $AUTH_TOKEN,id: 1 } $ZABBIX_URL | jq -r .result[0].groupid) #echo $GROUP_ID# Step 2: 获取群组内所有主机 HOSTS$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: host.get,params: {output: [hostid, host],groupids: $GROUP_ID},auth: $AUTH_TOKEN,id: 1 } $ZABBIX_URL) #echo $HOSTS# 时间范围这里只获取24小时的数据 END_TIME$(date %s) #echo $END_TIME START_TIME$((END_TIME - 86400)) # 24小时之前的时间戳 #echo $START_TIME# Step 3: 遍历每个主机获取CPU和RAM的监控项数据 for HOST in $(echo $HOSTS | jq -r .result[] | base64); do_jq() {echo ${HOST} | base64 --decode | jq -r ${1}}HOST_ID$(_jq .hostid)#echo $HOST_IDHOST_NAME$(_jq .host)#echo $HOST_NAME# Step 4: 获取CPU和内存的itemidITEMID_CPU$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: item.get,params: {output: extend,hostids: $HOST_ID,search: {name: CPU utilization,key_: system.cpu.util}},auth: $AUTH_TOKEN,id: 1} $ZABBIX_URL | jq -r .result[0].itemid)#echo $ITEMID_CPUITEMID_MEM$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: item.get,params: {output: extend,hostids: $HOST_ID,search: {key_: vm.memory.utilization}},auth: $AUTH_TOKEN,id: 1} $ZABBIX_URL | jq -r .result[0].itemid)#echo $ITEMID_MEM# 获取CPU和内存的历史数据CPU_DATA$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: history.get,params: {output: extend,history: 0,itemids: $ITEMID_CPU,time_from: $START_TIME,time_till: $END_TIME,sortfield: clock,sortorder: DESC},auth: $AUTH_TOKEN,id: 1} $ZABBIX_URL | jq -r .result[] | .value)MEM_DATA$(curl -s -X POST -H Content-Type: application/json -d {jsonrpc: 2.0,method: history.get,params: {output: extend,history: 0,itemids: $ITEMID_MEM,time_from: $START_TIME,time_till: $END_TIME,sortfield: clock,sortorder: DESC},auth: $AUTH_TOKEN,id: 1} $ZABBIX_URL | jq -r .result[] | .value)#获取最新的CPU和内存数值LATEST_CPU$(echo $CPU_DATA | head -n 1)LATEST_MEM$(echo $MEM_DATA | head -n 1)#计算CPU和内存的最大值、最小值和平均值CPU_MAX$(echo $CPU_DATA | sort -nr | head -n 1)CPU_MIN$(echo $CPU_DATA | sort -n | head -n 1)CPU_AVG$(echo $CPU_DATA | awk {s$1} END {printf %.2f, s/NR})#echo $CPU_MAX#echo $CPU_MIN#echo $CPU_AVGMEM_MAX$(echo $MEM_DATA | sort -nr | head -n 1)MEM_MIN$(echo $MEM_DATA | sort -n | head -n 1)MEM_AVG$(echo $MEM_DATA | awk {s$1} END {printf %.2f, s/NR})#echo $MEM_AVG#格式化为两位小数CPU_MAX$(printf %.2f $CPU_MAX)CPU_MIN$(printf %.2f $CPU_MIN)LATEST_CPU$(printf %.2f $LATEST_CPU)MEM_MAX$(printf %.2f $MEM_MAX)MEM_MIN$(printf %.2f $MEM_MIN)LATEST_MEM$(printf %.2f $LATEST_MEM)#发送监控数据到 TG 群组MESSAGE*Server Name(服务器):* $HOST_NAME%0A*CPU utilization 24h(利用率):*%0A- Max(最大): $CPU_MAX%25%0A- Min(最小): $CPU_MIN%25%0A- AVG(平均): $CPU_AVG%25%0A- Current(当前): $LATEST_CPU%25%0A*Memory utilization 24h(内存利用率):*%0A- Max(最大): $MEM_MAX%25%0A- Min(最小): $MEM_MIN%25%0A- AVG(平均): $MEM_AVG%25%0A- Current(当前): $LATEST_MEM%25%#echo $Messagecurl -s -X POST https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage \-d chat_id$TELEGRAM_CHAT_ID \-d text$MESSAGE \-d parse_modeMarkdowndone以上代码在调试可以自行去掉 echo 前面的#。 四群组输出格式问题 最后代码格式问题会因所发送的媒体信息不通代码格式也不同。如以前用/n换行格式在shell输出没问题在TG群就不生效。以前参考格式。 MESSAGE服务器名称: $HOST_NAME\nCPU 利用率: 最大 $CPU_MAX%, 最小 $CPU_MIN%, 平均 $CPU_AVG%\n内存利用率: 最大 $MEM_MAX%, 最小 $MEM_MIN%, 平均 $MEM_AVG%curl -s -X POST https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage -d chat_id$TELEGRAM_CHAT_ID -d text$MESSAGE后面改成这样的格式虽然shell输出格式乱但是在TG群组输入没问题。 使用Markdown 语法 使用 * 符号来加粗文本。 使用 - 来列出项目。 确保 TG 处理换行 将换行符 \n 替换为 %0A这是 URL 编码的换行符。 MESSAGE*Server Name(服务器):* $HOST_NAME%0A*CPU utilization 24h(利用率):*%0A- Max(最大): $CPU_MAX%25%0A- Min(最小): $CPU_MIN%25%0A- AVG(平均): $CPU_AVG%25%0A- Current(当前): $LATEST_CPU%25%0A*Memory utilization 24h(内存利用率):*%0A- Max(最大): $MEM_MAX%25%0A- Min(最小): $MEM_MIN%25%0A- AVG(平均): $MEM_AVG%25%0A- Current(当前): $LATEST_MEM%25%curl -s -X POST https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage \-d chat_id$TELEGRAM_CHAT_ID \-d text$MESSAGE \-d parse_modeMarkdown最后运行脚本结果 最后放服务器上设置个定时任务每天自动发送消息。 crontab -e00 12 * * * bash /shell/zabbix_monitor.sh
http://www.hkea.cn/news/14444599/

相关文章:

  • 阳曲网站建设推荐咨询马鞍山人才网
  • wordpress在线编辑器昆明搜索引擎的关键词优化
  • 织梦技术个人网站模板下载商丘家具网站建设
  • 贝壳找房网站做销售调兵山网站
  • 哪个网站可以找人做橱柜网站建设有哪些基本流程
  • 快速建站模板自助建站安装wordpress时不能选择数据库
  • 广西钦州网站建设wordpress 微信悬浮
  • 网站策划公司平台网站建设的公司
  • 品牌网站策划方案上海电商网站开发公司
  • 企业官网有哪些网站如何创建一个个人网站
  • 为了做宣传网站而注册公司自己怎么做淘宝客网站
  • 北京微信网站开发费用wap和app的区别
  • 太原手机网站开发怎样创建网站dw
  • 个人可以做社区网站小程序app开发制作
  • 简单的手机网站模板下载安装专业做招聘网站
  • 网站的搭建流程自己做的网站可以开直播
  • 网站开发工程师优势企业网站建设优势
  • 一级域名网站泰安集团网站建设多少钱
  • 网站接入服务提供单位建设公司网站意义
  • 深圳商城网站制作公司谁有做任务网站
  • 东莞装饰网站建设上海网站优化
  • 眉山网站优化淘宝电商网站怎么做
  • 做网站 信科网络设计教学网站推荐
  • 安徽网站建设科技分类信息网站排行
  • 怀化冰山涯IT网站建设公司网站维护提示代码
  • 威海好的网站建设公司微信公众平台公众号
  • 邯郸网站设计在哪里姚孟信通网站开发中心
  • jsp做网站实例软件培训公司排名
  • 襄阳市做网站的公司韩国设计教程网站
  • 网站制作大概多少钱做网站一般需要多少钱