Kuwunika kosavuta kwa DFS Replication mu Zabbix

Mau oyamba

Pokhala ndi zomangamanga zazikulu komanso zogawidwa zomwe zimagwiritsa ntchito DFS ngati malo amodzi opezera deta ndi DFSR kwa kubwereza deta pakati pa malo opangira deta ndi ma seva a nthambi, funso likubwera poyang'anira momwe kubwereza uku.
Mwachidziwitso, pafupifupi titangoyamba kugwiritsa ntchito DFSR, tinayamba kugwiritsa ntchito Zabbix ndi cholinga chosintha malo osungiramo nyama omwe alipo a zida zosiyanasiyana ndikubweretsa kuwunikira kwachitukuko kukhala chidziwitso, chokwanira komanso chomveka. Tikambirana za kugwiritsa ntchito Zabbix kuyang'anira kubwereza kwa DFS.

Choyamba, tiyenera kusankha kuti ndi data iti yokhudza kubwereza kwa DFS yomwe iyenera kupezedwa kuti tiwone momwe ilili. Chizindikiro chofunikira kwambiri ndikubwerera mmbuyo. Lili ndi mafayilo omwe sanagwirizanitsidwe ndi mamembala ena agulu lobwereza. Mutha kuwona kukula kwake pogwiritsa ntchito zofunikira dfsrdiag, yoyikidwa ndi gawo la DFSR. M'malo obwerezabwereza, kukula kwa zotsalira kuyenera kuyandikira zero. Chifukwa chake, kuchuluka kwa mafayilo omwe akutsalira kumawonetsa zovuta pakubwereza.

Tsopano za mbali yothandiza ya nkhaniyi.

Kuti muwone kukula kwa zomwe zatsalira kudzera mu Zabbix Agent, tidzafunika:

  • Script yomwe iwonetsa zotsatira zake dfsrdiag kuti apereke kukula komaliza kwa Zabbix,
  • Zolemba zomwe zidzatsimikizire kuti ndi magulu angati obwereza omwe ali pa seva, ndi mafoda otani omwe amabwereza ndi ma seva ena omwe akuphatikizidwamo (sitikufuna kulowetsa zonsezi mu Zabbix ndi dzanja pa seva iliyonse, chabwino?),
  • Kuwonjezera zolemba izi ngati UserParameter ku kasinthidwe ka wothandizira wa Zabbix kuti muyitane kuchokera pa seva yowunikira,
  • Kuyambitsa ntchito ya Zabbix ngati wogwiritsa ntchito yemwe ali ndi ufulu wowerenga zotsalira,
  • Template ya Zabbix, momwe kuwonekera kwa magulu, kukonza kwa data yolandilidwa ndikupereka zidziwitso pa iwo kudzakhazikitsidwa.

Script parser

Kuti ndilembe chowerengeracho, ndinasankha VBS ngati chilankhulo chapadziko lonse lapansi chomwe chilipo m'mitundu yonse ya Windows Server. Lingaliro la script ndi losavuta: limalandira dzina la gulu lobwerezabwereza, foda yobwerezabwereza, ndi mayina a ma seva otumiza ndi kulandira kudzera pamzere wolamula. Ma parameter awa amaperekedwa dfsrdiag, ndipo kutengera zotsatira zake zomwe zimapanga:
Chiwerengero cha mafayilo - ngati uthenga walandilidwa za kupezeka kwa mafayilo kumbuyo,
0 - ngati uthenga walandilidwa za kusakhalapo kwa mafayilo pazotsalira ("Palibe Zobwerera")
-1 - ngati uthenga wolakwika walandiridwa dfsrdiag pochita pempho ("[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

Discovery script

Kuti Zabbix adziwe magulu onse obwereza omwe alipo pa seva ndikupeza magawo onse ofunikira pa pempho (dzina la chikwatu, mayina a ma seva oyandikana nawo), tifunika, choyamba, kupeza izi, ndipo kachiwiri, kuziwonetsa. m'njira yomveka bwino ku Zabbix. Mawonekedwe omwe chida chotulukira chimamvetsetsa chikuwoneka motere:

        "data":[
                {
                        "{#GROUP}":"Share1",
                        "{#FOLDER}":"Folder1",
                        "{#SENDING}":"Server1",
                        "{#RECEIVING}":"Server2"}

...

                        "{#GROUP}":"ShareN",
                        "{#FOLDER}":"FolderN",
                        "{#SENDING}":"Server1",
                        "{#RECEIVING}":"ServerN"}]}

