Sgrùdadh sìmplidh air mac-samhail DFS ann an Zabbix

Ro-ràdh

Le bun-structar meadhanach mòr agus sgaoilte a bhios a’ cleachdadh DFS mar aon àite inntrigidh gu dàta agus DFSR airson ath-riochdachadh dàta eadar ionadan dàta agus frithealaichean meòir, tha a’ cheist ag èirigh mu bhith a’ cumail sùil air inbhe an ath-riochdachadh seo.
Aig an aon àm, cha mhòr sa bhad às deidh dhuinn tòiseachadh air DFSR a chleachdadh, thòisich sinn air Zabbix a chuir an gnìomh leis an amas grunn innealan a chuir an àite an sù a th ’ann agus sgrùdadh bun-structair a thoirt gu cruth nas fiosrachail, coileanta agus loidsigeach. Bruidhnidh sinn mu bhith a’ cleachdadh Zabbix gus sùil a chumail air ath-riochdachadh DFS.

An toiseach, feumaidh sinn co-dhùnadh dè an dàta mu ath-riochdachadh DFS a dh’ fheumar fhaighinn gus sùil a chumail air an inbhe aige. Is e an comharradh as buntainniche cùl-taic. Tha faidhlichean ann nach deach a shioncronachadh le buill eile den bhuidheann mac-samhail. Faodaidh tu a mheud fhaicinn leis a’ ghoireas dfsrdag, air a chuir a-steach leis an dreuchd DFSR. Ann an staid ath-riochdachadh àbhaisteach, bu chòir meud an cùl-taic a bhith faisg air neoni. Mar sin, tha àireamh mhòr de fhaidhlichean san cùl-taic a’ nochdadh duilgheadasan le ath-riochdachadh.

A-nis mu thaobh practaigeach na cùise.

Gus sùil a chumail air meud an cùl-taic tro Zabbix Agent, feumaidh sinn:

  • Sgriobt a rannsaicheas an toradh dfsrdag gus luachan meud cùl-taic deireannach a thoirt do Zabbix,
  • Sgriobt a cho-dhùineas cia mheud buidheann ath-riochdachadh a tha air an fhrithealaiche, dè na pasganan a bhios iad ag ath-aithris agus dè na frithealaichean eile a tha air an toirt a-steach annta (chan eil sinn airson seo a chuir a-steach gu Zabbix le làimh airson gach frithealaiche, ceart?),
  • A’ cur na sgriobtaichean sin mar UserParameter ri rèiteachadh àidseant Zabbix airson gairm às deidh sin bhon t-seirbheisiche sgrùdaidh,
  • A’ tòiseachadh seirbheis àidseant Zabbix mar neach-cleachdaidh aig a bheil còraichean an cùl-taic a leughadh,
  • Teamplaid airson Zabbix, anns am bi lorg bhuidhnean, giullachd dàta a fhuaireadh agus a’ cur a-mach rabhaidhean mun deidhinn air an rèiteachadh.

Parser sgriobt

Gus am parser a sgrìobhadh, thagh mi VBS mar an cànan as uile-choitcheann a tha an làthair anns a h-uile dreach de Windows Server. Tha loidsig an sgriobt sìmplidh: gheibh e ainm a’ bhuidheann mac-samhail, am pasgan ath-ghinte, agus ainmean nan frithealaichean a tha a’ cur is a’ faighinn tron ​​loidhne-àithne. Thèid na paramadairean sin an uairsin a chuir gu dfsrdag, agus a rèir an toraidh a bhios e a’ dèanamh:
An àireamh de fhaidhlichean - ma gheibhear teachdaireachd mu làthaireachd fhaidhlichean san cùl-raon,
0 - ma gheibhear teachdaireachd mu dheidhinn dìth fhaidhlichean san cùl-taic (“Gun Cùl-taic”),
-1 - ma gheibhear teachdaireachd mearachd dfsrdag nuair a thathar a' cur an gnìomh iarrtas ("[ERROR]").

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

Sgriobt lorg

Gus am bi Zabbix a’ dearbhadh a h-uile buidheann mac-samhail a tha an làthair air an t-seirbheisiche agus gus faighinn a-mach a h-uile paramadair a tha a dhìth airson an iarrtais (ainm pasgan, ainmean luchd-frithealaidh faisg air làimh), feumaidh sinn, an toiseach, am fiosrachadh seo fhaighinn, agus san dàrna àite, a thaisbeanadh ann an cruth a tha furasta a thuigsinn do Zabbix. Tha an cruth a tha an inneal lorg a’ tuigsinn a’ coimhead mar seo:

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

...

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

