Ukubekwa esweni okulula kwe-DFS Replication kwi-Zabbix

Intshayelelo

Ngeziseko ezingundoqo ezifanelekileyo nezisasazwayo ezisebenzisa i-DFS njengendawo enye yokufikelela kwidatha kunye ne-DFSR yokuphindaphinda idatha phakathi kwamaziko edatha kunye neeseva zesebe, umbuzo uvela ekubekeni iliso kwimeko yokuphindaphinda.
Ngokuzenzekelayo, ngokukhawuleza emva kokuba siqalise ukusebenzisa i-DFSR, saqalisa ukusebenzisa i-Zabbix ngenjongo yokutshintsha indawo yogcino-zilwanyana ekhoyo yezixhobo ezahlukeneyo kunye nokuzisa ukujongwa kweziseko zophuhliso kwifomu yolwazi, epheleleyo kunye nengqiqo. Siza kuthetha ngokusebenzisa i-Zabbix ukujonga ukuphindaphinda kwe-DFS.

Okokuqala, kufuneka sithathe isigqibo sokuba yeyiphi idatha malunga nokuphindaphindwa kwe-DFS ekufuneka ifunyenwe ukujonga imeko yayo. Esona salathisi sifanelekileyo kukusilela. Iqulethe iifayile ezingadityaniswanga namanye amalungu eqela lophindaphindo. Ungajonga ubungakanani bayo usebenzisa into eluncedo dfsrdiag, efakwe kunye nendima ye-DFSR. Kwimeko eqhelekileyo yokuphindaphinda, ubungakanani obusemva kufuneka busondele ku-zero. Ngokufanelekileyo, amanani amakhulu eefayile kwi-backlog abonisa iingxaki ngokuphindaphinda.

Ngoku malunga necala elisebenzayo lomba.

Ukuze ujonge ubungakanani be-backlog nge-Agent ye-Zabbix, siya kufuna:

  • Ushicilelo oluya kwahlula imveliso dfsrdiag ukubonelela amaxabiso obungakanani bokugqibela bokungasemva kwiZabbix,
  • Iskripthi esiza kugqiba ukuba mangaphi amaqela okuphindaphinda akhoyo kumncedisi, zeziphi iifolda abaziphindaphindayo kwaye zeziphi ezinye iiseva ezifakwe kuzo (asifuni ukungena konke oku kwiZabbix ngesandla kumncedisi ngamnye, akunjalo?),
  • Ukongeza ezi zikripthi njengoMsebenzisi weParameter kuqwalaselo lwearhente yeZabbix kumnxeba olandelayo ovela kumncedisi wokubeka iliso,
  • Ukuqala inkonzo yearhente yeZabbix njengomsebenzisi onamalungelo okufunda ukusilela,
  • Ithemplate ye-Zabbix, apho ukufunyanwa kwamaqela, ukuqhutyelwa kwedatha efunyenweyo kunye nokukhupha izilumkiso kuzo ziya kuqwalaselwa.

Umchazi weskripthi

Ukubhala umhlaseli, ndikhethe iVBS njengolona lwimi lukhoyo kwihlabathi liphela kuzo zonke iinguqulelo zeWindows Server. Ingqiqo yeskripthi ilula: ifumana igama leqela lokuphindaphinda, ifolda ephindaphindiweyo, kunye namagama abathumelayo nabafumanayo abancedisi ngelayini yomyalelo. Ezi parameters zigqithiselwe dfsrdiag, kwaye kuxhomekeke kwimveliso yayo eyivelisayo:
Inani leefayile - ukuba umyalezo ufunyenwe malunga nobukho beefayile kwi-backlog,
0 β€” ukuba umyalezo ufunyenwe malunga nokungabikho kweefayile kugcino olusemva (β€œAkukho semva”),
-1 - ukuba umyalezo wemposiso ufunyenwe dfsrdiag xa usenza isicelo ("[ERROR]").

fumana-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

Iskripthi sokufunyanwa

Ukuze i-Zabbix inqume onke amaqela okuphindaphinda akhoyo kumncedisi kunye nokufumana zonke iiparameters ezifunekayo kwisicelo (igama lefolda, amagama abancedisi abangabamelwane), kufuneka, okokuqala, sifumane olu lwazi, kwaye okwesibini, sibonise ngefomathi eqondakalayo kuZabbix. Ifomathi esiyiqondayo isixhobo sokufumanisa ibonakala ngolu hlobo:

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

