Ka nānā maʻalahi o ka DFS Replication ma Zabbix

Hōʻike

Me ka hoʻohana ʻana i ka DFS ma ke ʻano he hoʻokahi o ka loaʻa ʻana o ka ʻikepili a me ka DFSR no ka hoʻopiʻi ʻana i ka ʻikepili ma waena o nā kikowaena ʻikepili a me nā kikowaena lālā, e kū mai ka nīnau no ka nānā ʻana i ke kūlana o kēia replication.
ʻOiai, kokoke koke mākou i hoʻomaka i ka hoʻohana ʻana i ka DFSR, hoʻomaka mākou e hoʻokō iā Zabbix me ka pahuhopu e hoʻololi i ka zoo i loaʻa i nā mea hana like ʻole a lawe mai i ka nānā ʻana i nā ʻōnaehana i kahi ʻano ʻike, piha a me ka loiloi. E kamaʻilio mākou e pili ana i ka hoʻohana ʻana iā Zabbix e nānā i ka replication DFS.

ʻO ka mea mua, pono mākou e hoʻoholo i ka ʻikepili e pili ana i ka replication DFS e pono e kiʻi ʻia e nānā i kona kūlana. ʻO ka hōʻailona kūpono loa he backlog. Loaʻa iā ia nā faila ʻaʻole i hoʻonohonoho pū ʻia me nā lālā ʻē aʻe o ka hui hoʻopiʻi. Hiki iā ʻoe ke ʻike i kona nui me ka hoʻohana ʻana i ka pono dfsrdiag, hoʻokomo ʻia me ka hana DFSR. Ma kahi kūlana hoʻopiʻi maʻamau, pono e hoʻokokoke ka nui backlog i ka zero. No laila, ʻo ka nui o nā faila i ka backlog e hōʻike ana i nā pilikia me ka replication.

I kēia manawa e pili ana i ka ʻaoʻao kūpono o ka hihia.

I mea e nānā ai i ka nui o ka backlog ma o Zabbix Agent, pono mākou:

  • Script e hoʻokaʻawale i ka hopena dfsrdiag e hāʻawi i nā waiwai nui backlog hope iā Zabbix,
  • ʻO kahi palapala e hoʻoholo ai i ka nui o nā pūʻulu replication ma ka kikowaena, he aha nā faila a lākou e hoʻopili ai a he aha nā kikowaena ʻē aʻe i hoʻokomo ʻia i loko o lākou (ʻaʻole mākou makemake e hoʻokomo i kēia mau mea a pau i Zabbix ma ka lima no kēlā me kēia kikowaena, pololei?),
  • Ke hoʻohui nei i kēia mau palapala ma ke ʻano he UserParameter i ka hoʻonohonoho ʻana o ka mea hana Zabbix no ke kelepona ʻana mai ke kikowaena nānā,
  • Hoʻomaka i ka lawelawe ʻoihana Zabbix ma ke ʻano he mea hoʻohana nona nā kuleana e heluhelu i ka backlog,
  • ʻO kahi laʻana no Zabbix, kahi e hoʻonohonoho ʻia ai ka ʻike ʻana o nā pūʻulu, ka hoʻoili ʻana i ka ʻikepili i loaʻa a me ka hoʻopuka ʻana iā lākou.

Parser Script

No ke kākau ʻana i ka parser, ua koho au iā VBS ma ke ʻano he ʻōlelo ākea loa i nā mana āpau o Windows Server. He mea maʻalahi ka manaʻo o ka palapala: loaʻa iā ia ka inoa o ka hui replication, ka waihona kope, a me nā inoa o ka mea hoʻouna a loaʻa i nā kikowaena ma o ka laina kauoha. Hāʻawi ʻia kēia mau ʻāpana i dfsrdiag, a ma muli o kāna huahana e hoʻopuka ai:
Ka helu o nā faila - inā loaʻa kahi leka e pili ana i ka hiki ʻana o nā faila i ka backlog,
0 - inā loaʻa kahi leka e pili ana i ka nele o nā faila i ka backlog ("No Backlog"),
-1 - inā loaʻa kahi memo hewa dfsrdiag i ka wā e hoʻokō ai i kahi noi ("[ERROR]").

loaʻa-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

Palapala ʻike

I mea e hoʻoholo ai ʻo Zabbix i nā pūʻulu replication āpau i loaʻa ma ka kikowaena a ʻike i nā ʻāpana āpau i koi ʻia no ka noi (inoa folder, nā inoa o nā kikowaena pili), pono mākou e kiʻi i kēia ʻike, a ʻo ka lua, e hōʻike. ma kahi ʻano i hoʻomaopopo ʻia e Zabbix. ʻO ke ʻano i hoʻomaopopo ʻia e ka mea hana ʻike e like me kēia:

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

...

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

