Para criar o arquivo XML utilizado pelo de Dataquery Remplate, é necessário seguir algumas regras.
<query>
Sempre começa com query.
<name>Fortigate - System Info</name>
Nome que deseja colocar na consulta XML, não é utilizado pelo CACTI, apenas para identificação.
<description>Fortigate - System Info</description>
Descrição do XML, também não é utilizado pelo CACTI, apenas para identificação.
<oid_index>.1.3.6.1.4.1.12356.101.4.1.2</oid_index>
Essa é a parte mais critica do script aqui deve ser inserido o OID de identificação dos índices dos objetos.
Objetos que estamos utilizando:
1.3.6.1.4.1.12356.101.4.1.3 - fgSysCpuUsage
1.3.6.1.4.1.12356.101.4.1.4 - fgSysMemUsage
1.3.6.1.4.1.12356.101.4.1.5 - fgSysMemCapacity
1.3.6.1.4.1.12356.101.4.1.6 - fgSysDiskUsage
1.3.6.1.4.1.12356.101.4.1.7 - fgSysDiskCapacity
1.3.6.1.4.1.12356.101.4.1.8 - fgSysSesCount
Voltando no mibdepot e pesquisando pelo OID 1.3.6.1.4.1.12356.101.4.1.2
Esse OID é o índice dos objetos que estamos utilizando, normalmente cada categoria tem um objeto que serve de índice apenas, normalmente é o primeiro o segundo número da categoria, nesse caso é o segundo.
<index_order_type>numeric</index_order_type>
Usado para fins de classificação:
- numeric: os índices da consulta vão ser classificados numericamente (ex: 1,2,3,4,10,11,20,21,30).
- alphabetic: os índices da consulta SNMP serão classificados por ordem alfabética (ex: 1,10,2,21,22,3,33,343,4,40).
<index_title_format>|chosen_order_field|</index_title_format>
Para facilitar mantenha o valor como |chosen_order_field|.
<fields>
Aqui começa a definir os campos que vão ser usados pelo CACTI.
<Index>
O primeiro campo sempre deve ser o index.
<name>Index</name>
Definir o nome do campo, não é necessário se chamar index, apenas boas práticas.
<method>walk</method>
O método de busca da informação.
- get: executa um snmpget para um OID especifico, mais rápido porem funciona apenas para um OID.
- walk: corre uma parte da árvore de OID, funciona como o snmpwalk, mais lento pois pesquisa vários OIDs do grupo, contudo mais utilizado, devido a flexibilidade.
<source>value</source>
Como o CACTI vai obter o valor, utilizando value será assumido o valor que o OID ira trazer, porém podemos usar REGEX para buscar um IP na árvore.
<direction>input</direction>
Direção, outra parte muito importante!
- Input: esses valores são conhecidos, exemplo, nome do host, versão e etc. (não são valores para criar o gráfico.)
- Outut: Valores para criar gráfico, porcentagem de CPU, Memoria, Disco e etc...
<oid>.1.3.6.1.4.1.12356.101.4.1.2</oid>
OID gerenciador de índice, o bendito do final .2 que vimos anteriormente.
</Index>
Fechando o campo index, a partir daqui podemos criar quantos campos quiser.
</fields>
Fechando a consulta de campo.
</query>
Fechando o arquivo XML.
Sabendo o básico podemos criar o template, segue exemplo para monitorar CPU, Memoria RAM, Disco e Numero de sessões.
<query>
<name>Fortigate - System Info</name>
<description>Fortigate - System Info</description>
<oid_index>.1.3.6.1.4.1.12356.101.4.1.2</oid_index>
<index_order_type>numeric</index_order_type>
<index_title_format>|chosen_order_field|</index_title_format>
<fields>
<Index>
<name>Index</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.2</oid>
</Index>
<SysVersion>
<name>Firmware Version</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.1</oid>
</SysVersion>
<SysCpuUsage>
<name>CPU Usage Porcent</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.3</oid>
</SysCpuUsage>
<SysMemUsage>
<name>Mem Usage Porcent</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.4</oid>
</SysMemUsage>
<SysMemCapacity>
<name>Mem Capacity KB</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.5</oid>
</SysMemCapacity>
<SysDiskUsage>
<name>Disk Usage MB</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.6</oid>
</SysDiskUsage>
<SysDiskCapacity>
<name>Disk Capacity MB</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.7</oid>
</SysDiskCapacity>
<SysSesCount>
<name>Active Sessions</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.12356.101.4.1.8</oid>
</SysSesCount>
</fields>
</query>
Diretório onde o script foi salvo:
<path_cacti>/resource/snmp_queries
Para quem tem dúvida path_cacti aqui esta como:
/usr/share/cacti/
Nome do script:
fortigate_system_info.xml
Agora precisamos preparar o CACTI para utilizar esse Data Query Template.