Kev saib xyuas yooj yim ntawm DFS Replication hauv Zabbix

Taw qhia

Nrog rau qhov loj thiab faib cov txheej txheem uas siv DFS raws li ib qho kev nkag mus rau cov ntaub ntawv thiab DFSR rau cov ntaub ntawv rov ua dua ntawm cov chaw zov me nyuam thiab cov ceg servers, cov lus nug tshwm sim ntawm kev saib xyuas cov xwm txheej ntawm qhov kev rov ua dua no.
Coincidentally, yuav luag tam sim ntawd tom qab peb pib siv DFSR, peb pib siv Zabbix nrog lub hom phiaj ntawm kev hloov lub vaj tsiaj uas twb muaj lawm ntawm ntau yam cuab yeej thiab nqa cov kev saib xyuas kev tsim kho mus rau cov ntaub ntawv ntau ntxiv, ua tiav thiab muaj laj thawj. Peb yuav tham txog kev siv Zabbix los saib xyuas DFS replication.

Ua ntej tshaj plaws, peb yuav tsum txiav txim siab seb cov ntaub ntawv dab tsi ntawm DFS replication yuav tsum tau txais los saib xyuas nws cov xwm txheej. Qhov taw qhia tseem ceeb tshaj plaws yog backlog. Nws muaj cov ntaub ntawv uas tsis tau synchronized nrog lwm tus tswv cuab ntawm pawg replication. Koj tuaj yeem saib nws qhov loj me los ntawm kev siv hluav taws xob dfsrdiag, ntsia nrog lub luag haujlwm DFSR. Nyob rau hauv ib txwm replication xeev, qhov backlog loj yuav tsum zero. Raws li, ntau cov ntaub ntawv nyob rau hauv backlog qhia txog teeb meem nrog replication.

Tam sim no hais txog cov tswv yim sab ntawm qhov teeb meem.

Txhawm rau saib xyuas qhov loj ntawm backlog los ntawm Zabbix Agent, peb yuav xav tau:

  • Script uas yuav parse cov zis dfsrdiag los muab qhov kawg backlog loj qhov tseem ceeb rau Zabbix,
  • Ib tsab ntawv uas yuav txiav txim siab pes tsawg pawg replication muaj nyob rau ntawm lub server, dab tsi folders lawv replicate thiab dab tsi lwm cov servers muaj nyob rau hauv lawv (peb tsis xav nkag mus rau tag nrho cov no rau hauv Zabbix los ntawm tes rau txhua tus neeg rau zaub mov, txoj cai?),
  • Ntxiv cov ntawv no ua UserParameter rau Zabbix tus neeg saib xyuas kev teeb tsa rau kev hu xov tooj tom qab los ntawm tus saib xyuas server,
  • Pib Zabbix tus neeg saib xyuas kev pabcuam raws li tus neeg siv uas muaj cai nyeem cov ntawv rov qab,
  • Ib tug qauv rau Zabbix, nyob rau hauv uas lub nrhiav kom tau ntawm pab pawg neeg, ua cov ntaub ntawv tau txais thiab muab ceeb toom rau lawv yuav configured.

Script parser