Njira yosavuta yopezera zambiri zomwe tikufuna ndi kudzera pa WMI, kuzikoka kuchokera m'magawo ofanana a DfsrReplicationGroupConfig. Zotsatira zake, script idabadwa yomwe imapanga pempho kwa WMI ndikutulutsa mndandanda wamagulu, mafoda awo ndi ma seva mumtundu wofunikira.

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

Ndikuvomereza, malembawo sangawala ndi kukongola kwa code ndipo zinthu zina mmenemo zikhoza kukhala zosavuta, koma zimagwira ntchito yake yaikulu - kupereka chidziwitso cha magawo a magulu obwerezabwereza mumtundu womveka bwino ndi Zabbix.

Kuonjezera zolembera ku kasinthidwe ka wothandizira Zabbix

Chilichonse apa ndi chophweka kwambiri. Onjezani mizere iyi kumapeto kwa fayilo yosinthira wothandizira:

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"

Inde, timasintha njira zomwe tili ndi zolemba. Ndidawayika mufoda yomweyi pomwe wothandizira amayikidwa.

Mukasintha, yambitsaninso ntchito ya Zabbix.

Kusintha wogwiritsa ntchito momwe ntchito ya Zabbix Agent imayendera

Kuti mulandire zambiri kudzera dfsrdiag, ntchitoyo iyenera kuyendetsedwa pansi pa akaunti yomwe ili ndi ufulu woyang'anira kutumiza ndi kulandira mamembala a gulu lobwerezabwereza. Utumiki wa Zabbix wothandizira, womwe ukuyenda mwachisawawa pansi pa akaunti ya dongosolo, sungathe kuchita zomwezo. Ndinapanga akaunti yosiyana m'derali, ndinapatsa ufulu wolamulira pa ma seva ofunikira, ndikukonza ntchitoyo kuti ikhale pansi pa ma seva awa.

Mutha kupita njira ina: chifukwa dfsrdiag, kwenikweni, imagwira ntchito kudzera mu WMI yomweyo, ndiye mutha kugwiritsa ntchito kufotokoza, momwe mungaperekere akaunti ya domain ufulu wogwiritsa ntchito popanda kupereka ufulu woyang'anira, koma ngati tili ndi magulu ambiri obwerezabwereza, ndiye kuti kupereka ufulu kwa gulu lirilonse kumakhala kovuta. Komabe, ngati tikufuna kuyang'anira kubwereza kwa Domain System Volume pa olamulira madera, iyi ikhoza kukhala njira yokhayo yovomerezeka, popeza kupereka ufulu wa woyang'anira dera ku akaunti ya ntchito yowunikira si lingaliro labwino.

Monitoring template

Kutengera zomwe ndalandira, ndidapanga template kuti:

  • Imayendetsa zodziwikiratu zamagulu obwereza kamodzi pa ola,
  • Kuyang'ana kukula kwa zotsalira za gulu lirilonse kamodzi mphindi zisanu zilizonse,
  • Lili ndi choyambitsa chomwe chimapereka chenjezo ngati kukula kwa zotsalira za gulu lililonse kupitilira 100 kwa mphindi 30. Choyambitsacho chikufotokozedwa ngati choyimira chomwe chimangowonjezeredwa kumagulu odziwika,
  • Imamanga ma graph a backlog kukula kwa gulu lililonse lobwereza.

Mutha kutsitsa template ya Zabbix 2.2 apa.

Zotsatira

Pambuyo potumiza template ku Zabbix ndikupanga akaunti yokhala ndi ufulu wofunikira, tidzangofunika kukopera zolembedwa ku ma seva omwe tikufuna kuwayang'anira DFSR, onjezerani mizere iwiri ku kasinthidwe ka wothandizira pa iwo ndikuyambitsanso ntchito yothandizira Zabbix. , kuyiyika kuti igwire ntchito ngati akaunti yomwe mukufuna. Palibe makonda ena apamanja omwe amafunikira pakuwunika kwa DFSR.

Source: www.habr.com

Kuwonjezera ndemanga