<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M4viael</id>
	<title>Wiki BPF - Contribuições do(a) usuário(a) [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M4viael"/>
	<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/w/Especial:Contribui%C3%A7%C3%B5es/M4viael"/>
	<updated>2026-04-21T14:57:29Z</updated>
	<subtitle>Contribuições do(a) usuário(a)</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=3772</id>
		<title>Como Monitorar 95th percentile</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=3772"/>
		<updated>2024-08-01T14:17:59Z</updated>

		<summary type="html">&lt;p&gt;M4viael: /* Ajuste no nome do arquivo de acordo com o github */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
Link burstable é grandemente falado e procurado por sua flexibilidade e facilidade. Fernando Frediani realizou um [https://www.youtube.com/watch?v=WjSps5huDGU&amp;amp;t=157s painel] na GTER explicando sobre seus conceitos e utilidades.&lt;br /&gt;
&lt;br /&gt;
Uma dificuldade que impede de alguns upstreams a ofertar esse serviço é o monitoramento de tal serviço, justamente por ser complexo determinar quanto o cliente deverá pagar por aquela fatura por se tratar de um valor variável, e não mais um valor fixo.&lt;br /&gt;
&lt;br /&gt;
Leve em consideração que o provedor XPTO realizou a contratação de um link burstable com a operadora Z com commit de 500M e burst de 1G, sendo assim, o valor inicial que ele pagará será referente a 500M.&lt;br /&gt;
&lt;br /&gt;
Porém como estamos nos referindo a 95 percentile, poderá acontecer de esse cliente ultrapassar os 500M de trafego durante mais do que 36 horas, passando assim a ter que pagar por uma capacidade superior utilizada além do mínimo contratado.&lt;br /&gt;
&lt;br /&gt;
Nesse caso em questão, o upstream deverá excluir 5% dos maiores picos de trafego que esse cliente utilizou, e cobrar pelo valor subsequente.&lt;br /&gt;
[[Arquivo:Zabbix logo.png|miniaturadaimagem|Zabbix]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoramento Nativo ===&lt;br /&gt;
Alguns sistemas de monitoramento possuem formas simples de fazer isso, um excelente exemplo é o próprio Zabbix, que é o que utilizaremos para demonstrar aqui.&lt;br /&gt;
&lt;br /&gt;
A primeira forma será através de uma forma nativa de monitoramento por parte do Zabbix através do monitoramento via SNMP que já é feito nas interfaces do seu equipamento. Para criar o gráfico relacionado ao 95 percentile, siga os seguintes passos:&lt;br /&gt;
[[Arquivo:Criaçao Grafico 95percentil.png|miniaturadaimagem|Criação do Gráfico no Host]]&lt;br /&gt;
# Entre nos Hosts do Zabbix;&lt;br /&gt;
# Entre nos gráficos do seu host;&lt;br /&gt;
# Crie um novo gráfico;&lt;br /&gt;
# Existem 2 itens chamados de &amp;quot;Item Percentile (left)&amp;quot; e &amp;quot;Item Percentile (right)&amp;quot;, habilite ambos e ao lado coloque 95;&lt;br /&gt;
# Adicione os itens relacionados ao trafego da interface que deseja monitorar (trafego de inbound e de outbound);&lt;br /&gt;
# Para checar se funcionou, entre no menu &amp;quot;Monitoring&amp;quot;, &amp;quot;Graphs&amp;quot;, selecione o grupo que seu host está incluso, selecione seu host, e o gráfico que voce criou;&lt;br /&gt;
# Manipule o Time-Range do gráfico de forma que ele mostre o trafego desde o primeiro dia do mês, até o ultimo;&lt;br /&gt;
# Uma linha aparecerá no gráfico, e uma estatística com um triângulo na frente escrito &amp;quot;95percentile&amp;quot;;&lt;br /&gt;
# O valor seguinte, é o valor que buscamos.&lt;br /&gt;
[[Arquivo:Ready-graph-95percentil.png|miniaturadaimagem|Gráfico pronto de um link 95 percentile.]]&lt;br /&gt;
&lt;br /&gt;
Caso prefira, pode adicionar essa configuração nos gráficos que podem ser criados automaticamente pelo Low Level Discovery do seu template.&lt;br /&gt;
&lt;br /&gt;
=== Relatórios Usando ExternalScripts ===&lt;br /&gt;
Existem casos onde o o trânsito em questão possui a necessidade de gerar relatórios mais complexos, para tal eu desenvolvi um script para essa finalidade. Esse script faz justamente o que o gráfico realiza, porém de forma que mostre um relatório em texto.&lt;br /&gt;
&lt;br /&gt;
Para utilizarmos esse script, precisaremos inicialmente acessar seu Zabbix via SSH, e após isso  usar o seguinte comando para acessar o diretório onde ficam os scripts para monitoramento externo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/lib/zabbix/externalscripts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos realizar o download das dependências do script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install wget git -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, realize o clone do script que está no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/andrediashexa/95percentil.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv 95percentil/* .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro do script é necessário colocar o usuário e senha do seu database, para isso utilizaremos o nano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano 95percentil.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edite as primeiras linhas de acordo com suas informações, de forma que sejam coerentes com o acesso de seu database. Apenas dessa forma o script conseguirá buscar as informações que precisaremos para gerar os relatórios.&lt;br /&gt;
&lt;br /&gt;
De permissões ao arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+x 95percentil.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determine que o dono do arquivo é o usuário zabbix:[[Arquivo:Item Host 95percentil.png|miniaturadaimagem]]&amp;lt;code&amp;gt;chown -R zabbix 95percentil.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos criar um item no host que deseja monitorar, mandando utilizar o script para gerar relatório de um determinado ItemID.&lt;br /&gt;
&lt;br /&gt;
Todo item de monitoramento no Zabbix possui uma identificação numérica chamada de ItemID, para pegar o ItemID é bastante simples.&lt;br /&gt;
&lt;br /&gt;
Acesse a interface web de seu Zabbix, e entre no item utilizado para monitorar o trafego de uma determinada interface de um host.&lt;br /&gt;
&lt;br /&gt;
Na URL vai reparar que estará algo parecido com isso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.0.2.0/zabbix/items.php?form=update&amp;amp;hostid=10260&amp;amp;itemid=29583&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Guarde o número do ItemID que mostra na sua URL, utilizaremos ele.&lt;br /&gt;
&lt;br /&gt;
Crie um novo item no seu host, utilizando a seguinte configuração:&lt;br /&gt;
&lt;br /&gt;
Substitua o Te0/0/1 pela interface que vai monitorar&lt;br /&gt;
&lt;br /&gt;
'''Name: 95% Te0/0/1'''&lt;br /&gt;
&lt;br /&gt;
'''Type: Monitoramento externo'''&lt;br /&gt;
&lt;br /&gt;
Substitua o ITEMID pelo ID que guardou la atras.&lt;br /&gt;
&lt;br /&gt;
'''Key: 95percentile.sh[report,ITEMID]'''&lt;br /&gt;
&lt;br /&gt;
'''Type of information: TEXT'''&lt;br /&gt;
&lt;br /&gt;
'''Update Interval: 1d'''[[Arquivo:Latest Data.png|miniaturadaimagem]]'''New Application: 95%'''&lt;br /&gt;
&lt;br /&gt;
Clique em update, entre no item que acabou de criar e clique em Check Now.&lt;br /&gt;
&lt;br /&gt;
Ao clicar em Check Now, forçará o monitoramento acontecer naquele instante.&lt;br /&gt;
&lt;br /&gt;
Após isso, vá em Monitoring, Latest Data e procure pelo item que acabou de criar, clique em history e deverá mostrar o relatório de todas as vezes que aquela interface foi monitorada por aquele ItemID, excluindo 5% dos maiores resultados.&lt;br /&gt;
&lt;br /&gt;
O monitoramento foi configurado para acontecer todo dia. Nada impede de manipular para ele acontecer todo dia 1 de cada mês.&lt;br /&gt;
[[Arquivo:DadosRecentes.png|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
=== Outras Funções ===&lt;br /&gt;
Além da função de relatório, o script também possui outras 2 funções:&lt;br /&gt;
&lt;br /&gt;
==== 95current ====&lt;br /&gt;
Realiza a verificação do monitoramento do mês atual, exclui os 5% maiores resultados e informa o maior resultado subsequente.&lt;br /&gt;
&lt;br /&gt;
==== fullreport ====&lt;br /&gt;
Traz o relatório completo, sem excluir os 5% maiores resultados.&lt;br /&gt;
&lt;br /&gt;
=== Dicas e Cuidados ===&lt;br /&gt;
&lt;br /&gt;
==== Timer dos itens ====&lt;br /&gt;
Dependendo da função que utilizará do script, ele coletará todos valores monitorados do ultimo mês, o que poderá ser extremamente oneroso para o DB, e certamente fará o Zabbix dar timeout no script.&lt;br /&gt;
&lt;br /&gt;
Supondo que monitore o tráfego de uma determinada interface 1x por minuto, isso causará 108mil registros para o MySQL buscar na tabela.&lt;br /&gt;
&lt;br /&gt;
Recomendo que aumente o tempo de coleta para 5min, o que diminuirá para 21600 itens, e diminuirá a possibilidade de um timeout.&lt;br /&gt;
&lt;br /&gt;
==== LowLevel Discovery ====&lt;br /&gt;
Não recomendo que tente &amp;quot;combar&amp;quot; o script com LLD, pelo mesmo motivo que foi citado acima.&lt;br /&gt;
&lt;br /&gt;
=== Como Colaborar Com o Script? ===&lt;br /&gt;
'''O script em questão foi desenvolvido por mim, e por se tratar de um script OpenSource, está aberto no GitHub para quem quiser colaborar no desenvolvimento dele.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[https://github.com/andrediashexa/95percentil.git https://github.com/andrediashexa/95percentil]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Autor: [[Usuário:Andredias|André Dias]]'''&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>M4viael</name></author>
	</entry>
</feed>