ʻO ke ala maʻalahi loa e loaʻa ai ka ʻike a mākou e makemake ai ma o WMI, e huki ana mai nā ʻāpana like o DfsrReplicationGroupConfig. ʻO ka hopena, ua hānau ʻia kahi palapala e hoʻopuka i kahi noi iā WMI a hoʻopuka i kahi papa inoa o nā pūʻulu, kā lākou mau waihona a me nā kikowaena i ke ʻano i makemake ʻia.

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

ʻAe wau, ʻaʻole hiki ke hoʻomālamalama ka palapala me ka nani o ke code a hiki ke maʻalahi ʻia kekahi mau mea i loko, akā hana ia i kāna hana nui - hāʻawi i ka ʻike e pili ana i nā ʻāpana o nā hui replication ma kahi ʻano i hoʻomaopopo ʻia e Zabbix.

Hoʻohui i nā palapala i ka hoʻonohonoho hoʻonohonoho ʻoihana Zabbix

Maʻalahi loa nā mea a pau ma ʻaneʻi. E hoʻohui i kēia mau laina i ka hope o ka faila hoʻonohonoho luna:

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"

ʻOiaʻiʻo, hoʻoponopono mākou i nā ala i kahi i loaʻa iā mākou nā palapala. Hoʻokomo wau iā lākou i loko o ka waihona hoʻokahi kahi i hoʻokomo ʻia ai ka luna.

Ma hope o ka hana ʻana i nā loli, e hoʻomaka hou i ka lawelawe ʻoihana Zabbix.

Ke hoʻololi nei i ka mea hoʻohana ma lalo o ka lawelawe ʻo Zabbix Agent

I mea e loaa ai ka ike ma o dfsrdiag, pono e holo ka pono ma lalo o kahi moʻokāki nona nā kuleana hoʻomalu i ka hoʻouna ʻana a me ka loaʻa ʻana o nā lālā o ka hui replication. ʻAʻole hiki i ka lawelawe ʻoihana Zabbix, ke holo nei ma ka paʻamau ma lalo o ka waihona ʻōnaehana, ʻaʻole hiki ke hoʻokō i kēlā noi. Ua hana au i kahi moʻokāki kaʻawale ma ka domain, hāʻawi iā ia i nā kuleana hoʻokele ma nā kikowaena pono, a hoʻonohonoho i ka lawelawe e holo ma lalo o ia ma kēia mau kikowaena.

Hiki iā ʻoe ke hele i kekahi ala ʻē aʻe: no ka mea dfsrdiag, ʻoiaʻiʻo, hana ma o ka WMI like, a laila hiki iā ʻoe ke hoʻohana wehewehe, pehea e hāʻawi ai i kahi moʻokāki domain i nā kuleana e hoʻohana ai me ka ʻole o ka hoʻopuka ʻana i nā kuleana hoʻomalu, akā inā he nui kā mākou hui replication, a laila paʻakikī ka hāʻawi ʻana i nā kuleana i kēlā me kēia hui. Eia nō naʻe, inā makemake mākou e nānā i ka hoʻopiʻi ʻana i ka Domain System Volume ma luna o nā mea hoʻokele domain, ʻo ia wale nō ke koho ʻae ʻia, ʻoiai ʻaʻole maikaʻi ka hāʻawi ʻana i nā kuleana luna hoʻomalu i ka moʻokāki lawelawe nānā.

Laʻana nānā

Ma muli o ka ʻikepili i loaʻa iaʻu, ua hana au i kahi mamana e:

  • Holo i ka ʻike maʻalahi o nā pūʻulu hoʻopiʻi hoʻokahi manawa i kēlā me kēia hola,
  • Nānā i ka nui backlog no kēlā me kēia hui i hoʻokahi manawa i kēlā me kēia 5 mau minuke,
  • Loaʻa i kahi hoʻomaka e hoʻopuka i kahi makaʻala ke ʻoi aku ka nui o ka backlog no kekahi hui ma mua o 100 no 30 mau minuke. Hōʻike ʻia ke kumu hoʻohālikelike i hoʻohui ʻia i nā hui i ʻike ʻia,
  • Kūkulu ʻia nā kiʻi kiʻi backlog no kēlā me kēia pūʻulu hana.

Hiki iā ʻoe ke hoʻoiho i ka template no Zabbix 2.2 maanei.

ʻO ka hopena

Ma hope o ka hoʻokomo ʻana i ka template i Zabbix a me ka hoʻokumu ʻana i kahi moʻokāki me nā kuleana e pono ai, pono mākou e kope i nā palapala i nā kikowaena faila a mākou e makemake ai e nānā no DFSR, e hoʻohui i ʻelua mau laina i ka hoʻonohonoho luna ma luna o lākou a hoʻomaka hou i ka lawelawe ʻoihana Zabbix. , hoʻonohonoho iā ia e holo e like me ka moʻokāki i makemake ʻia. ʻAʻole pono nā hoʻonohonoho lima ʻē aʻe no ka nānā ʻana iā DFSR.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka