当前位置: 首页 > 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/14477935/

相关文章:

  • 沈阳网站建设优化企业西安百度关键词包年
  • 网站域名查询工具怎么制作网站程序
  • 青岛易龙网站建设深圳最近流感多吗
  • wordpress 多站点 404企业品牌网站建设我们的优势
  • 做二手电脑的网站wordpress换域名修改
  • 怎么制作小网站 不用域名的连云港seo优化
  • 网站401错误wordpress文档chm
  • 国内网站设计案例seo网站制作
  • 招远网站建设多少钱营销渠道模式有哪些
  • 网站建设方案 市场分析wordpress自定义样式
  • dedecms 一键更新网站电子商务网页设计模板
  • 深圳网站建设 营销网络规划设计师通过率最低
  • 免费正能量不良网站推荐电商网站的二级菜单怎么做
  • 阿里云搭建网站教程怎么查网站的备案信息
  • 自己做的网站如何让百度搜索交换友情链接时需要注意的事项
  • 服务佳的广州网站建设宁德建设银行网站
  • 石家庄城乡建设厅网站内存数据库 网站开发
  • 正规手机网站建设平台大厂县城乡建设局网站
  • 仿唧唧帝笑话门户网站源码带多条采集规则 织梦搞笑图片视频模板搜索引擎收录
  • 修改网站参数阿里云wordpress数据库迁移
  • 网站开发工具选择做班级玩网站做哪些方面
  • wordpress mirana东莞百度seo电话
  • 福州全网网站建设山东诚铭建设机械有限公司网站
  • 个人网站建设方法wordpress打造成cms
  • 做网站是通过怎么挣钱搜索竞价
  • 怎么在网站上做外链wordpress百度地图主题
  • 域名抢注网站佛山做外贸网站的
  • 做网站准备什么问题赵本山死了最新新闻
  • 做游戏网站的需求分析网站后台上传图片显示运行错误为什么
  • 网站建设费属于无形资产吗天津滨海新区属于哪个区