批量監(jiān)控linux 下 Mysql db層的工具相對(duì)匱乏,用SSIS DIY 了下.
使用 SSIS 包 讀取配置表信息來(lái)實(shí)現(xiàn)監(jiān)控Mysql 并根據(jù)實(shí)際情況由郵件反饋給DBA
1 整理個(gè)全局信息表包括 ip 以及監(jiān)控維度等.
建表語(yǔ)句如下:
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 并創(chuàng)建如下變量
3 在控制流中創(chuàng)建 TSQL_SLAVE sql task 組件
建立oledb鏈接到 all_host_info 所在的sql 服務(wù)器,在sqlsourcetype 里面輸入如下代碼
select count(1) as j from all_host_info where isslave=1; 并在 result set 選擇單行
在結(jié)果結(jié)果集中 輸入如下結(jié)果名稱(chēng) 并指定到變量 j
4 新建TSQL_SLAVE_ID TSQL TASK 組件
并鏈接至 TSQL_SLAVE 組件所用的 ole鏈接
5 新建個(gè)SCRIPT 組件 內(nèi)容如下
6 新建個(gè) FOR 循環(huán) 內(nèi)容如下
7 在FOR 循環(huán)里面拖入個(gè)數(shù)據(jù)流內(nèi)容如下把 讀取的ip信息寫(xiě)入到 object 變量里面
8在for 組件里 拖入個(gè) FOReach_VAR foreach 組件 內(nèi)容如下 用來(lái)拆分 OBJECT 變量 在變量映射里面選擇 ip
9 拖入個(gè)數(shù)據(jù)流組件
10 發(fā)郵件
11 包最終組件如下
12 把包加載到j(luò)ob里面 一小時(shí)發(fā)次郵件 其他維度的監(jiān)控同原理。