Sauƙaƙan saka idanu na kwafin DFS a cikin Zabbix

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 bayanin, yadda ake ba da asusun yanki haƙƙin amfani da shi ba tare da bayar da haƙƙin gudanarwa ba, amma idan muna da ƙungiyoyin kwafi da yawa, to ba da haƙƙin kowane rukuni zai yi wahala. Koyaya, idan muna son saka idanu akan kwafin ƙarar Tsarin Tsarin Yanki akan masu kula da yanki, wannan na iya zama zaɓin da aka karɓa kawai, tunda ba da haƙƙin mai gudanarwa na yanki ga asusun sabis na sa ido ba kyakkyawan ra'ayi bane.

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 a nan.

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

Add a comment