批量監控Linux 下MySQL db層的工具相對匮乏,用SSIS DIY 了下.
使用 SSIS 包 讀取配置表信息來實現監控MySQL並根據實際情況由郵件反饋給DBA
1 整理個全局信息表包括ip以及監控維度等.
建表語句如下:
- CREATE TABLE [dbo].[all_host_info](
- [ip] [varchar](20) NULL,
- [isactive] [tinyint] NULL,
- [ishost] [tinyint] NULL,
- [isslave] [tinyint] NULL,
- [isjob] [tinyint] NULL,
- [isobject] [tinyint] NULL,
- [isprivileges] [tinyint] NULL
- ) ON [PRIMARY]
2 新建ssis 包 命名為 mysqlmonitor 並創建如下變量
3 在控制流中創建 TSQL_SLAVE sql task 組件
建立oledb鏈接到 all_host_info 所在的sql 服務器,在sqlsourcetype 裡面輸入如下代碼
- select count(1) as j from all_host_info where isslave=1;
並在 result set 選擇單行
在結果結果集中 輸入如下結果名稱 並指定到變量 j
4 新建TSQL_SLAVE_ID TSQL TASK 組件
並鏈接至 TSQL_SLAVE 組件所用的 ole鏈接
5 新建個SCRIPT 組件 內容如下
6 新建個 FOR 循環 內容如下
7 在FOR 循環裡面拖入個數據流內容如下把 讀取的ip信息寫入到 object 變量裡面
8在for 組件裡 拖入個 FOReach_VAR foreach 組件 內容如下 用來拆分 OBJECT 變量 在變量映射裡面選擇 ip
9 拖入個數據流組件
10 發郵件
11 包最終組件如下
12 把包加載到job裡面 一小時發次郵件 其他維度的監控同原理。
練一技,修百藝,而成於自然.
編輯推薦】