แจแแกแแแแแ
แกแแแแแแ แแแแ แแ แแแแแฌแแแแแฃแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแ, แ แแแแแแช แแงแแแแแก DFS-แก, แ แแแแ แช แแแแแชแแแแแแ แฌแแแแแแก แแ แ แฌแแ แขแแแก แแ DFSR แแแแแชแแแแ แ แแแแแแแชแแแกแแแแก แแแแแชแแแแ แชแแแขแ แแแกแ แแ แคแแแแแแแแแก แกแแ แแแ แแแก แจแแ แแก, แฉแแแแแ แแแแฎแแ แแ แ แแแแแแแชแแแก แกแขแแขแฃแกแแก แแแแแขแแ แแแแแก แจแแกแแฎแแ.
แแแแแฎแแแแ, แแแแฅแแแก แแแจแแแแ แแแก แจแแแแแ, แ แแช แแแแแฌแงแแ DFSR-แแก แแแแแงแแแแแ, แแแแแฌแงแแ Zabbix-แแก แแแแแ แแแ แกแฎแแแแแกแฎแแ แฎแแแกแแฌแงแแแแแ แแ แกแแแฃแแ แแแแแแ แแแก แฉแแแแชแแแแแแกแ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแขแแ แแแแแก แฃแคแ แ แแแคแแ แแแชแแฃแ, แกแ แฃแ แแ แแแแแแฃแ แคแแ แแแแ แแแงแแแแแก แแแแแแ. แฉแแแ แแแกแแฃแแ แแแ Zabbix-แแก แแแแแงแแแแแแแ DFS แ แแแแแแแชแแแก แแแแแขแแ แแแแแกแแแแก.
แฃแแแ แแแแแก แงแแแแแกแ, แฉแแแ แฃแแแ แแแแแแฌแงแแแขแแ, แ แ แแแแแชแแแแแ แฃแแแ แแแแแฆแแ DFS แ แแแแแแแชแแแก แจแแกแแฎแแ แแแกแ แกแขแแขแฃแกแแก แแแแแขแแ แแแแแกแแแแก. แงแแแแแแ แ แแแแแแแขแฃแ แ แแแฉแแแแแแแแ แแ แแก แฉแแแแ แฉแแแ. แแก แจแแแชแแแก แคแแแแแแก, แ แแแแแแแช แแ แแ แแก แกแแแฅแ แแแแแแแฃแแ แ แแแแแแแชแแแก แฏแแฃแคแแก แกแฎแแ แฌแแแ แแแแแ. แแแกแ แแแแแก แแแฎแแ แจแแแแซแแแแ แฃแขแแแแขแแก แแแแแงแแแแแแ แแคแกแ แแแแ, แแแแแกแขแแแแ แแแฃแแแ DFSR แ แแแแ. แ แแแแแแแชแแแก แแแ แแแแฃแ แแแแแแแ แแแแแจแ, แแแ แฉแแแแแแก แแแแ แฃแแแ แแแฃแแฎแแแแแแก แแฃแแก. แจแแกแแแแแแกแแ, แคแแแแแแแก แแแแ แ แแแแแแแแ แแแฅแแแแจแ แแแฃแแแแแแก แ แแแแแแแชแแแกแแแ แแแแแแจแแ แแแฃแ แแ แแแแแแแแแ.
แแฎแแ แกแแแแแฎแแก แแ แแฅแขแแแฃแ แแฎแแ แแแ.
Zabbix Agent-แแก แแแจแแแแแแ แแแ แฉแแแแแแก แแแแแก แแแแแขแแ แแแแแกแแแแก, แแแแแญแแ แแแแ:
- แกแแ แแแขแ, แ แแแแแแช แแแแแแแแแแแแก แแแแแแแแแแก แแคแกแ แแแแ แแแแฌแแแแก แกแแแแแแ แแแ แฉแแแ แแแแแก แแแแจแแแแแแแแแ Zabbix-แก,
- แกแแ แแแขแ, แ แแแแแแช แแแแกแแแฆแแ แแแก, แ แแแแแแ แ แแแแแแแชแแแก แฏแแฃแคแแ แกแแ แแแ แแ, แ แ แกแแฅแแฆแแแแแแแ แแแแแ แแแแ แแ แ แ แกแฎแแ แกแแ แแแ แแแ แจแแแแก แแแแจแ (แแ แแแแแแ แแก แงแแแแแคแแ แ แฎแแแแ แจแแแแขแแแแ Zabbix-แจแ แแแแแแฃแแ แกแแ แแแ แแกแแแแก, แแ แ?),
- แแ แกแแ แแแขแแแแก แแแแแขแแแ, แ แแแแ แช UserParameter, Zabbix แแแแแขแแก แแแแคแแแฃแ แแชแแแจแ แแแแแขแแ แแแแแก แกแแ แแแ แแแแ แจแแแแแแแ แแแแแซแแฎแแแแกแแแแก,
- Zabbix-แแก แแแแแขแแก แกแแ แแแกแแก แแแฌแงแแแ, แ แแแแ แช แแแแฎแแแ แแแแแ, แ แแแแแกแแช แแฅแแก แฃแคแแแแ แฌแแแแแแฎแแก แแแ แฉแแแแแ,
- Zabbix-แแก แจแแแแแแ, แ แแแแแจแแช แแแแคแแแฃแ แแ แแแฃแแ แแฅแแแแ แฏแแฃแคแแแแก แแแแแแแแแ, แแแฆแแแฃแแ แแแแแชแแแแแแก แแแแฃแจแแแแแ แแ แแแแแ แกแแแแแแแแแก แแแชแแแ.
แกแแ แแแขแแก แแแ แกแแ แ
แแแ แกแแ แแก แแแกแแฌแแ แแ แแ แแแแ แฉแแ VBS, แ แแแแ แช แงแแแแแแ แฃแแแแแ แกแแแฃแ แ แแแ Windows Server-แแก แงแแแแ แแแ แกแแแจแ. แกแแ แแแขแแก แแแแแแ แแแ แขแแแแ: แแก แแฆแแแก แ แแแแแแแชแแแก แฏแแฃแคแแก แกแแฎแแแก, แ แแแแแแแชแแฃแ แกแแฅแแฆแแแแแก แแ แแแแแแแแแก แแ แแแแฆแแแแก แกแแ แแแ แแแแก แกแแฎแแแแแก แแ แซแแแแแแก แฎแแแแก แแแจแแแแแแ. แจแแแแแ แแก แแแ แแแแขแ แแแ แแแแแแชแแแ แแคแกแ แแแแแแ แแแกแ แแแแแแฃแจแแแแแแแแ แแแแแแแแแแ แ แแก แแฌแแ แแแแแก:
แคแแแแแแแก แ แแแแแแแแ - แแฃ แจแแขแงแแแแแแแ แแแแฆแแแ แคแแแแแแแก แแ แกแแแแแแก แจแแกแแฎแแ,
0 - แแฃ แแแแฆแแแ แจแแขแงแแแแแแแ แแแฅแแแแจแ แคแแแแแแแก แแ แแ แกแแแแแแก แจแแกแแฎแแ ("No Backlog"),
-1 - แแฃ แจแแชแแแแแก แจแแขแงแแแแแแแ แแแแฆแแแ แแคแกแ แแแแ แแแแฎแแแแแก แจแแกแ แฃแแแแแกแแก ("[ERROR]").
get-Backlog.vbs
strReplicationGroup=WScript.Arguments.Item(0)
strReplicatedFolder=WScript.Arguments.Item(1)
strSending=WScript.Arguments.Item(2)
strReceiving=WScript.Arguments.Item(3)
Set WshShell = CreateObject ("Wscript.shell")
Set objExec = WSHshell.Exec("dfsrdiag.exe Backlog /RGName:""" & strReplicationGroup & """ /RFName:""" & strReplicatedFolder & """ /SendingMember:" & strSending & " /ReceivingMember:" & strReceiving)
strResult = ""
Do While Not objExec.StdOut.AtEndOfStream
strResult = strResult & objExec.StdOut.ReadLine() & "\"
Loop
If InStr(strResult, "No Backlog") > 0 then
intBackLog = 0
ElseIf InStr(strResult, "[ERROR]") > 0 Then
intBackLog = -1
Else
arrLines = Split(strResult, "\")
arrResult = Split(arrLines(1), ":")
intBackLog = arrResult(1)
End If
WScript.echo intBackLog
แแฆแแแฉแแแแก แกแแ แแแขแ
แแแแกแแแแแก, แ แแ Zabbix-แแ แแแแแแแแแก แกแแ แแแ แแ แแ แกแแแฃแแ แงแแแแ แ แแแแแแแชแแแก แฏแแฃแคแ แแ แแแแ แแแแแก แแแแฎแแแแแกแแแแก แกแแญแแ แ แงแแแแ แแแ แแแแขแ แ (แกแแฅแแฆแแแแแก แกแแฎแแแ, แแแแแแแแ แกแแ แแแ แแแแก แกแแฎแแแแแ), แฉแแแ, แแแ แแแ แ แแแจแ, แฃแแแ แแแแแฆแแ แแก แแแคแแ แแแชแแ แแ แแแแ แแช, แฌแแ แแแแแแแแแแ แแแ. Zabbix-แแกแแแแก แแแกแแแแ แคแแ แแแขแจแ. แคแแ แแแขแ, แ แแแแแกแแช แแฆแแแฉแแแแก แแแกแขแ แฃแแแแขแ แแกแแแก, แแกแ แแแแแแงแฃแ แแแ:
"data":[
{
"{#GROUP}":"Share1",
"{#FOLDER}":"Folder1",
"{#SENDING}":"Server1",
"{#RECEIVING}":"Server2"}
...
"{#GROUP}":"ShareN",
"{#FOLDER}":"FolderN",
"{#SENDING}":"Server1",
"{#RECEIVING}":"ServerN"}]}
แฉแแแแแแแก แแแแแขแแ แแกแแแฃแแ แแแคแแ แแแชแแแก แแแกแแฆแแแแ แฃแแแ แขแแแแกแ แแแแ WMI, แแแกแ แแแแฆแแแ DfsrReplicationGroupConfig-แแก แจแแกแแแแแแกแ แกแแฅแชแแแแแแแ. แจแแแแแแ, แจแแแฅแแแ แกแแ แแแขแ, แ แแแแแแช แฌแแ แแแฅแแแแก แแแแฎแแแแแก WMI-แแ แแ แแแแแกแชแแแก แฏแแฃแคแแแแก, แแแแ แกแแฅแแฆแแแแแแแแก แแ แกแแ แแแ แแแแก แกแแแก แกแแญแแ แ แคแแ แแแขแจแ.
DFSRDiscovery.vbs
dim strComputer, strLine, n, k, i
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
strComputer = wshNetwork.ComputerName
Set oWMIService = GetObject("winmgmts:\" & strComputer & "rootMicrosoftDFS")
Set colRGroups = oWMIService.ExecQuery("SELECT * FROM DfsrReplicationGroupConfig")
wscript.echo "{"
wscript.echo " ""data"":["
n=0
k=0
i=0
For Each oGroup in colRGroups
n=n+1
Set colRGFolders = oWMIService.ExecQuery("SELECT * FROM DfsrReplicatedFolderConfig WHERE ReplicationGroupGUID='" & oGroup.ReplicationGroupGUID & "'")
For Each oFolder in colRGFolders
k=k+1
Set colRGConnections = oWMIService.ExecQuery("SELECT * FROM DfsrConnectionConfig WHERE ReplicationGroupGUID='" & oGroup.ReplicationGroupGUID & "'")
For Each oConnection in colRGConnections
i=i+1
binInbound = oConnection.Inbound
strPartner = oConnection.PartnerName
strRGName = oGroup.ReplicationGroupName
strRFName = oFolder.ReplicatedFolderName
If oConnection.Enabled = True and binInbound = False Then
strSendingComputer = strComputer
strReceivingComputer = strPartner
strLine1=" {"
strLine2=" ""{#GROUP}"":""" & strRGName & ""","
strLine3=" ""{#FOLDER}"":""" & strRFName & ""","
strLine4=" ""{#SENDING}"":""" & strSendingComputer & ""","
if (n < colRGroups.Count) or (k < colRGFolders.count) or (i < colRGConnections.Count) then
strLine5=" ""{#RECEIVING}"":""" & strReceivingComputer & """},"
else
strLine5=" ""{#RECEIVING}"":""" & strReceivingComputer & """}]}"
end if
wscript.echo strLine1
wscript.echo strLine2
wscript.echo strLine3
wscript.echo strLine4
wscript.echo strLine5
End If
Next
Next
Next
แแแแแแฎแแแแ, แกแแ แแแขแ แจแแแซแแแแ แแ แแแแแแแแแก แแแแแก แแแแแแแขแฃแ แแแแ แแ แแแกแจแ แแ แกแแแฃแแ แแแแแแ แแ แ แแ, แ แ แแฅแแ แฃแแแ, แจแแแซแแแแ แแแแแ แขแแแแแก, แแแแ แแ แแก แแกแ แฃแแแแก แแแแแก แแแแแแ แคแฃแแฅแชแแแก - แแฌแแแแก แแแคแแ แแแชแแแก แ แแแแแแแชแแแก แฏแแฃแคแแแแก แแแ แแแแขแ แแแแก แจแแกแแฎแแ Zabbix-แแกแแแแก แแแกแแแแ แคแแ แแแขแจแ.
แกแแ แแแขแแแแก แแแแแขแแแ Zabbix แแแแแขแแก แแแแคแแแฃแ แแชแแแจแ
แแฅ แงแแแแแคแแ แ แซแแแแแ แแแ แขแแแแ. แแแแแแขแแ แจแแแแแแ แฎแแแแแ แแแแแขแแก แแแแคแแแฃแ แแชแแแก แคแแแแแก แแแแแก:
UserParameter=check_dfsr[*],cscript /nologo "C:Program FilesZabbix Agentget-Backlog.vbs" $1 $2 $3 $4
UserParameter=discovery_dfsr[*],cscript /nologo "C:Program FilesZabbix AgentDFSRDiscovery.vbs"
แ แ แแฅแแ แฃแแแ, แฉแแแ แแแกแฌแแ แแแ แแแแแแแแก แแฅ, แกแแแแช แแแแฅแแก แกแแ แแแขแแแ. แแ แแแ แแแแแ แกแแฅแแฆแแแแแจแ แแแแ, แกแแแแช แแแแแขแ แแ แแก แแแแแกแขแแแแ แแแฃแแ.
แชแแแแแแแแแแก แจแแขแแแแก แจแแแแแ แแแแแขแแแ แแแ Zabbix แแแแแขแแก แกแแ แแแกแ.
แแแแฎแแแ แแแแแก แจแแชแแแ, แ แแแแแก แฅแแแจแแช แแฃแจแแแแก Zabbix Agent แกแแ แแแกแ
แแแจแแแแแแ แแแคแแ แแแชแแแก แแแกแแฆแแแแ แแคแกแ แแแแ, แแ แแแ แแแ แฃแแแ แแงแแก แแแจแแแแฃแแ แแแแแ แแจแแก แฅแแแจ, แ แแแแแกแแช แแฅแแก แแแแแแแกแขแ แแชแแฃแแ แฃแคแแแแแแ แ แแแแแแแชแแแก แฏแแฃแคแแก แฌแแแ แแแแก แแแแแแแแแกแ แแ แแแฆแแแแก แจแแกแแฎแแ. Zabbix แแแแแขแแก แกแแ แแแกแ, แ แแแแแแช แแแแฃแแแกแฎแแแแแ แแฃแจแแแแก แกแแกแขแแแแก แแแแแ แแจแแก แฅแแแจ, แแแ แจแแซแแแแก แแกแแแ แแแแฎแแแแแก แจแแกแ แฃแแแแแก. แแ แจแแแฅแแแแ แชแแแแ แแฅแแฃแแแ แแแแแแจแ, แแแแแชแ แแแก แแแแแแแกแขแ แแชแแฃแแ แฃแคแแแแแแ แกแแญแแ แ แกแแ แแแ แแแแ แแ แแแแแงแแแ แกแแ แแแกแ, แ แแ แแ แกแแ แแแ แแแแ แแแจแแแแฃแแแงแ แแแก แฅแแแจ.
แจแแแแซแแแแ แกแฎแแ แแแแ แฌแแฎแแแแแ: แแแแขแแ แแคแกแ แแแแแคแแฅแขแแแ แแแแ, แแฃแจแแแแก แแแแแ WMI-แแก แกแแจแฃแแแแแแ, แจแแแแแ แจแแแแซแแแแ แแแแแแงแแแแ
แแแแแขแแ แแแแแก แจแแแแแแ
แแแฆแแแฃแแ แแแแแชแแแแแแก แกแแคแฃแซแแแแแ แจแแแฅแแแแ แจแแแแแแ, แ แแแแแแช:
- แแฌแแ แแแแแก แ แแแแแแแชแแแก แฏแแฃแคแแแแก แแแขแแแแขแฃแ แแฆแแแฉแแแแก แกแแแแจแ แแ แแฎแแ,
- แงแแแแ 5 แฌแฃแแจแ แแ แแฎแแ แแแแฌแแแแก แแแฅแแแแแก แแแแแก แแแแแแฃแแ แฏแแฃแคแแกแแแแก,
- แจแแแชแแแก แขแ แแแแ แก, แ แแแแแแช แแแกแชแแแก แแแคแ แแฎแแแแแแก, แ แแแแกแแช แแแแแกแแแแ แ แฏแแฃแคแแกแแแแก 100-แแ แแแขแแ 30 แฌแฃแแแก แแแแแแแแแแแจแ. แขแ แแแแ แ แแฆแฌแแ แแแแ, แ แแแแ แช แแ แแขแแขแแแ, แ แแแแแแช แแแขแแแแขแฃแ แแ แแแแขแแแ แแฆแแแฉแแแแ แฏแแฃแคแแแก,
- แแจแแแแแก แแแฅแแแแแก แแแแแก แแ แแคแแแแแก แแแแแแฃแแ แ แแแแแแแชแแแก แฏแแฃแคแแกแแแแก.
แจแแแแซแแแแ แฉแแแแขแแแ แแแ แจแแแแแแ Zabbix 2.2-แแกแแแแก
แกแฃแ
แจแแแแแแแก Zabbix-แจแ แจแแแแขแแแแก แแ แกแแญแแ แ แฃแคแแแแแแแ แแแแแ แแจแแก แจแแฅแแแแก แจแแแแแ, แฉแแแ แแฎแแแแ แแแแแญแแ แแแแ แกแแ แแแขแแแแก แแแแแ แแแ แคแแแ แกแแ แแแ แแแแ, แ แแแแแแ แแแแแขแแ แแแแ แแแแแแ DFSR-แกแแแแก, แแแแแแแขแแ แแ แ แฎแแแ แแแแแ แแแแแขแแก แแแแคแแแฃแ แแชแแแจแ แแ แแแแแขแแแ แแแ Zabbix แแแแแขแแก แกแแ แแแกแ. , แแแแงแแแแ แแก, แ แแ แแแฃแจแแแก แ แแแแ แช แกแแกแฃแ แแแแ แแแแแ แแจแ. แกแฎแแ แฎแแแแ แแแ แแแแขแ แแแ แแ แแ แแก แกแแญแแ แ DFSR แแแแแขแแ แแแแแกแแแแก.
แฌแงแแ แ: www.habr.com