0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

系統(tǒng)監(jiān)控相關(guān)知識(shí)及釘釘機(jī)器人告警腳本編寫(xiě)

jf_TEuU2tls ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:雪龍翔宇 ? 2022-11-18 09:18 ? 次閱讀

前言

大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡(luò)通信相關(guān)的IT知識(shí)平臺(tái)。

今天浩道跟大家分享硬核監(jiān)控干貨,一文帶大家學(xué)習(xí)系統(tǒng)監(jiān)控相關(guān)知識(shí)及釘釘機(jī)器人告警腳本編寫(xiě)!

一、背景

當(dāng)前不同的公司服務(wù)器較多,在項(xiàng)目開(kāi)發(fā)、部署和演示過(guò)程多次遇到服務(wù)器無(wú)故宕機(jī)的情況,另外各服務(wù)器上部署的中間件也存在無(wú)故下線的情況,如果出現(xiàn)以上情況就特別棘手,而技術(shù)人員無(wú)法第一時(shí)間感知。

二、操作說(shuō)明
1、檢查服務(wù)器curl命令是否可用


(1)調(diào)用相關(guān)命令進(jìn)行檢查

#查看當(dāng)前版本
curl--version
#檢查網(wǎng)站是否可達(dá),若html顯示在屏幕上則證明命令可用
curlhttp://www.baidu.com

(2)如果無(wú)法調(diào)用,則可參照文章進(jìn)行curl安裝

https://blog.csdn.net/qq_38215042/article/details/108768839

2、shell文件配置

(1)當(dāng)前是將服務(wù)器CPU相關(guān)監(jiān)聽(tīng)和中間件的Shell腳本文件分開(kāi)設(shè)置的,主要是考慮到文件過(guò)大,在配置修改和定時(shí)命令執(zhí)行時(shí)出現(xiàn)問(wèn)題不好排查,執(zhí)行時(shí)間也會(huì)比較耗時(shí)。


(2)在相應(yīng)的shell腳本文件中,已經(jīng)將配置可能要修改點(diǎn)作了標(biāo)記,可根據(jù)實(shí)際情況進(jìn)行針對(duì)性修改。


(3)在shell腳本修改完成后,查看腳本是否執(zhí)行權(quán)限,沒(méi)有則調(diào)用命令進(jìn)行設(shè)置

#將sh文件添加可執(zhí)行權(quán)限
chmodu+xdingtalk.sh
#或設(shè)置全部權(quán)限
chmod777dingtalk.sh

(4)權(quán)限設(shè)置后,可先調(diào)用執(zhí)行一下,檢查下是否有格式問(wèn)題

./dingtalk.sh或相對(duì)路徑執(zhí)行./home/admin/server/dingtalk.sh

3、定時(shí)任務(wù)創(chuàng)建
定時(shí)任務(wù)常用命令如下

crontab-u//設(shè)定特定用戶的定時(shí)服務(wù)
crontab-l//列出當(dāng)前用戶定時(shí)服務(wù)內(nèi)容
crontab-r//刪除當(dāng)前用戶的定時(shí)服務(wù)
crontab-e//編輯當(dāng)前用戶的定時(shí)服務(wù)
在設(shè)定編輯之前都建議列出服務(wù)查看一下:crontab -l


#對(duì)cron定時(shí)任務(wù)列表進(jìn)行編輯
crontab-e
#i進(jìn)行修改,ESC鍵退出編輯,;wq保存并退出
#每五分鐘執(zhí)行一次
*/5****shxx.sh
#每半小時(shí)執(zhí)行一次
*/30****shxx.sh
#每天的15時(shí)25分執(zhí)行一次
2515***shxx.sh

#中間件腳本文件
*/5****sh/home/admin/server/dingtalk.sh
#服務(wù)器腳本文件
*/5****sh/home/admin/server/dingtalk_server.sh

命令說(shuō)明

ebfbd2b8-66d2-11ed-8abf-dac502259ad0.png

4、定時(shí)任務(wù)執(zhí)行情況檢查

#進(jìn)入定時(shí)任務(wù)log下
cd/var/log
#查看定時(shí)任務(wù)是否調(diào)用
tail-fcron

三、Shell配置說(shuō)明
1、服務(wù)器CPU、內(nèi)存、磁盤(pán)監(jiān)控腳本

#!/bin/bash

#【配置1】要@的人員手機(jī)號(hào)碼,此處的手機(jī)號(hào)必須和釘釘上的一致
user="17858888888"
#user1="13888888888"
#user2="XXXX"

#【配置2】網(wǎng)卡配置(可選),此處配置的是想要展示的ip地址,使用ifconfig查看inet對(duì)應(yīng)的ip
ifconfig="eth0"

