La socodka fudud ee ku celcelinta DFS ee Zabbix

Horudhac

Iyada oo kaabayaal dhaqaale oo aad u ballaaran oo loo qaybiyey oo isticmaala DFS oo ah hal meel oo laga heli karo xogta iyo DFSR ee ku-meel-gaadhka xogta u dhaxaysa xarumaha xogta iyo server-yada laanta, su'aasha ayaa soo baxaysa la socodka heerka ku celcelintan.
Nasiib darro, isla markiiba ka dib markii aan bilownay isticmaalka DFSR, waxaan bilownay hirgelinta Zabbix annagoo hadafka ka leenahay in aan beddelno xayawaanka jira ee qalabka kala duwan iyo keenista la socodka kaabayaasha qaab macluumaad badan, dhamaystiran oo macquul ah. Waxaan ka hadli doonaa isticmaalka Zabbix si aan ula soconno ku celcelinta DFS.

Marka hore, waxaan u baahanahay inaan go'aan ka gaarno xogta ku saabsan ku celcelinta DFS ee loo baahan yahay in la helo si loola socdo xaaladdeeda. Tilmaamaha ugu habboon waa dib-u-dhac. Waxa ay ka kooban tahay faylal aan lala mid dhigin xubnaha kale ee kooxda taranka. Waxaad arki kartaa cabbirkeeda adigoo isticmaalaya utility dfsrdiag, oo lagu rakibay doorka DFSR. Xaaladda ku-noqoshada caadiga ah, cabbirka dib-u-celinta waa inuu u dhawaadaa eber. Sidaas awgeed, tiro badan oo galal ah oo ku jira gadaasha dambe ayaa tilmaamaya dhibaatooyinka soo noqnoqda.

Hadda oo ku saabsan dhinaca la taaban karo ee arrinta.

Si loo kormeero cabbirka dib-u-dhacyada iyada oo loo marayo Wakiilka Zabbix, waxaan u baahan doonaa:

  • Qoraal kala saari doona wax soo saarka dfsrdiag Si loo siiyo qiyamka cabbirka dhabarka dambe ee Zabbix,
  • Qoraal go'aamin doona inta kooxood ee nuqul ka mid ah ayaa ku jira server-ka, faylalka ay ku celceliyaan iyo waxa server-yada kale ee ku jira (ma doonayno inaan waxan oo dhan ku galno Zabbix gacanta server kasta, sax?),
  • Ku darida qoraalladan sida UserParameter qaabaynta wakiilka Zabbix ee wicitaanka xiga ee serferka la socodka,
  • Bilaabida adeega wakiilka Zabbix sida isticmaale leh xuquuqaha uu ku akhriyo dib u dhaca,
  • Qaab-dhismeedka Zabbix, kaas oo ogaanshaha kooxaha, habaynta xogta la helay iyo soo saarista digniinaha iyaga ayaa la habeyn doonaa.

Baarista qoraalka

Si aan u qoro falanqaynta, waxaan u doortay VBS inay tahay luqadda caalamiga ah ee ka jirta dhammaan noocyada Windows Server. Fikradda qoraalku waa mid fudud: waxay helaysaa magaca kooxda nuqul ka mid ah, faylka la soo koobay, iyo magacyada server-yada diraya iyo kuwa helaya iyada oo loo marayo khadka taliska. Halbeegyadan ayaa markaa loo gudbiyaa dfsrdiag, waxayna ku xiran tahay wax soo saarkeeda:
Tirada faylasha - haddii fariin la helo oo ku saabsan joogitaanka faylalka gadaasha,
0 - haddii fariin la helo oo ku saabsan maqnaanshaha faylalka ku jira kaydka dambe ("Maya Backlog"),
-1 - haddii fariin qalad ah la helo dfsrdiag marka la fulinayo codsiga ("[ERROR]").

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

Qoraalka daahfurka

Si ay Zabbix u go'aamiso dhammaan kooxaha taranka ee ku jira server-ka iyo si loo ogaado dhammaan cabbirrada looga baahan yahay codsiga (magaca galka, magacyada server-yada deriska ah), waxaan u baahanahay, marka hore, inaan helno macluumaadkan, marka labaadna, soo bandhigno qaab la fahmi karo Zabbix. Qaabka uu fahmaayo aaladda daahfurku waxa ay u egtahay sidan:

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

...

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

Habka ugu fudud ee lagu heli karo macluumaadka aan xiisayno waa iyada oo loo marayo WMI, ka soo saarta qaybaha u dhigma ee DfsrReplicationGroupConfig. Natiijo ahaan, qoraal ayaa dhashay kaasoo keenaya codsi WMI oo soo saara liiska kooxaha, faylalka iyo adeegayaasha qaabkii loo baahnaa.

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

Waan ku raacsanahay, qoraalka ayaa laga yaabaa inuusan ku iftiimin xarrago kood ah, waxyaabaha ku jirana hubaal waa la fududayn karaa, laakiin waxay qabataa hawsheeda ugu weyn - bixinta macluumaadka ku saabsan cabbirrada kooxaha taranka qaab ay fahmi karto Zabbix.

Ku darida qoraallada qaabeynta wakiilka Zabbix

Wax walba halkan aad bay u fudud yihiin. Ku dar khadadka soo socda dhamaadka faylka qaabeynta wakiilka:

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"

Dabcan, waxaan hagaajineynaa waddooyinka kuwa aan haysanno qoraallada. Waxaan ku dhejiyay isla faylka meesha wakiilka lagu rakibay.

Kadib samaynta isbedelada, dib u bilaw adeega wakiilka Zabbix.

Beddelka isticmaalaha uu ka hoos shaqeeyo adeega wakiilka Zabbix

Si aan xogta uga helno dfsrdiagUtility waa in lagu hoos maamulaa akoon leh xuquuq maamul oo dirida iyo qaabilaadda xubnaha kooxda taranka. Adeegga wakiilka Zabbix, oo si caadi ah ugu shaqeeya akoonka nidaamka, ma awoodi doono inuu fuliyo codsigan. Waxaan ka abuuray akoon gaar ah domainka, waxaan siiyay xuquuqaha maamul ee server-yada lagama maarmaanka ah, waxaanan u habeeyey adeegga si uu ugu shaqeeyo server-yadan.

Si kale ayaad u mari kartaa: sababtoo ah dfsrdiag, dhab ahaantii, waxay ku shaqeysaa isla WMI, markaa waad isticmaali kartaa sharaxaad, sida loo siiyo akoonka domainka xuquuqda isticmaalka iyada oo aan la soo saarin xuquuqaha maamulka, laakiin haddii aan haysano kooxo badan oo nuqul ah, markaa soo saarista xuquuqda koox kasta way adkaan doontaa. Si kastaba ha ahaatee, haddii ay dhacdo inaan rabno inaan la soconno ku celcelinta mugga Nidaamka Domain System-ka ee kantaroolayaasha domainka, tani waxay noqon kartaa ikhtiyaarka kaliya ee la aqbali karo, maadaama siinta xuquuqda maamulka domainka koontada adeegga la socodka maaha fikrad wanaagsan.

Qaabka la socodka

Iyada oo ku saleysan xogta aan helay, waxaan sameeyay qaab-dhismeedka:

  • Wuxuu sameeyaa sahan toos ah ee kooxaha taranka hal mar saacaddii,
  • Waxay hubisaa xajmiga dhabarka koox kasta hal mar 5tii daqiqiba,
  • Waxa ku jira kiciye soo saara digniin marka cabbirka dhabarka ee koox kasta uu ka badan yahay 100 ilaa 30 daqiiqo. Kiciyeyaasha waxaa lagu tilmaamay tusaale ahaan si toos ah loogu daro kooxaha la ogaaday,
  • Waxay u dhistaa garaafyada cabbirka garaafyada koox kasta oo nuqul ka mid ah.

Waxaad soo dejisan kartaa qaab-dhismeedka Zabbix 2.2 halkan.

Natiijada

Ka dib marka la soo dejiyo qaabka Zabbix oo aan abuurno koonto leh xuquuqaha lagama maarmaanka ah, waxaan kaliya u baahan doonaa inaan nuqul ka sameysanno qoraallada faylasha faylasha ee aan rabno inaan la soconno DFSR, ku dar laba sadar qaabeynta wakiilka iyaga oo dib u bilaw adeegga wakiilka Zabbix , u dejinaya inuu u shaqeeyo sidii akoonkii la rabay. Ma jiro habayn kale oo gacanta ah oo looga baahan yahay la socodka DFSR.

Source: www.habr.com

Add a comment