Txhawm rau sau tus parser, kuv xaiv VBS ua hom lus thoob ntiaj teb tshaj plaws nyob rau hauv tag nrho cov versions ntawm Windows Server. Lub logic ntawm tsab ntawv yog qhov yooj yim: nws tau txais lub npe ntawm pawg replication, replicated folder, thiab cov npe ntawm kev xa thiab txais servers ntawm kab hais kom ua. Cov kev ntsuas no ces dhau mus dfsrdiag, thiab nyob ntawm nws cov zis nws tsim:
Tus naj npawb ntawm cov ntaub ntawv - yog tias tau txais cov lus hais txog qhov muaj cov ntaub ntawv hauv lub backlog,
0 β€” Yog tias tau txais cov lus hais txog qhov tsis muaj cov ntaub ntawv hauv qhov rov qab ("Tsis muaj Backlog"),
-1 - yog tias tau txais cov lus yuam kev dfsrdiag thaum ua qhov kev thov ("[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 tsab ntawv

Yuav kom Zabbix txiav txim siab tag nrho cov replication pawg nyob rau hauv lub server thiab nrhiav kom paub tag nrho cov tsis xav tau rau qhov kev thov (folder lub npe, cov npe ntawm cov neeg nyob sib ze), peb yuav tsum, ua ntej, tau txais cov ntaub ntawv no, thiab thib ob, nthuav nws. nyob rau hauv ib hom kev nkag siab rau Zabbix. Hom ntawv uas cov cuab yeej nrhiav pom nkag siab zoo li no:

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

...

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

Txoj kev yooj yim tshaj plaws kom tau txais cov ntaub ntawv uas peb xav tau yog los ntawm WMI, rub tawm los ntawm cov ntu sib txuas ntawm DfsrReplicationGroupConfig. Yog li ntawd, ib tsab ntawv tau yug los uas tsim kev thov rau WMI thiab tso tawm cov npe ntawm pawg, lawv cov folders thiab cov servers hauv hom ntawv xav tau.

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

Kuv pom zoo, tsab ntawv yuav tsis ci nrog elegance ntawm cov cai thiab qee yam hauv nws tuaj yeem yooj yim, tab sis nws ua nws txoj haujlwm tseem ceeb - muab cov ntaub ntawv hais txog qhov tsis sib xws ntawm pawg replication hauv hom nkag siab los ntawm Zabbix.

Ntxiv cov ntawv sau rau Zabbix tus neeg saib xyuas kev teeb tsa

Txhua yam ntawm no yog qhov yooj yim heev. Ntxiv cov kab hauv qab no mus rau qhov kawg ntawm tus neeg saib xyuas cov ntaub ntawv teeb tsa:

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"

Tau kawg, peb kho txoj hauv kev rau cov uas peb muaj cov ntawv sau. Kuv muab lawv tso rau hauv tib lub nplaub tshev uas tus neeg sawv cev raug teeb tsa.

Tom qab hloov pauv, rov pib qhov kev pabcuam Zabbix tus neeg sawv cev.

Hloov tus neeg siv raws li qhov kev pabcuam Zabbix Agent khiav

Yuav kom tau txais cov ntaub ntawv los ntawm dfsrdiag, cov nqi hluav taws xob yuav tsum tau khiav raws li tus account uas muaj cai tswj xyuas ob qho tib si xa thiab txais cov tswv cuab ntawm pawg replication. Zabbix tus neeg saib xyuas kev pabcuam, khiav los ntawm lub neej ntawd nyob rau hauv tus lej system, yuav tsis tuaj yeem ua raws li qhov kev thov no. Kuv tsim ib tus account cais hauv lub npe, muab nws txoj cai tswj hwm ntawm cov servers tsim nyog, thiab teeb tsa cov kev pabcuam kom khiav hauv qab nws ntawm cov servers no.

Koj tuaj yeem mus rau lwm txoj kev: vim dfsrdiag, qhov tseeb, ua haujlwm los ntawm tib WMI, ces koj tuaj yeem siv piav qhia, yuav ua li cas muab tus lej sau npe cov cai siv nws yam tsis tau tshaj tawm cov cai tswj hwm, tab sis yog tias peb muaj ntau pawg replication, ces muab cov cai rau txhua pab pawg yuav nyuaj. Txawm li cas los xij, nyob rau hauv rooj plaub uas peb xav saib xyuas Domain System Volume replication ntawm tus tswj hwm, qhov no yuav yog qhov kev xaiv nkaus xwb, txij li muab cov cai tswj hwm rau kev saib xyuas tus account tsis yog lub tswv yim zoo.

Kev soj ntsuam template

Raws li cov ntaub ntawv kuv tau txais, kuv tsim ib lub qauv uas:

  • Khiav tsis siv neeg nrhiav pom ntawm pawg replication ib zaug ib teev,
  • Tshawb xyuas qhov backlog loj rau txhua pab pawg ib zaug txhua 5 feeb,
  • Muaj ib qho ua rau muaj kev ceeb toom thaum qhov backlog loj rau ib pawg twg ntau dua 100 rau 30 feeb. Tus txhais tau piav raws li tus qauv uas tau muab ntxiv rau cov pab pawg pom,
  • Tsim backlog size graphs rau txhua pawg replication.

Koj tuaj yeem rub tawm tus qauv rau Zabbix 2.2 no.

Qhov no

Tom qab importing tus qauv rau hauv Zabbix thiab tsim ib tus as-qhauj nrog cov cai tsim nyog, peb tsuas yog yuav tsum luam cov ntawv rau cov ntaub ntawv servers uas peb xav saib xyuas rau DFSR, ntxiv ob kab rau tus neeg sawv cev teeb tsa ntawm lawv thiab rov pib Zabbix tus neeg saib xyuas kev pabcuam. , teeb tsa nws khiav raws li tus account xav tau. Tsis tas yuav tsum muaj lwm phau ntawv teeb tsa rau kev saib xyuas DFSR.

Tau qhov twg los: www.hab.com

Ntxiv ib saib