...

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

Eyona ndlela ilula yokufumana ulwazi esinomdla kulo kukusebenzisa i-WMI, ukuyikhupha kumacandelo ahambelanayo e-DfsrReplicationGroupConfig. Ngenxa yoko, iskripthi sazalwa esenza isicelo kwi-WMI kwaye sivelise uluhlu lwamaqela, iifolda zabo kunye neeseva kwifomathi efunekayo.

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

Ndiyavuma, iskripthi sinokungakhanyisi ngobuhle bekhowudi kwaye ezinye izinto ezikuyo ngokuqinisekileyo zinokwenziwa lula, kodwa zenza umsebenzi wayo ophambili - ukubonelela ngolwazi malunga neeparamitha zamaqela okuphindaphinda kwifomathi eqondakalayo nguZabbix.

Ukongeza izikripthi kuqwalaselo lwe-arhente ye-Zabbix

Yonke into elapha ilula kakhulu. Yongeza le migca ilandelayo ekupheleni kwefayile yoqwalaselo yomenzeli:

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"

Ewe kunjalo, sihlengahlengisa iindlela ukuya kwezo sinazo izikripthi. Ndibabeka kwifolda efanayo apho i-arhente ifakwe khona.

Emva kokwenza utshintsho, qalisa kwakhona inkonzo ye-arhente ye-Zabbix.

Ukutshintsha umsebenzisi apho inkonzo ye-Agent ye-Zabbix isebenza phantsi kwayo

Ukuze ufumane ulwazi nge dfsrdiag, usetyenziso kufuneka luqhutywe phantsi kweakhawunti enamalungelo olawulo ekuthumeleni nasekufumaneni amalungu eqela lokuphindaphinda. Inkonzo yomenzeli weZabbix, esebenza ngokungagqibekanga phantsi kweakhawunti yenkqubo, ayizukwazi ukwenza eso sicelo. Ndenze i-akhawunti eyahlukileyo kwi-domain, ndayinika amalungelo olawulo kwiiseva eziyimfuneko, kwaye ndilungiselele inkonzo ukuba iqhube phantsi kwayo kula maseva.

Ungahamba ngenye indlela: kuba dfsrdiag, enyanisweni, isebenza nge-WMI efanayo, emva koko ungasebenzisa inkcazelo, indlela yokunika i-akhawunti ye-domain amalungelo okuyisebenzisa ngaphandle kokukhupha amalungelo olawulo, kodwa ukuba sinamaqela amaninzi okuphindaphinda, ke ukukhutshwa kwamalungelo kwiqela ngalinye kuya kuba nzima. Nangona kunjalo, kwimeko apho sifuna ukubeka iliso kwi-Domain System Volume replication kubalawuli be-domain, le nto ingaba yodwa inketho eyamkelekileyo, ekubeni ukunika amalungelo omlawuli wesizinda kwi-akhawunti yenkonzo yokubeka iliso akuyona ingcamango enhle.

Itemplate yokubeka iliso

Ngokusekelwe kwidatha endiyifumeneyo, ndenze itemplate ethi:

  • Iqhuba ukufunyanwa okuzenzekelayo kwamaqela okuphindaphinda kanye ngeyure,
  • Qwalasela ubungakanani obusemva kwiqela ngalinye kanye ngemizuzu emi-5,
  • Iqulethe i-trigger ekhupha isilumkiso xa ubungakanani obusemva kulo naliphi na iqela lingaphezulu kwe-100 kwimizuzu engama-30. I-trigger ichazwa njengeprototype eyongezwa ngokuzenzekelayo kumaqela afunyenweyo,
  • Yakha ubungakanani begrafu esemva kwiqela ngalinye lophindaphindo.

Unokukhuphela ithempleyithi yeZabbix 2.2 apha.

Isiphumo

Emva kokungenisa i-template kwi-Zabbix kunye nokudala i-akhawunti ngamalungelo afunekayo, siya kufuna kuphela ukukopisha izikripthi kwiiseva zefayile esifuna ukuzijonga kwi-DFSR, yongeza imigca emibini kwi-ejenti yoqwalaselo kubo kwaye uqalise kwakhona inkonzo ye-agent ye-Zabbix. , icwangcisa ukuba iqhube njenge akhawunti efunwayo. Azikho ezinye iisetingi zesandla ezifunekayo kujongo lwe-DFSR.

umthombo: www.habr.com

Yongeza izimvo