線上采用DRBD+Heartbeat+MySQL的方式部署MySQL高可用架構,是以對DRBD的監控也很重要。
一 監控原理
1.使用drbd-overview
如果不是root權限,将不會看到resource 名稱。
2.檢視/proc/drbd
C 這個位置表示同步協定是協定C , 可以是B 或 A
I/O 狀态标志,共有6個标志位,表示關于這個資源的I/O操作狀态資訊
r-----
1.I/O suspension 。要麼是r表示正在運作,要麼是s表示暫停
2.Serial resynchronization。通常情況下是-
3.Peer-initiated sync suspension. 通常情況下是-
4.Peer-initiated sync suspension. 通常情況下是-
5.Locally blocked I/O。通常情況下是-
6.Activity Log update suspension. 通常情況下是-
cs Connetction State 顯示定義resource的連接配接狀态
可以有以下幾種連接配接狀态:
StandAlone
<code>Disconnecting</code>
<code> <code>Unconnected</code></code>
<code><code> <code>BrokenPipe</code></code></code>
<code><code><code> <code>NetworkFailure</code></code></code></code>
<code><code><code><code> <code>Connected 正常狀态</code></code></code></code></code>
<code><code><code><code> 等等</code></code></code></code>
ds disk states 顯示磁盤狀态
先顯示本地磁盤狀态,然後再顯示遠端主機磁盤狀态,它們都可能是以下幾種狀态:
<code>Diskless</code>
<code>Attaching</code>
<code>Failed</code>
<code>Negotiating</code>
<code>Inconsistent</code>
<code>Outdated</code>
<code>DUnknown</code>
<code>Consistent</code>
<code>UpToDate 這個狀态表示資料同步一緻,是正常狀态</code>
ro 資源角色類型
Primary 可讀可寫
Secondary 不可讀不可寫
Unknown 這個狀态隻發生在遠端主機
ns network send 發送的資料量,以KBytes表示
nr network received 接收的資料量,以KBytes表示
dw disk write 寫入到本地磁盤的資料量,以KBytes表示
dr disk read 從本地讀取的資料量,以KBytes表示
al activity log DRBD中繼資料中活動日志位置更新次數
bm bitmap DRBD中繼資料中bitmap位置更新次數
lo local count 本地I/O子系統有關DRBD的請求數量
pe pending 已經發送到對端但是還沒有得到響應的請求數量
ua unacknowledged 對端通過網絡接收到的請求數量,但是它們還沒有被答複
ap application pending Number of block I/O requests forwarded to DRBD, but not yet answered by DRBD.
<code>ep</code> (epochs). Number of epoch objects. Usually 1. Might increase under I/O load when using either the <code>barrier</code> or the <code>none</code> write ordering method.
<code>wo</code> (write order). Currently used write ordering method: <code>b</code>(barrier),<code>f</code>(flush), <code>d</code>(drain) or <code>n</code>(none).
<code>oos</code> (out of sync). Amount of storage currently out of sync; in Kibibytes.
3.使用service drbd status檢視
二 監控腳本編寫
一般情況下,在生産伺服器上隻需定義一個resource,便于維護。是以,這裡讨論隻有一個DRBD resource的監控方法,如果有多個resource可以通過Zabbix的自動發現功能。
drbd_status.sh
添加zabbix子配置檔案drbd_status.conf
三 添加監控模闆
這裡注意一下觸發表達式
{Template DRBD:drbd.status[ro].str(Secondary/Primary)}#1 & {Template DRBD:drbd.status[ro].str(Primary/Secondary)}#1
參考文章:
http://blog.pandorafms.org/?p=1944
http://drbd.linbit.com/docs/about/