#主機(jī)信息
Date=`date+%Y-%m-%d`
Date_time=`date"+%Y-%m-%d--%H:%M:%S"`
Host_name=`hostname`
IP_addr=`ifconfig$ifconfig|grep"inet"|awk'NR==1{print$2}'`

#獲取cpu使用率
cpuUsage=`top-b-n1|fgrep"Cpu(s)"|tail-1|awk-F'id,''{split($1,vs,",");v=vs[length(vs)];sub(/s+/,"",v);sub(/s+/,"",v);printf"%d",100-v;}'`

#獲取磁盤(pán)使用率
data_name="/"
diskUsage=`df-h|grep-w$data_name|awk-F'[%]+''{print$5}'`

#統(tǒng)計(jì)內(nèi)存使用率
mem_used_persent=`free-m|awk-F'[:]+''NR==2{printf"%d",($2-$7)/$2*100}'`

#【配置3】釘釘webhook
Dingding_Url="https://oapi.dingtalk.com/robot/send?access_token=xxxxxx"


#【配置4】服務(wù)監(jiān)聽(tīng)-發(fā)送釘釘消息,消息內(nèi)容可修改
#at中atMobiles為數(shù)組結(jié)構(gòu),可添加上面配置的user1、user2等,可根據(jù)不同的業(yè)務(wù)@指定的人員,isAtAll是否@所有人設(shè)置
functionSendServerMessageToDingding(){
curl${Dingding_Url}-H'Content-Type:application/json'-d'{
"msgtype":"text",
"text":{"content":"服務(wù)監(jiān)控:
服務(wù)器資源耗盡警告,請(qǐng)盡快處理!
巡查時(shí)間:'${Date_time}'
IP地址:'${IP_addr}'
資源狀況如下:
【CPU可用:'${cpuUsage}'%】
【磁盤(pán)使用率:'${diskUsage}'%】
【內(nèi)存使用率:'${mem_used_persent}'%】"},
"at":{"atMobiles":['${user}'],"isAtAll":false}
}'

}

#【配置5】此處可根據(jù)服務(wù)器的實(shí)際情況,進(jìn)行閾值調(diào)整
functionserverCheck(){
if[["$cpuUsage">75]]||[["$diskUsage">90]]||[["$mem_used_persent">90]];
then
SendServerMessageToDingding
fi
}
serverCheck

2、中間件監(jiān)控腳本

#!/bin/bash

#【配置1】中間件端口設(shè)置
Port_Nginx="80"
Port_MySQL="3306"
#...此處省略多個(gè)端口,可添加該服務(wù)器上的其他中間件配置
#Port_Nacos="xxx"
#Port_ElesticSearch="xxx"

#【配置2】網(wǎng)卡配置(可選),此處配置的是想要展示的ip地址,使用ifconfig查看inet對(duì)應(yīng)的ip
ifconfig="eth0"

#【配置3】要@的人員手機(jī)號(hào)碼,此處的手機(jī)號(hào)必須和釘釘上的一致
user="17858888888"
#user1="13888888888"
#user2="XXXX"

#主機(jī)信息
Date=`date+%Y-%m-%d`
Date_time=`date"+%Y-%m-%d--%H:%M:%S"`
Host_name=`hostname`
IP_addr=`ifconfig$ifconfig|grep"inet"|awk'NR==1{print$2}'`

#【配置4】中間件監(jiān)控項(xiàng)
Nginx_status=`netstat-lntup|grep-w"$Port_Nginx"|wc-l`':Nginx'
MySQL_status=`netstat-lntup|grep-w"$Port_MySQL"|wc-l`':MySQL'
#...此處省略多項(xiàng),按照自己需求配置即可,同上
#flink_status=`netstat-lntup|grep-w"$Port_flink"|wc-l`':flink'

#【配置5】釘釘webhook,此處為添加的釘釘機(jī)器人webhook,當(dāng)前為已經(jīng)添加使用的webhook
Dingding_Url="https://oapi.dingtalk.com/robot/send?access_token=xxxxxxx"

