關於mysql監控指令碼怎麼寫會比較好的記錄

來源:互聯網
上載者:User

標籤:

最近,自己業務進行上線,上線後,需要考慮的是對各種服務進行監控,包括(httpd服務,mysqld服務等),現在想以mysqld服務為例總結下那種方式的指令碼最為專業和合理:

(1).根據mysql的連接埠號碼來監控mysql的服務。(常見於監控mysql的本地服務)

    比較常見的一個指令碼:

1 netstat -natup|grep mysqld|awk -F‘[ :]+‘ ‘{print $5}‘

 上面是將mysqld的連接埠號碼進行了過濾,這個方法的缺點是:有可能是連接埠在,但是服務可能是不正常的。例如:系統負載很高,cpu的負載也很高,串連數滿了,這個是其存在的問題之一。

(2).根據mysql的進程監控mysql的服務:

     比較常見的一個指令碼:

1 ps -aux |grep mysqld |grep -v grep|wc -l

  這種方式的缺點也是和上面的一樣:有可能是連接埠在,但是服務可能是不正常的。例如:系統負載很高,cpu的負載也很高,串連數滿了,這個是其存在的問題之一。

(3). 通過mysql用戶端的命令以及用賬戶串連mysql,然後根據確定返回的命令狀態或者返回的內容來確定mysql是否正常(本地或者是遠端串連狀態)。

比較常見的一個判斷指令碼(只是其中的一些個核心內容):

1 mysql -uroot -p1234 -e‘select version();‘>&/dev/null2 echo $?

如果上面的$?是0 的話,說明是能夠正常串連的,如果為1的話,則說明是串連失敗的。

這種方式的缺點是,需要有mysql的串連用戶端,要有資料的帳號和密碼,以及串連資料庫主機的授權。

(4).通過php/java的方式直接連接mysql的方式來監控mysql的服務狀態。

比較常見的一個指令碼,也是比較簡單的:

1 <?php2 $conn = mysql_connect(‘root‘,‘1234‘,‘locahost‘,3306) or die(‘mysql coulc not connect‘.mysql_error());3 4 ?>

這種方式是最接近使用者的訪問方式,效果是最好的,因為上面的這種方式儘管就算是連接埠存在,但是只要伺服器的cpu負載很高,那使用者的訪問肯定是不正常的。

所以警示的最佳方式不是服務的警示是否開啟了,而是網站的使用者訪問是否還是正常。這才是最佳的警示原則和方式。  我們應該從使用者的角度出發考慮問題,而不是說從營運的角度來考慮問題。 所以應該在工作中使用這個方式。

 

關於mysql監控指令碼怎麼寫會比較好的記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.