Is e an dòigh as fhasa am fiosrachadh anns a bheil ùidh againn fhaighinn tro WMI, ga tharraing a-mach às na h-earrannan co-fhreagarrach de DfsrReplicationGroupConfig. Mar thoradh air an sin, rugadh sgriobt a ghineas iarrtas gu WMI agus a bheir a-mach liosta de bhuidhnean, na pasganan aca agus na frithealaichean anns a’ chruth a tha a dhìth.

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

Tha mi ag aontachadh, is dòcha nach bi an sgriobt a’ deàrrsadh le eireachdas còd agus gu cinnteach dh’ fhaodadh cuid de na rudan a tha ann a bhith air an sìmpleachadh, ach bidh e a ’coileanadh a phrìomh dhleastanas - a’ toirt seachad fiosrachadh mu chrìochan bhuidhnean ath-riochdachadh ann an cruth a tha furasta a thuigsinn le Zabbix.

A’ cur sgriobtaichean ri rèiteachadh àidseant Zabbix

Tha a h-uile dad an seo gu math sìmplidh. Cuir na loidhnichean a leanas ri deireadh faidhle rèiteachaidh an àidseant:

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"

Gu dearbh, bidh sinn ag atharrachadh nan slighean chun fheadhainn far a bheil sgriobtaichean againn. Chuir mi iad san aon phasgan far a bheil an neach-ionaid air a chuir a-steach.

Às deidh dhut atharrachaidhean a dhèanamh, ath-thòiseachadh seirbheis àidseant Zabbix.

Ag atharrachadh an neach-cleachdaidh fo bheil an t-seirbheis Zabbix Agent a 'ruith

Airson fiosrachadh fhaighinn tro dfsrdag, feumaidh an goireas a bhith air a ruith fo chunntas aig a bheil còraichean rianachd an dà chuid a bhith a’ cur agus a’ faighinn buill den bhuidheann mac-samhail. Cha bhith e comasach don t-seirbheis àidseant Zabbix, a tha a’ ruith gu bunaiteach fo chunntas an t-siostaim, a leithid de dh’ iarrtas a chuir an gnìomh. Chruthaich mi cunntas fa-leth san raon, thug mi còraichean rianachd dha air na frithealaichean riatanach, agus shuidhich mi an t-seirbheis airson a ruith fodha air na frithealaichean sin.

Faodaidh tu dol air slighe eile : oir dfsrdag, gu dearbh, ag obair tro aon WMI, an uair sin faodaidh tu a chleachdadh tuairisgeul, mar a bheir cunntas fearainn na còraichean airson a chleachdadh gun a bhith a’ toirt a-mach còraichean rianachd, ach ma tha mòran bhuidhnean ath-riochdachaidh againn, bidh e duilich còraichean a thoirt do gach buidheann. Ach, air eagal gu bheil sinn airson sùil a chumail air ath-riochdachadh Domain System Volume air riaghladairean fearainn, is dòcha gur e seo an aon roghainn iomchaidh, leis nach e deagh bheachd a th’ ann còraichean rianadair fearainn a thoirt don chunntas seirbheis sgrùdaidh.

Teamplaid airson sùil a chumail air

Stèidhichte air an dàta a fhuair mi, chruthaich mi teamplaid a bha:

  • A’ ruith lorg fèin-ghluasadach air buidhnean mac-samhail uair san uair,
  • Dèan sgrùdadh air meud cùl-taic gach buidheann aon uair gach 5 mionaidean,
  • Tha inneal-brosnachaidh ann a chuireas a-mach rabhadh nuair a tha meud an cùl-fhiosrachaidh airson buidheann sam bith nas àirde na 100 airson 30 mionaid. Tha an inneal-brosnachaidh air a mhìneachadh mar prototype a thèid a chuir gu fèin-ghluasadach ri buidhnean a chaidh a lorg,
  • Togail grafaichean meud cùl-taic airson gach buidheann ath-riochdachadh.

Faodaidh tu an teamplaid airson Zabbix 2.2 a luchdachadh sìos an seo.

An toradh

Às deidh dhuinn an teamplaid a thoirt a-steach gu Zabbix agus cunntas a chruthachadh leis na còraichean riatanach, cha bhith againn ach na sgriobtaichean a chopaigeadh gu na frithealaichean faidhle a tha sinn airson sùil a chumail airson DFSR, cuir dà loidhne ris an rèiteachadh àidseant orra agus ath-thòiseachadh seirbheis àidseant Zabbix , ga shuidheachadh gus a ruith mar an cunntas a tha thu ag iarraidh. Chan eil feum air roghainnean làimhe eile airson sgrùdadh DFSR.

Source: www.habr.com

Cuir beachd ann