#【配置6】應(yīng)用掛機(jī)-發(fā)送釘釘消息,消息內(nèi)容可修改
#at中atMobiles為數(shù)組結(jié)構(gòu),可添加上面配置的user1、user2等,可根據(jù)不同的業(yè)務(wù)@指定的人員,isAtAll是否@所有人設(shè)置
functionSendDownMessageToDingding(){
curl-s"${Dingding_Url}"-H'Content-Type:application/json'-d"
{
'msgtype':'text',
'text':{'content':'服務(wù)監(jiān)控
$1服務(wù)down,請(qǐng)盡快處理!
巡查時(shí)間:${Date_time}
IP地址:${IP_addr}
'},
'at':{'atMobiles':['${user}'],'isAtAll':false}
}"

}

#【配置7】應(yīng)用恢復(fù)-發(fā)送釘釘消息,消息內(nèi)容可修改
#at中atMobiles為數(shù)組結(jié)構(gòu),可添加上面配置的user1、user2等,可根據(jù)不同的業(yè)務(wù)@指定的人員,isAtAll是否@所有人設(shè)置
functionSendUpMessageToDingding(){
curl-s"${Dingding_Url}"-H'Content-Type:application/json'-d"
{
'msgtype':'text',
'text':{'content':'服務(wù)監(jiān)控
$1服務(wù)已恢復(fù)正常運(yùn)行!
巡查時(shí)間:${Date_time}
IP地址:${IP_addr}
'},
'at':{'atMobiles':['${user}'],'isAtAll':false}
}"

}

#【配置8】logpath,將消息記錄到指定日志目錄
log_path="/home/logs"

#【配置9】遍歷--此處要配置【中間件】服務(wù)的信息,根據(jù)情況在in{$xxx,$yyy.....}中進(jìn)行添加中間件
foriin{$Nginx_status,$MySQL_status}
do
statcode=`echo$i|awk-F':''{print$1}'`
name=`echo$i|awk-F':''{print$2}'`
old_statcode=`head-n1${log_path}/${name}.log`
if[$statcode-lt1]
then
if[$old_statcode-lt1]
thenecho"[ERROR]$nameisstillstopped!Status_code=$statcode"
else
echo"[ERROR]$nameisstopped!Status_code=$statcode"
SendDownMessageToDingding$name
fi
else
if[$old_statcode-ge1]
thenecho"[INFO]$nameisstillrunningnormally!Status_code=$statcode"
else
echo"[INFO]$namereturnedtonormalfunction!Status_code=$statcode"
SendUpMessageToDingding$name
fi
fi
echo$statcode>${log_path}/${name}.log
done

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27838

    瀏覽量

    204580
  • 系統(tǒng)監(jiān)控

    關(guān)注

    0

    文章

    18

    瀏覽量

    10867
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    382

    瀏覽量

    14761

原文標(biāo)題:【監(jiān)控肝貨】系統(tǒng)監(jiān)控及釘釘機(jī)器人告警腳本

文章出處:【微信號(hào):浩道linux,微信公眾號(hào):浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【KittenBot機(jī)器人試用申請(qǐng)】搬運(yùn)機(jī)器人

    項(xiàng)目名稱:搬運(yùn)機(jī)器人試用計(jì)劃:希望申請(qǐng)本套件,用它來(lái)制作搬運(yùn)機(jī)器人。拿到第一步,學(xué)習(xí)該主控芯片和它的庫(kù)函數(shù);第二步,學(xué)習(xí)超音波模塊,直流電機(jī)和步進(jìn)電機(jī),舵機(jī)和WiFi相關(guān)知識(shí);第三步,
    發(fā)表于 07-10 09:42

    玩 High API 系列之:實(shí)現(xiàn)Ding功能

    。當(dāng)然我們還可以通過(guò)郵件的方式通知到接收人。只需開(kāi)通郵件推送服務(wù),調(diào)用BatchSendMail API,就可以快速將郵件通知給多達(dá)10000。通過(guò)阿里云的API在自己的APP中實(shí)現(xiàn)和Ding
    發(fā)表于 02-05 12:17

    AliOS Things 3.0應(yīng)用筆記:攝像頭配網(wǎng) + 群通知 + 天氣顯示

    的AliOS-Things源碼路徑。更改機(jī)器人的token更改http/http_request.c中的DINGTALK_TOKEN為你的
    發(fā)表于 10-16 13:30

    請(qǐng)問(wèn)有沒(méi)有人用過(guò)LABVIEW與機(jī)器人交互的?

    有沒(méi)有大佬搞過(guò)自定義機(jī)器人推送消息的,WEBHOOK這么都搞不定,現(xiàn)在急需要用,跪謝了。
    發(fā)表于 12-07 11:43

    關(guān)在和企業(yè)微信上使用AI視頻面試——AI得賢招聘官操作說(shuō)明

    。其包含一鍵發(fā)布、簡(jiǎn)歷庫(kù)集合查重、AI簡(jiǎn)歷解析、遠(yuǎn)程實(shí)時(shí)視頻面試、AI視頻面試、AI面試聊天機(jī)器人、AI面試電話機(jī)器人、編程能力評(píng)估系統(tǒng)、在線考試系統(tǒng)、背景調(diào)查服務(wù)等,用AI和RPA技
    發(fā)表于 03-07 19:30

    如何實(shí)現(xiàn)自動(dòng)打卡

    看這篇文章的朋友想必都是公司使用考勤打卡的,這里直接開(kāi)門(mén)見(jiàn)山講述如何實(shí)現(xiàn)自動(dòng)打卡。需要留公司一部舊安卓手機(jī),安裝
    發(fā)表于 09-14 08:09

    用于自動(dòng)鉆鉚系統(tǒng)滑塊式送模塊設(shè)計(jì)與研究

    針對(duì)工業(yè)機(jī)器人平臺(tái)自動(dòng)鉆鉚系統(tǒng)中自動(dòng)送難的問(wèn)題,介紹了一種能夠?yàn)樽詣?dòng)鉆鉚機(jī)自動(dòng)逐個(gè)輸送鉚釘?shù)幕瑝K式送模塊。鉚釘在從供管道到吹
    發(fā)表于 03-27 16:07 ?3次下載
    用于自動(dòng)鉆鉚<b class='flag-5'>系統(tǒng)</b>滑塊式送<b class='flag-5'>釘</b>模塊設(shè)計(jì)與研究

    【快訊】云徙受邀出席未來(lái)組織大會(huì),并榮獲新零售MaX獎(jiǎng)

    快訊】今日,云徙CTO李元佳受邀參加未來(lái)組織大會(huì),并出席新零售100圓桌論壇。會(huì)上,云徙榮獲新零售MaX獎(jiǎng)。云徙致力于提供數(shù)字營(yíng)銷
    發(fā)表于 08-27 21:29 ?349次閱讀

    升級(jí)與阿里云全面融合,確?!霸?b class='flag-5'>釘一體”戰(zhàn)略全面落地

    9月27日,阿里巴巴公布新一輪戰(zhàn)略部署:升級(jí)為大釘事業(yè)部,與阿里云全面融合,并整合阿里集團(tuán)所有相關(guān)力量,確?!霸?b class='flag-5'>釘一體”戰(zhàn)略全面落地。
    的頭像 發(fā)表于 09-28 09:30 ?1794次閱讀

    氣動(dòng)打槍是利用壓縮空氣進(jìn)行打的一種槍式打工具

    氣動(dòng)打槍是利用壓縮空氣進(jìn)行打的一種槍式打工具,是由氣缸和出槍頭、扳機(jī)、氣缸蓋、活塞等組件組合而成的,氣動(dòng)打槍的氣密性要求一般來(lái)說(shuō)是
    發(fā)表于 03-03 14:47 ?3096次閱讀

    調(diào)用REST端口實(shí)現(xiàn)通知

    已經(jīng)成為很多企業(yè)日常工作必備的交流軟件,知行軟件也在通知上做出了一些努力,利用知行之橋的REST端口調(diào)用
    的頭像 發(fā)表于 02-18 10:02 ?1478次閱讀
    調(diào)用REST端口實(shí)現(xiàn)<b class='flag-5'>釘</b><b class='flag-5'>釘</b>通知

    AI具備文生文、文生圖、應(yīng)用生成等AI能力

    AI具備文生文、文生圖、應(yīng)用生成等AI能力 此前在4月18日的2023春峰會(huì)上宣布全面接入通義千問(wèn)大模型,并實(shí)際演示了AI部分能力
    的頭像 發(fā)表于 05-31 18:50 ?1625次閱讀

    從AI玩具到AI工具,大模型改造的200天

    對(duì)此,在阿里云棲大會(huì)期間,「甲子光年」專訪了首席產(chǎn)品官齊俊生,深入了解了過(guò)去200多天里的AI布局與AI產(chǎn)品觀。
    的頭像 發(fā)表于 11-12 11:36 ?968次閱讀
    從AI玩具到AI工具,<b class='flag-5'>釘</b><b class='flag-5'>釘</b>大模型改造的200天

    與微軟中國(guó)達(dá)成產(chǎn)品級(jí)合作

    2024年1月9日,釘在杭州舉行了盛大的新品發(fā)布會(huì),正式推出了7.5版本。這次更新中,基于70萬(wàn)家企業(yè)的需求共創(chuàng),推出了一款A(yù)I助理產(chǎn)品,旨在降低AI的使用門(mén)檻,讓每個(gè)人都能輕松創(chuàng)造自己的AI助理。
    的頭像 發(fā)表于 01-09 18:23 ?866次閱讀

    微軟、宣布達(dá)成產(chǎn)品級(jí)合作

    2024年1月9日,2024新品發(fā)布會(huì)在杭州召開(kāi),發(fā)布7.5版本,推出基于70萬(wàn)家企業(yè)需求共創(chuàng)的AI助理產(chǎn)品,推動(dòng)低門(mén)檻使用 AI,人人都能創(chuàng)造AI 助理。同時(shí),
    的頭像 發(fā)表于 01-10 09:59 ?411次閱讀