使用redis監控的方式,監控mysql伺服器
#!/bin/
bash
#告警條件
:#磁碟使用率超過70
%#記憶體使用率超過50
%#cpu使用率超過700%(
伺服器是24核心的
)#空閒執行緒小於50
#出現錯誤或者警告日誌
disk_target=70
mem_target=50
cpu_target
=700
idle_target=50
port
=3306
password='
root
'#設定錯誤日誌的位置
#設定監控日誌的位置
logfile=/
home
/lihuilin
/monitor_mysql
.log
pid=$(
ps -
ef |
grep
-w mysqld
|grep
-v grep
|awk ''
)if["$pid"==
""];then
echo
"[error]mysql is shutdown."
>
>
$logfile
error_msg=$
error_msg
"+mysql_is_shutdown"
else
topcontent=$
(top -b
-p $pid
-n 1
|grep $pid
|awk '/
mysqld/'
)cpuusage=$
(echo $topcontent
|awk ''
)memusage=$
(echo $topcontent
|awk ''
)diskusage=$
(df -h
|grep %|
awk
'nr!=1'|
tr -s '
'|cut -d
''-f 2-6
|awk '}
')idlethread=$
(mysql
-uroot
-p$password
-p$port -e
'show full processlist\g
'|grep
'state:$
'|wc -l)
alert_content=$
(diff $alert_file $alert_file_bak
|grep -e
'error
|warning'|
sed 's
/\./
_/g'
|sed 's
/:/_
/g'|
sed 's
//_/
g'|sed 's
/-/_
/g')
echo $
(date
)>
>
$logfileif[
"$alert_content"!=
""];then
echo
"[error]$alert_content"
>
>
$logfile
error_msg=$
error_msg
"+errorlog#"
error_msg=$
error_msg$alert_content
fiif[$
(echo
"scale=2; $memusage>$mem_target"|bc
)-eq 1 ];
then
echo
"[error]memory usage:$memusage"
>
>
$logfile
error_msg=$
error_msg
"+memtarget#$mem_target"
error_msg=$
error_msg
"+memusage#$memusage"
else
echo
"[info]memory usage:$memusage"
>
>
$logfile
fiif[$
(echo
"scale=2; $cpuusage>$cpu_target"|bc
)-eq 1 ];
then
echo
"[error]cpu usage:$cpuusage"
>
>
$logfile
error_msg=$
error_msg
"+cpu_target#$cpu_target"
error_msg=$
error_msg
"+cpu_usage#$cpuusage"
else
echo
"[info]cpu usage:$cpuusage"
>
>
$logfile
fiif
["$diskusage"!=
""];then
echo
"[error]disk usage:$diskusage"
>
>
$logfile
error_msg=$
error_msg
"+diskspace#"
$diskusage
fiif
[$idlethread
-le $idle_target ];
then
echo
"[error]idle thread:$idlethread"
>
>
$logfile
error_msg=$
error_msg
"+idle_target#$idle_target"
error_msg=$
error_msg
"+idlethread#$idlethread"
else
echo
"[info]idle thread:$idlethread"
>
>
$logfile
fifiif[
"$error_msg"!=
''];
then
error_msg=$
(echo $error_msg
|sed 's
/\./
_/g'
|sed 's
/:/_
/g'|
sed 's
//_/
g'|sed 's
/-/_
/g'|
sed 's
/\//
/g')
error_msg=$
(echo $error_msg
|sed 's
/\[/
_/g'
|sed 's
/\]/
_/g'
)curl $alert_url$error_msg
ficp
-rf $alert_file $alert_file_bak
這裡比較費勁的是監控磁碟剩餘空間
下圖的這種結果是沒有辦法使用awk抽取資料的。
可以使用如下命令,格式化資料
df -h | grep % | awk 'nr!=1' | tr -s ' ' | cut -d ' ' -f 2-6
格式化之後就可以使用awk了。
伺服器監控
北京豐匯聯合科技 的 伺服器監控軟體是一款24,只要您的手機開機,就能及時知道伺服器執行狀態!及時排除執行故障。www.looking365.com 註冊,就可以享受本公司為您提供的服務 我們這裡有專業的人員直接幫您監控伺服器,讓您在第一時間掌握伺服器執行狀況。每台伺服器只需 100元 月,現在註冊...
監控伺服器
1.監控伺服器,可以用來監控nginx,tomcat,redis,mysql,那麼怎樣監控具體的哪個應用程式呢?答 每個具體的應用程式nginx,tomcat,redis,mysql,都有自己的已經寫好的監控軟體。只需要安裝在監控伺服器上就行了。面對這些監控資訊,要7x24小時有人維護,有人看著。2...
用於監控伺服器大檔案的指令碼
bin bash usage sh disksize.sh 路徑引數 該引數可無 author yang 20191027 該函式用於識別大檔案或目錄 function disksize if d 1 then path filast du ah max depth 1 path wc l size...