Gabatarwar
Tare da manyan kayan aiki masu girma da rarrabawa waɗanda ke amfani da DFS a matsayin wuri guda na samun damar yin amfani da bayanai da DFSR don kwafin bayanai tsakanin cibiyoyin bayanai da sabar reshe, tambayar ta taso game da saka idanu kan matsayin wannan kwafi.
Ba zato ba tsammani, kusan nan da nan bayan da muka fara amfani da DFSR, mun fara aiwatar da Zabbix tare da manufar maye gurbin gidan zoo na kayan aiki daban-daban da kuma kawo kayan aikin sa ido zuwa wani tsari mai mahimmanci, cikakke da ma'ana. Za mu yi magana game da amfani da Zabbix don saka idanu da kwafin DFS.
Da farko, muna buƙatar yanke shawarar abin da bayanai game da kwafin DFS ke buƙatar samun don saka idanu kan matsayin sa. Mafi dacewa mai nuna alama shine koma baya. Ya ƙunshi fayilolin da ba a daidaita su da sauran membobin ƙungiyar kwafi ba. Kuna iya duba girmansa ta amfani da mai amfani dfsrdiag, shigar tare da aikin DFSR. A cikin yanayin kwafi na al'ada, girman bayanan baya yakamata ya kusanci sifili. Saboda haka, manyan fayiloli a cikin bayanan baya suna nuna matsaloli tare da kwafi.
Yanzu game da bangaren aiki na batun.
Domin saka idanu girman bayanan baya ta hanyar Zabbix Agent, zamu buƙaci:
- Rubutun da zai rarraba fitarwa dfsrdiag don samar da ƙimar girman bayanan ƙarshe ga Zabbix,
- Rubutun da zai ƙayyade yawan ƙungiyoyin kwafi akan uwar garken, waɗanne manyan fayilolin da suke kwafi da abin da wasu sabar ke kunshe a cikinsu (ba ma so mu shigar da duk wannan cikin Zabbix da hannu ga kowane uwar garken, daidai?),
- Ƙara waɗannan rubutun azaman UserParameter zuwa saitin wakili na Zabbix don kira na gaba daga sabar sa ido,
- Fara sabis ɗin wakilin Zabbix a matsayin mai amfani wanda ke da haƙƙin karanta bayanan baya,
- Samfura don Zabbix, wanda za a daidaita gano ƙungiyoyi, sarrafa bayanan da aka karɓa da kuma ba da faɗakarwa akan su.
Rubutun rubutun
Don rubuta parser, na zaɓi VBS a matsayin yaren duniya mafi girma da ke cikin duk nau'ikan Windows Server. Hankalin rubutun yana da sauƙi: yana karɓar sunan ƙungiyar kwafi, babban fayil ɗin da aka kwafi, da sunayen sabobin aikawa da karɓar ta hanyar layin umarni. Ana wuce waɗannan sigogi zuwa dfsrdiag, kuma ya danganta da abin da yake fitar da shi:
Adadin fayiloli - idan an karɓi saƙo game da kasancewar fayiloli a cikin bayanan baya,
0 - idan an karɓi saƙo game da rashin fayiloli a cikin bayanan baya ("Babu Backlog").
-1 - idan an karɓi saƙon kuskure dfsrdiag lokacin aiwatar da buƙata ("[ERROR]").
samun-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
Rubutun ganowa
Domin Zabbix ya ƙayyade duk ƙungiyoyin kwafi da ke cikin uwar garken kuma don gano duk sigogin da ake buƙata don buƙatun (sunan babban fayil, sunayen sabobin maƙwabta), da farko, sami wannan bayanin, na biyu kuma, gabatar da shi. a cikin tsarin da za a iya fahimta ga Zabbix. Tsarin da kayan aikin ganowa ke fahimta yayi kama da haka:
"data":[
{
"{#GROUP}":"Share1",
"{#FOLDER}":"Folder1",
"{#SENDING}":"Server1",
"{#RECEIVING}":"Server2"}
...
"{#GROUP}":"ShareN",
"{#FOLDER}":"FolderN",
"{#SENDING}":"Server1",
"{#RECEIVING}":"ServerN"}]}
Hanya mafi sauƙi don samun bayanan da muke sha'awar ita ce ta hanyar WMI, cire su daga sassan da suka dace na DfsrReplicationGroupConfig. Sakamakon haka, an haifi rubutun da ke haifar da buƙatu zuwa WMI kuma ya fitar da jerin ƙungiyoyi, manyan fayiloli da sabar su a cikin tsarin da ake buƙata.
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
Na yarda, rubutun bazai haskaka da kyawun lambar ba kuma tabbas za a iya sauƙaƙa wasu abubuwa a cikinsa, amma yana yin babban aikinsa - yana ba da bayanai game da sigogin ƙungiyoyin kwafi a cikin tsarin da Zabbix zai iya fahimta.
Ƙara rubutun zuwa daidaitawar wakili na Zabbix
Komai anan abu ne mai sauqi qwarai. Ƙara layin masu zuwa zuwa ƙarshen fayil ɗin daidaitawar wakili:
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"
Tabbas, muna daidaita hanyoyin zuwa waɗanda muke da rubutun. Na sanya su a cikin babban fayil ɗin da aka shigar da wakili.
Bayan yin canje-canje, sake kunna sabis na wakilin Zabbix.
Canza mai amfani wanda sabis ɗin Wakilin Zabbix ke gudana a ƙarƙashinsa
Domin samun bayanai ta hanyar dfsrdiag, dole ne a gudanar da mai amfani a ƙarƙashin asusun da ke da haƙƙin gudanarwa don aikawa da karɓar membobin ƙungiyar kwafi. Sabis ɗin wakilin Zabbix, wanda ke gudana ta tsohuwa ƙarƙashin asusun tsarin, ba zai iya aiwatar da irin wannan buƙatar ba. Na ƙirƙiri wani asusu na daban a cikin yankin, na ba shi haƙƙin gudanarwa akan sabar da ake buƙata, kuma na saita sabis ɗin don gudana ƙarƙashin sa akan waɗannan sabar.
Kuna iya zuwa wata hanya: saboda dfsrdiag, a zahiri, yana aiki ta hanyar WMI iri ɗaya, sannan zaku iya amfani dashi
Samfurin kulawa
Dangane da bayanan da na karɓa, na ƙirƙiri samfuri wanda:
- Yana gudanar da gano ƙungiyoyin kwafi ta atomatik sau ɗaya a cikin sa'a,
- Yana duba girman bayanan baya na kowane rukuni sau ɗaya kowane minti 5,
- Ya ƙunshi faɗakarwa wanda ke ba da faɗakarwa lokacin da girman bayanan kowane rukuni ya wuce 100 na mintuna 30. An siffanta abin faɗakarwa azaman samfuri wanda ake ƙara kai tsaye zuwa ƙungiyoyin da aka gano,
- Gina jadawali girman bayanan baya don kowane rukunin kwafi.
Kuna iya saukar da samfuri don Zabbix 2.2
Sakamakon
Bayan shigo da samfuri a cikin Zabbix da ƙirƙirar asusu tare da haƙƙin da ake buƙata, za mu buƙaci kawai kwafin rubutun zuwa sabar fayil ɗin da muke so mu saka idanu don DFSR, ƙara layi biyu zuwa daidaitawar wakili akan su kuma sake kunna sabis na wakilin Zabbix. , saita shi don aiki azaman asusun da ake so. Babu wani saitin hannu da ake buƙata don saka idanu na DFSR.
source: www.habr.com