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