因項目需要,Zabbix要監控SQL server的連接數,MySQL以及tomcat,下面是對監控上述item的簡要介紹。
1. SQL server連接數
1.1 SQL server連接數
4. SQL SERVER用戶數、連接數、連接池License
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='PointCheckSystem' ) select hostname,count(*) hostconncount from master.dbo.sysprocesses group by hostname order by count(*) desc
微軟在MSDN上對最大連接數的定義是:“默認是0,代表不限制,但最大連接數是32767”。
1.2 Zabbix監控SQL server
2. Zabbix監控 Windows SQL Server
可選方案
1. Zabbix選擇 數據庫監控 類型監控項,本質是遠程執行sql語句;
2. 導入已有模板及腳本,本質是自定義監控項;
3. 也可使用之前介紹過的windows性能計數器監控。
1.3 SQL server性能計數器
上文提到,可以使用windows性能計數器監控SQL server,那么常用的監控項有哪些呢?
通過上述博客,即可實現我們監控SQL server連接數的需求。
2. mysql
Zabbix監控mysql的可選方案和1.2介紹的一樣。我們選擇的監控方案是寫腳本自定義監控項,腳本使用的語言是VBScript。將自定義監控項加到監控主機相信大家已經輕車熟路了,也可以通過導入模板的方式添加監控項。
'MySQL_Ping.vbs Set objFS = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments str1 = getCommandOutput("C:\MySQL\mysql-8.0.16-winx64\bin\mysqladmin.exe -uAdmin -pPassword --port=3306 ping") If Instr(str1,"alive") > 0 Then WScript.Echo 1 Else WScript.Echo 0 End If Function getCommandOutput(theCommand) Dim objShell, objCmdExec Set objShell = CreateObject("WScript.Shell") Set objCmdExec = objshell.exec(thecommand) getCommandOutput = objCmdExec.StdOut.ReadAll end Function
'Mysql_Version.vbs Set objFS = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments str1 = getCommandOutput("C:\MySQL\mysql-8.0.16-winx64\bin\mysql.exe -V") WScript.Echo str1 Function getCommandOutput(theCommand) Dim objShell, objCmdExec Set objShell = CreateObject("WScript.Shell") Set objCmdExec = objshell.exec(thecommand) getCommandOutput = objCmdExec.StdOut.ReadAll end Function
'MySQL_Ext-Status_Script.vbs Set objFS = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments str1 = getCommandOutput("C:\MySQL\mysql-8.0.16-winx64\bin\mysqladmin.exe -uAdmin -pPassword --port=3306 extended-status") Arg = objArgs(0) str2 = Split(str1,"|") For i = LBound(str2) to UBound(str2) If Trim(str2(i)) = Arg Then WScript.Echo TRIM(str2(i+1)) Exit For End If next Function getCommandOutput(theCommand) Dim objShell, objCmdExec Set objShell = CreateObject("WScript.Shell") Set objCmdExec = objshell.exec(thecommand) getCommandOutput = objCmdExec.StdOut.ReadAll end Function
//修改Agent配置檔zabbix_agentd.win.conf
UnsafeUserParameters=1
UserParameter=mysql.version,cscript /nologo C:\zabbix\scripts\Mysql_Version.vbs
UserParameter=mysql.status[*],cscript /nologo C:\zabbix\scripts\MySQL_Ext-Status_Script.vbs $1
UserParameter=mysql.ping,cscript /nologo C:\zabbix\scripts\MySql_Ping.vbs
3. tomcat
首先,什么是tomcat以及如何安裝呢?
2. Apache安裝教程和Apache Tomcat安裝教程
什么是動態網頁呢?這么簡單的問題怎么我也要問,你可能會想~說來慚愧,大半年前這個問題我還真的不清楚~
3. 聊聊 Apache、Tomcat && 靜態網頁、動態網頁
OK,安裝完湯姆貓后,讓我們看看怎么用Zabbix監控這只貓。
4. zabbix監控Tomcat/JVM實例性能(115)
6. Tomcat 常規配置並通過zabbix 監控 jvm狀態
Zabbix監控tomcat其實是監控JMX,且zabbix需要安裝java gateway。
為了在特定主機上找到 JMX 計數器的值,Zabbix server 向 Zabbix Java gateway 發送請求,后者使用 JMX 管理 API 來遠程查詢相關的應用。該應用不需要安裝額外的軟件。
只需要在啟動時,命令行添加-Dcom.sun.management.jmxremote
選項即可。
按照上述博客配置好后,發現監控並沒有生效,重新搜索相關博客如下。
10. Zabbix利用JMX監控多實例Tomcat運行狀態
以上,成功監控tomcat。