Introduzzjoni
B'infrastruttura pjuttost kbira u mqassma li tuża DFS bħala punt uniku ta 'aċċess għad-dejta u DFSR għar-replikazzjoni tad-dejta bejn iċ-ċentri tad-dejta u s-servers tal-fergħat, tqum il-kwistjoni tal-monitoraġġ tal-istatus ta' din ir-replikazzjoni.
B’kumbinazzjoni, kważi immedjatament wara li bdejna nużaw id-DFSR, bdejna nimplimentaw Zabbix bil-għan li nissostitwixxu ż-zoo eżistenti ta’ diversi għodod u nġibu l-monitoraġġ tal-infrastruttura f’forma aktar informattiva, kompluta u loġika. Se nitkellmu dwar l-użu ta' Zabbix biex tissorvelja r-replikazzjoni tad-DFS.
L-ewwelnett, irridu niddeċiedu liema dejta dwar ir-replikazzjoni tad-DFS trid tinkiseb biex timmonitorja l-istatus tagħha. L-iktar indikatur rilevanti huwa l-backlog. Fiha fajls li ma ġewx sinkronizzati ma 'membri oħra tal-grupp ta' replikazzjoni. Tista 'tara d-daqs tagħha billi tuża l-utilità dfsrdiag, installat bir-rwol DFSR. Fi stat ta' replikazzjoni normali, id-daqs tal-backlog għandu joqrob lejn iż-żero. Għaldaqstant, għadd kbir ta' fajls fil-backlog jindikaw problemi bir-replikazzjoni.
Issa dwar in-naħa prattika tal-kwistjoni.
Sabiex nissorveljaw id-daqs tal-backlog permezz ta’ Zabbix Agent, ikollna bżonn:
- Script li se jparse l-output dfsrdiag biex tipprovdi valuri finali tad-daqs tal-backlog lil Zabbix,
- Skript li jiddetermina kemm hemm gruppi ta’ replikazzjoni fuq is-server, liema folders jirreplikaw u liema servers oħra huma inklużi fihom (ma rridux nidħlu dan kollu f’Zabbix bl-idejn għal kull server, hux?),
- Iż-żieda ta' dawn l-iskripts bħala UserParameter mal-konfigurazzjoni tal-aġent Zabbix għal sejħa sussegwenti mis-server tal-monitoraġġ,
- Jibda s-servizz tal-aġent Zabbix bħala utent li għandu drittijiet biex jaqra l-backlog,
- Mudell għal Zabbix, li fih l-iskoperta ta 'gruppi, l-ipproċessar ta' data riċevuta u l-ħruġ ta 'twissijiet fuqhom se jiġu kkonfigurati.
Parser tal-iskript
Biex tikteb il-parser, għażilt VBS bħala l-aktar lingwa universali preżenti fil-verżjonijiet kollha tal-Windows Server. Il-loġika tal-iskrittura hija sempliċi: jirċievi l-isem tal-grupp ta 'replikazzjoni, il-folder replikat, u l-ismijiet tas-servers li jibagħtu u li jirċievu permezz tal-linja tal-kmand. Dawn il-parametri mbagħad jiġu mgħoddija dfsrdiag, u skont l-output tiegħu jipproduċi:
Numru ta 'fajls - jekk jiġi riċevut messaġġ dwar il-preżenza ta' fajls fil-backlog,
0 — jekk jiġi riċevut messaġġ dwar in-nuqqas ta’ fajls fil-backlog (“L-ebda Backlog”),
-1 - jekk jiġi riċevut messaġġ ta' żball dfsrdiag meta tesegwixxi talba ("[ERROR]").
tikseb-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
Skript ta 'skoperta
Sabiex Zabbix tiddetermina l-gruppi ta 'replikazzjoni kollha preżenti fuq is-server u biex issir taf il-parametri kollha meħtieġa għat-talba (isem tal-folder, ismijiet ta' servers ġirien), għandna bżonn, l-ewwel nett, niksbu din l-informazzjoni, u t-tieni, nippreżentawha f’format li jiftiehem minn Zabbix. Il-format li tifhem l-għodda ta 'skoperta jidher bħal dan:
"data":[
{
"{#GROUP}":"Share1",
"{#FOLDER}":"Folder1",
"{#SENDING}":"Server1",
"{#RECEIVING}":"Server2"}
...
"{#GROUP}":"ShareN",
"{#FOLDER}":"FolderN",
"{#SENDING}":"Server1",
"{#RECEIVING}":"ServerN"}]}
L-eħfef mod biex niksbu l-informazzjoni li aħna interessati fiha huwa permezz tal-WMI, billi tiġbedha mis-sezzjonijiet korrispondenti ta 'DfsrReplicationGroupConfig. Bħala riżultat, twieled skript li jiġġenera talba lil WMI u joħroġ lista ta 'gruppi, il-folders tagħhom u s-servers fil-format meħtieġ.
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
Naqbel, l-iskrittura tista 'ma shine b'eleganza ta' kodiċi u xi affarijiet fiha ċertament jistgħu jiġu ssimplifikati, iżda twettaq il-funzjoni ewlenija tagħha - tipprovdi informazzjoni dwar il-parametri ta 'gruppi ta' replikazzjoni f'format li jiftiehem minn Zabbix.
Żieda ta' skripts mal-konfigurazzjoni tal-aġent Zabbix
Kollox hawnhekk huwa estremament sempliċi. Żid il-linji li ġejjin fl-aħħar tal-fajl tal-konfigurazzjoni tal-aġent:
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"
Naturalment, aħna naġġustaw il-mogħdijiet għal dawk fejn għandna skripts. Poġġihom fl-istess folder fejn huwa installat l-aġent.
Wara li tagħmel bidliet, ibda mill-ġdid is-servizz tal-aġent Zabbix.
Nibdlu l-utent li taħtu jaħdem is-servizz Zabbix Agent
Sabiex tirċievi informazzjoni permezz dfsrdiag, l-utilità trid titmexxa taħt kont li għandu drittijiet amministrattivi kemm lill-membri li jibagħtu kif ukoll li jirċievu l-grupp ta 'replikazzjoni. Is-servizz tal-aġent Zabbix, li jaħdem awtomatikament taħt il-kont tas-sistema, mhux se jkun jista 'jwettaq tali talba. Ħloqt kont separat fid-dominju, tajtu drittijiet amministrattivi fuq is-servers meħtieġa, u kkonfigurajt is-servizz biex jaħdem taħtu fuq dawn is-servers.
Tista 'tmur mod ieħor: għaliex dfsrdiag, fil-fatt, jaħdem permezz tal-istess WMI, allura tista 'tuża
Mudell ta' monitoraġġ
Ibbażat fuq id-dejta li rċevejt, ħloqt mudell li:
- Imexxi skoperta awtomatika ta' gruppi ta' replikazzjoni darba fis-siegħa,
- Jiċċekkja d-daqs tal-backlog għal kull grupp darba kull 5 minuti,
- Fih trigger li joħroġ twissija meta d-daqs tal-backlog għal kwalunkwe grupp ikun aktar minn 100 għal 30 minuta. Il-grillu huwa deskritt bħala prototip li jiġi miżjud awtomatikament mal-gruppi misjuba,
- Tibni graffs tad-daqs tal-backlog għal kull grupp ta 'replikazzjoni.
Tista' tniżżel il-mudell għal Zabbix 2.2
Total
Wara li nimportaw il-mudell f'Zabbix u noħolqu kont bid-drittijiet meħtieġa, ikollna bżonn biss nikkopjaw l-iskripts fis-servers tal-fajls li rridu nissorveljaw għal DFSR, żid żewġ linji mal-konfigurazzjoni tal-aġent fuqhom u nibdew mill-ġdid is-servizz tal-aġent Zabbix. , issettjaha biex taħdem bħala l-kont mixtieq. L-ebda settings manwali oħra ma huma meħtieġa għall-monitoraġġ tad-DFSR.
Sors: www.habr.com