How to monitor MS DFSR Replication Queue with Zabbix

Olá, meu nome é Diego Luisi e no artigo de hoje demonstrarei como monitorar fila de replicação do DFS entre servidores windows usando o Zabbix.

Edite o arquivo zabbix_agentd.conf e insira as seguintes linhas

Timeout=30
UnsafeUserParameters=1
UserParameter=dfs_queue[*], "C:Zabbixdfs_queue.bat" $1,$2,$3,$4

Salve, saia e reinicie o serviço do zabbix_agent.

Agora crie um novo arquivo "c:zabbixdfs_queue.bat" e insira o seguinte conteúdo:

@echo off

 

@del C:zabbixlista.txt

 

@dfsrdiag backlog /rgname:%3 /rfname:%4 /sendingmember:%1 /receivingmember:%2 > C:zabbixlista.txt

 

@for /F "delims=" %%a in (‘findstr Membro C:zabbixlista.txt’) do set var=%%a

 

@set var1=%var:~67,75%

 

@IF "%var1%" EQU "~67,75" (
echo 0
)
@IF "%var1%" GTR "0" (
echo %var1%
)

 

 

Agora crie um arquivo chamado "Template_DFSR-QUEUE.xml" e cole o seguinte conteúdo:

 

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>2.0</version>
<date>2014-05-13T03:34:18Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template_DFSR-QUEUE</template>
<name>Template_DFSR-QUEUE</name>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>DSFR</name>
</application>
</applications>
<items>
<item>
<name>DFS Queue {$RECIVE} x {$SEND}</name>
<type>0</type>
<snmp_community/>
<multiplier>0</multiplier>
<snmp_oid/>
<key>dfs_queue[&quot;{$RECIVE}&quot;,&quot;{$SEND}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;]</key>
<delay>180</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<delta>0</delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1</formula>
<delay_flex>50/1-7,00:00-24:00</delay_flex>
<params/>
<ipmi_sensor/>
<data_type>0</data_type>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>DSFR</name>
</application>
</applications>
<valuemap/>
</item>
<item>
<name>DFS Queue {$SEND} x {$RECIVE}</name>
<type>0</type>
<snmp_community/>
<multiplier>0</multiplier>
<snmp_oid/>
<key>dfs_queue[&quot;{$SEND}&quot;,&quot;{$RECIVE}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;]</key>
<delay>180</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<delta>0</delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1</formula>
<delay_flex>50/1-7,00:00-24:00</delay_flex>
<params/>
<ipmi_sensor/>
<data_type>0</data_type>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>DSFR</name>
</application>
</applications>
<valuemap/>
</item>
</items>
<discovery_rules/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template_DFSR-QUEUE:dfs_queue[&quot;{$RECIVE}&quot;,&quot;{$SEND}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;].last()}&gt;100</expression>
<name>DFS Fila alta de {$RECIVE} para {$SEND} é {ITEM.LASTVALUE}</name>
<url/>
<status>0</status>
<priority>4</priority>
<description>Fila alta no DFSR</description>
<type>0</type>
<dependencies/>
</trigger>
<trigger>
<expression>{Template_DFSR-QUEUE:dfs_queue[&quot;{$SEND}&quot;,&quot;{$RECIVE}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;].last()}&gt;100</expression>
<name>DFS Fila alta de {$SEND} para {$RECIVE} é {ITEM.LASTVALUE}</name>
<url/>
<status>0</status>
<priority>4</priority>
<description>Fila alta no DFSR</description>
<type>0</type>
<dependencies/>
</trigger>
</triggers>
<graphs>
<graph>
<name>DFS Queue Monitor</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>0</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>C80000</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template_DFSR-QUEUE</host>
<key>dfs_queue[&quot;{$SEND}&quot;,&quot;{$RECIVE}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>0</drawtype>
<color>00C800</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template_DFSR-QUEUE</host>
<key>dfs_queue[&quot;{$RECIVE}&quot;,&quot;{$SEND}&quot;,&quot;{$RFNAME}&quot;,&quot;{$RGNAME}&quot;]</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>

 

Importe esse template do zabbix e associe aos servidores que deseja monitorar.

Crie as seguintes macros:

Imagem

DFSR

 

 

You may also like...

3 Responses

  1. Ygor says:

    Ola amigo,
    Tentei fazer o importe porém deu erro na versão 2.2.0. Fiz os itens na mão e tudo ok, porém essa macro final não seria no template criado ou você coloca em casa host que cria?

    Abs

  2. ygorsoares says:

    Ola,
    Amigo, tem algo errado no script em bat!

    Ele so me traz a informação:

    [ERROR] Replication group not found Err: -2147217406 (0x80041002)
    Operation Failed

    Porém se eu executo o comando manualmente tudo funciona na boa!

    As keys no meu template eu montei da seguinte forma:

    DFS Queue {$RECIVE} x {$SEND}
    dfs_queue[“{$RECIVE}”,”{$SEND}”,”{$RFNAME}”,”{$RGNAME}”]

    DFS Queue {$SEND} x {$RECIVE}
    dfs_queue[“{$SEND}”,”{$RECIVE}”,”{$RFNAME}”,”{$RGNAME}”]

    Outra duvida é, que tipo de type você utilizou? Log ou Text?

    Desculpe, porém como a sua versão do Zabbix pe diferente da minha eu tive que fazer um template e os itens do zero, porém o seu me deu uma boa ajuda!

    Abs

Leave a Reply

Your email address will not be published. Required fields are marked *