Réamhrá
Le bonneagar sách mór agus dáilte a úsáideann DFS mar phointe rochtana aonair ar shonraí agus DFSR le haghaidh macasamhlú sonraí idir ionaid sonraí agus freastalaithe brainse, ardaítear an cheist maidir le monatóireacht a dhéanamh ar stádas an mhacasamhlú seo.
Mar a tharla, beagnach díreach tar éis dúinn tosú ag baint úsáide as DFSR, thosaigh muid ag cur Zabbix i bhfeidhm agus é mar sprioc againn uirlisí éagsúla a chur in ionad an zú atá ann cheana féin agus monatóireacht ar bhonneagar a thabhairt go foirm níos faisnéiseach, iomlán agus loighciúil. Déanfaimid labhairt faoi Zabbix a úsáid chun monatóireacht a dhéanamh ar mhacasamhlú DFS.
Ar an gcéad dul síos, ní mór dúinn a chinneadh cad iad na sonraí faoi mhacasamhlú DFS is gá a fháil chun monatóireacht a dhéanamh ar a stádas. Is é an táscaire is ábhartha ná riaráiste. Tá comhaid ann nár sioncronaíodh iad le baill eile den ghrúpa macasamhlaithe. Is féidir leat a mhéid a fheiceáil ag baint úsáide as an bhfóntas dfsrdiag, suiteáilte le ról DFSR. I stát macasamhlaithe gnáth, ba cheart go mbeadh méid an riaráiste gar do nialas. Dá réir sin, léiríonn líon mór comhad sa riaráiste fadhbanna le macasamhlú.
Anois faoin taobh praiticiúil den cheist.
Chun monatóireacht a dhéanamh ar mhéid an riaráiste trí Ghníomhaire Zabbix, beidh orainn:
- Script a pharsáil an t-aschur dfsrdiag chun luachanna méide riaráiste deiridh a sholáthar do Zabbix,
- Script a chinnfidh cé mhéad grúpa macasamhlaithe atá ar an bhfreastalaí, cad iad na fillteáin a dhéanann siad a mhacasamhlú agus cad iad na freastalaithe eile atá san áireamh iontu (nílimid ag iarraidh é seo go léir a chur isteach i Zabbix de láimh do gach freastalaí, ar dheis?),
- Agus na scripteanna seo á gcur mar UserParameter le cumraíocht ghníomhaire Zabbix le haghaidh glaonna ina dhiaidh sin ón bhfreastalaí monatóireachta,
- Ag tosú le seirbhís gníomhaire Zabbix mar úsáideoir a bhfuil cearta aige an riaráiste a léamh,
- Teimpléad le haghaidh Zabbix, ina ndéanfar grúpaí a bhrath, sonraí a fhaightear a phróiseáil agus foláirimh a eisiúint ina dtaobh a chumrú.
Parsálaí script
Chun an parsálaí a scríobh, roghnaigh mé VBS mar an teanga is uilíoch atá i láthair i ngach leagan de Windows Server. Tá loighic na scripte simplí: faigheann sé ainm an ghrúpa macasamhlaithe, an fillteán athdhéanta, agus ainmneacha na bhfreastalaithe seolta agus glactha tríd an líne ordaithe. Cuirtear na paraiméadair seo ar aghaidh ansin chuig dfsrdiag, agus ag brath ar a aschur táirgeann sé:
Líon na gcomhad - má fhaightear teachtaireacht faoi láithreacht comhad sa riaráiste,
0 — má fhaightear teachtaireacht faoi easpa comhad sa riaráiste (“Gan Riaráiste”),
-1 - má fhaightear teachtaireacht earráide dfsrdiag agus iarratas á dhéanamh ("[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
Script fionnachtana
Ionas go bhféadfaidh Zabbix na grúpaí macasamhlaithe go léir atá ar an bhfreastalaí a chinneadh agus na paraiméadair go léir a theastaíonn don iarratas a fháil amach (ainm fillteáin, ainmneacha freastalaithe comharsanacha), ní mór dúinn, ar an gcéad dul síos, an fhaisnéis seo a fháil, agus ar an dara dul síos, é a chur i láthair i bhformáid atá intuigthe do Zabbix. Breathnaíonn an fhormáid a thuigeann an uirlis fionnachtana mar seo:
"data":[
{
"{#GROUP}":"Share1",
"{#FOLDER}":"Folder1",
"{#SENDING}":"Server1",
"{#RECEIVING}":"Server2"}
...
"{#GROUP}":"ShareN",
"{#FOLDER}":"FolderN",
"{#SENDING}":"Server1",
"{#RECEIVING}":"ServerN"}]}
Is é an bealach is éasca chun an fhaisnéis a bhfuil suim againn inti a fháil trí WMI, é a tharraingt amach as na hailt comhfhreagracha de DfsrReplicationGroupConfig. Mar thoradh air sin, rugadh script a ghineann iarratas chuig WMI agus a aschuireann liosta grúpaí, a bhfillteáin agus a bhfreastalaithe san fhormáid riachtanach.
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
Aontaím, b'fhéidir nach bhfuil an script ag taitneamh le galántas an chóid agus is cinnte go bhféadfaí roinnt rudaí ann a shimpliú, ach comhlíonann sé a phríomhfheidhm - faisnéis a sholáthar faoi pharaiméadair na ngrúpaí macasamhlú i bhformáid atá intuigthe ag Zabbix.
Scripteanna a chur le cumraíocht an ghníomhaire Zabbix
Tá gach rud anseo thar a bheith simplí. Cuir na línte seo a leanas le deireadh an chomhaid cumraíochta gníomhaire:
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"
Ar ndóigh, déanaimid na cosáin a choigeartú dóibh siúd ina bhfuil scripteanna againn. Cuirim iad san fhillteán céanna ina bhfuil an gníomhaire suiteáilte.
Tar éis athruithe a dhéanamh, atosú ar an tseirbhís gníomhaire Zabbix.
Athrú ar an úsáideoir faoina ritheann an tseirbhís Gníomhaire Zabbix
Chun eolas a fháil trí dfsrdiag, ní mór an áirgiúlacht a reáchtáil faoi chuntas a bhfuil cearta riaracháin aige maidir le comhaltaí an ghrúpa macasamhlaithe a sheoladh agus a fháil. Ní bheidh an tseirbhís gníomhaire Zabbix, a ritheann de réir réamhshocraithe faoi chuntas an chórais, in ann iarratas den sórt sin a fhorghníomhú. Chruthaigh mé cuntas ar leith san fhearann, thug mé cearta riaracháin dó ar na freastalaithe riachtanacha, agus chumraigh mé na freastalaithe seo chun an tseirbhís a rith faoi.
Is féidir leat dul ar bhealach eile: mar gheall ar dfsrdiag, i ndáiríre, oibríonn tríd an WMI céanna, ansin is féidir leat é a úsáid
Teimpléad monatóireachta
Bunaithe ar na sonraí a fuair mé, chruthaigh mé teimpléad:
- Ritheann sé fionnachtain uathoibríoch ar ghrúpaí macasamhlú uair san uair,
- Seiceálann sé méid an riaráiste do gach grúpa uair amháin gach 5 nóiméad,
- Tá truicear ann a eisíonn foláireamh nuair a bhíonn méid an riaráiste d’aon ghrúpa níos mó ná 100 ar feadh 30 nóiméad. Déantar cur síos ar an truicear mar fhréamhshamhail a chuirtear go huathoibríoch le grúpaí braite,
- Tógann sé graif méide riaráiste do gach grúpa macasamhlaithe.
Is féidir leat an teimpléad le haghaidh Zabbix 2.2 a íoslódáil
Iomlán na
Tar éis an teimpléad a allmhairiú isteach i Zabbix agus cuntas a chruthú leis na cearta riachtanacha, ní bheidh orainn ach na scripteanna a chóipeáil chuig na freastalaithe comhaid a dteastaíonn uainn monatóireacht a dhéanamh orthu le haghaidh DFSR, cuir dhá líne leis an gcumraíocht gníomhaire orthu agus atosú ar an tseirbhís gníomhaire Zabbix , ag socrú é a rith mar an cuntas atá ag teastáil. Níl aon socruithe láimhe eile ag teastáil le haghaidh monatóireachta DFSR.
Foinse: will.com