{"id":2162,"date":"2014-10-20T01:11:33","date_gmt":"2014-10-20T03:11:33","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=2162"},"modified":"2014-10-20T01:11:33","modified_gmt":"2014-10-20T03:11:33","slug":"rrdtool-mrtg","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=2162","title":{"rendered":"RRDTool + MRTG"},"content":{"rendered":"<p><span class=\"subtitle\">Pr\u00e9-requisito<\/span><br \/>\n<a href=\"http:\/\/www.hugoazevedo.eti.br\/html\/mrtg_shell.html\" target=\"main\">MRTG<\/a> <span class=\"cmt\">(antes de prosseguir \u00e9 necess\u00e1rio instalar e configurar o MRTG)<\/span><\/p>\n<p>O RRDTool (Round Robin Database Tool) tem a fun\u00e7\u00e3o de aumentar as caracter\u00edscas de ferramentas como o MRTG. No caso do MRTG, os gr\u00e1ficos ficar\u00e3o muito mais detalhados e ser\u00e1 poss\u00edvel sobrepor a limita\u00e7\u00e3o do MRTG em rela\u00e7\u00e3o ao intervalo de tempo para a coleta de dados que \u00e9 de 5 minutos e passar\u00e1 a ser de 1 minuto. Devido a isso, a precis\u00e3o dos gr\u00e1ficos ser\u00e3o maiores. Veja no figura a seguir:<\/p>\n<p>Uma outra vantagem do RRDTool \u00e9 que os gr\u00e1ficos (\/var\/www\/mrtg\/*.png) ser\u00e3o gerados sob demanda, ou seja, somente ser\u00e3o criados no momento em que forem acessados atrav\u00e9s de um browser (scripts cgi). Diferentemente do que acontece com o MRTG que os criam a cada 5 minutos na configura\u00e7\u00e3o padr\u00e3o. Uma desvantagem \u00e9 que o RRDTool exige um servidor de p\u00e1ginas que aceite scripts cgi (ex: APACHE).<\/p>\n<p>Fiz quest\u00e3o de colocar este artigo no site, pois encontrei muita dificuldade para achar bons materiais (dois) que expliquem como fazer o RRDTool funcionar com o MRTG. Apesar de ser bem r\u00e1pida a integra\u00e7\u00e3o, existem alguns detalhes que se n\u00e3o forem feitos, os gr\u00e1ficos n\u00e3o aparecerem. Ent\u00e3o m\u00e3os a obra:<br \/>\n<!--more--><\/p>\n<p><b>Remover e instalar os seguintes pacotes<\/b><br \/>\n<span class=\"cmd\"># apt-get remove &#8211;purge thttpd -y<\/span> <span class=\"cmt\">(removendo o thttpd, pois por padr\u00e3o n\u00e3o funciona com o RRDTool &#8211; scripts cgi)<\/span><br \/>\n<span class=\"cmd\"># apt-get update ; apt-get install rrdtool mrtg-rrd librrds-perl apache2 -y<\/span><\/p>\n<p><b>Entrar no arquivo de configura\u00e7\u00e3o do MRTG e edit\u00e1-lo<\/b><br \/>\n<span class=\"cmd\"># vi \/etc\/mrtg.cfg<\/span><span class=\"cmt\"> (entra no arquivo de configura\u00e7\u00e3o do MRTG. Abaixo est\u00e3o as linhas que precisam ser acrescentadas)<\/span><br \/>\n<span class=\"cmd\">#Title[^]: Traffic Analysis for<\/span> <span class=\"cmt\">(comente esta linha)<\/span><br \/>\n<span class=\"cmd\">LogFormat: rrdtool<\/span> <span class=\"cmt\">(especifica que o formato usado ser\u00e1 do &#8220;rrdtool&#8221;)<\/span><br \/>\n<span class=\"cmd\">Interval: 1<\/span><span class=\"cmt\"> (a coleta de dados ocorrer\u00e1 a cada minuto)<\/span><\/p>\n<p><b>Salve e saia do arquivo de configuran\u00e7\u00e3o. Mundando o script da coleta de dados do processador<\/b><br \/>\n<span class=\"cmd\"># vi \/etc\/mrtg\/mrtg-cpu.sh<\/span> <span class=\"cmt\">(entra no script que captura os dados sobre o processamento. A seguir tem-se a linha que precisa ser modificada)<\/span><br \/>\n<span class=\"cmd\">uptime | cut -d&#8221;,&#8221; -f4 | tr -d &#8216;.&#8217;<\/span><span class=\"cmt\"> (comando original. Este \u00e9 ideal para trabalhar somente com o MRTG, pois captura a m\u00e9dia do processamento que acontece a cada 5 minutos)<\/span><br \/>\n<span class=\"cmd\">uptime | cut -d&#8221; &#8221; -f12 | tr -d &#8216;.&#8217; | tr -d &#8216;,&#8217;<\/span><span class=\"cmt\"> (j\u00e1 este \u00e9 o comando para trabalhar com o RRTool+MRTG, pois captura a m\u00e9dia do processamento que acontece a cada minuto)<\/span><br \/>\n<span class=\"obs\">Obs: a mudan\u00e7a \u00e9 necess\u00e1ria, pois o script original para o MRTG captura a m\u00e9dia a cada 5 minutos, mas com o RRDTool+MRTG \u00e9 necess\u00e1rio colher a m\u00e9dia a cada minuto. Com isso, a precis\u00e3o dos gr\u00e1ficos aumentar\u00e3o. Como pode ser visto no gr\u00e1fico a seguir:<\/span><\/p>\n<p><center><\/center><b>Salve e sai do script. Agora se deve tirar o processo MRTG do ar e inici\u00e1-lo novamente<\/b><br \/>\n<span class=\"cmd\"># killall mrtg<\/span><span class=\"cmt\"> (tira o processo MRTG do ar)<\/span><br \/>\n<span class=\"cmd\"># env LANG=C \/usr\/bin\/mrtg \/etc\/mrtg.cfg<\/span><span class=\"cmt\"> (inicializa o MRTG. Tamb\u00e9m, pode-se digitar simplesmente &#8220;env LANG=C mrtg&#8221;)<\/span><\/p>\n<p><b>Verifica\u00e7\u00e3o do funcionamento RRDTool + MRTG<\/b><br \/>\n<span class=\"cmd\"># ls \/var\/www\/mrtg<\/span><br \/>\n<span class=\"obs\">Obs: entre v\u00e1rios arquivos, devem aparecer alguns com a extens\u00e3o <b>&#8220;.rrd&#8221;<\/b>. Se isto aconteceu, ent\u00e3o se deve seguir com o restante dos procedimentos<\/span><\/p>\n<p><b>Mais procedimentos<\/b><br \/>\n<span class=\"cmd\"># ln -s \/usr\/lib\/cgi-bin\/ \/var\/www\/<\/span><span class=\"cmt\"> (cria um link simb\u00f3lico)<\/span><br \/>\n<span class=\"cmd\"># chown .www-data \/etc\/mrtg.cfg <\/span><span class=\"cmt\">(muda a permiss\u00e3o de grupo para &#8220;www-data&#8221; do arquivo &#8220;\/etc\/mrtg.cfg&#8221;. Isso \u00e9 necess\u00e1rio, pois por seguran\u00e7a o \u00fanico usu\u00e1rio e grupo que pode acessar esse arquivo \u00e9 o &#8220;root&#8221;)<\/span><br \/>\n<span class=\"cmd\"># chmod 640 \/etc\/mrtg.cfg <\/span><span class=\"cmt\">(o arquivo &#8220;\/etc\/mrtg.cfg&#8221; j\u00e1 deveria ter estas permiss\u00f5es por padr\u00e3o, mas caso se tenha feito outros procedimentos que n\u00e3o est\u00e3o neste site, ent\u00e3o se deve executar esse comando. Medida de seguran\u00e7a, pois se outros usu\u00e1rios al\u00e9m do root, www-data e mrtg tiverem o direito de leitura, ent\u00e3o ter\u00e3o acesso aos nomes das comunidades SNMP. Vale lembrar que neste artigo n\u00e3o est\u00e1 sendo usado esse protocolo)<\/span><br \/>\n<span class=\"cmd\"># chown .www-data \/var\/www\/mrtg\/ -R<\/span> <span class=\"cmt\">(muda recursivamente a permiss\u00e3o de grupo para &#8220;.www-data&#8221; do diret\u00f3rio &#8220;\/var\/www\/mrtg\/&#8221;. Necess\u00e1rio, pois o grupo &#8220;www-data&#8221; precisa ter permiss\u00e3o de escrita. N\u00e3o esque\u00e7a do &#8220;-R&#8221; no final do comando)<\/span><br \/>\n<span class=\"cmd\"># chmod g+w \/var\/www\/mrtg\/ -R<\/span> <span class=\"cmt\">(muda recursivamente a permiss\u00e3o do grupo para escrita do diret\u00f3rio \/var\/www\/mrtg\/. Necess\u00e1rio, pois o grupo &#8220;www-data&#8221; precisa ter permiss\u00e3o de escrita para criar e modificar os arquivos &#8220;*.rrd&#8221;. N\u00e3o esque\u00e7a do &#8220;-R&#8221; no final do comando)<\/span><\/p>\n<p><b>Reinicie o servidor Apache<\/b><br \/>\n<span class=\"cmd\"># \/etc\/init.d\/apache2 restart<\/span><\/p>\n<p><b>Agora \u00e9 s\u00f3 tirar o processo MRTG do ar e inici\u00e1-lo novamente<\/b><br \/>\n<span class=\"cmd\"># killall mrtg<\/span><span class=\"cmt\"> (tira o processo MRTG do ar)<\/span><br \/>\n<span class=\"cmd\"># env LANG=C \/usr\/bin\/mrtg \/etc\/mrtg.cfg<\/span><span class=\"cmt\"> (inicializa o MRTG. Tamb\u00e9m, pode-se digitar simplesmente &#8220;env LANG=C mrtg&#8221;)<\/span><\/p>\n<p><b>Abra um browser (konqueror, firefox, iceaweasel, w3m etc) e digite na URL:<\/b><br \/>\n<span class=\"cmd\">http:\/\/IP_servidor\/cgi-bin\/mrtg-rrd.cgi\/<\/span><span class=\"cmt\"> (o IP_servidor dever\u00e1 ser substituido pelo endere\u00e7o IP da m\u00e1quina que foi instalado o RRDTool. Se os gr\u00e1ficos aparecem, ent\u00e3o a instala\u00e7\u00e3o e configura\u00e7\u00e3o foram bem sucedidas)<\/span><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><center><span class=\"title\">Permiss\u00f5es de acesso a determinados IP ou host<\/span><\/center><br \/>\n<span class=\"subtitle\">Edite o arquivo a seguir caso necessite restringir o acesso ao servidor Apache:<\/span><br \/>\n<span class=\"cmd\"># vi \/etc\/apache2\/sites-available\/default<\/span><span class=\"cmt\">(existe um link simb\u00f3lico para esse arquivo em &#8220;\/etc\/apache2\/site s-enabled\/000-default&#8221;)<\/span><br \/>\n<b><span class=\"cmt\">V\u00e3o existir tr\u00eas entradas &#8220;Directory \/var\/www\/&#8221;, &#8220;Directory \/usr\/lib\/cgi-bin&#8221; e &#8220;Directory \/usr\/share\/doc\/&#8221;; <\/span><br \/>\n<span class=\"cmt\">Cada entrada est\u00e1 relacionada aos diret\u00f3rios &#8220;\/var\/www\/&#8221;, &#8220;\/usr\/lib\/cgi-bin&#8221; e &#8220;\/usr\/share\/doc\/&#8221;, respectivamente;<\/span><br \/>\n<span class=\"cmt\">Em outras palavras, correspondem, na mesma ordem, as p\u00e1ginas HTML, Scripts SGI e Documentos do servidor Apache;<\/span><br \/>\n<span class=\"cmt\">Em cada entrada vai existir uma linha chamada &#8220;<span style=\"text-decoration: underline;\">Allow from all<\/span>&#8220;. Basta substituir o &#8220;<span style=\"text-decoration: underline;\">all<\/span>&#8221; pelo o ender\u00e7o IP ou nome de host que podem ter acesso. Coforme as linhas a seguir:<\/span><br \/>\n<\/b><br \/>\n<span class=\"cmd\">Allow from 127.0.0.1<\/span><span class=\"cmt\">(endere\u00e7o IP local)<\/span><br \/>\n<span class=\"cmd\">Allow from 127.0.0.0\/255.0.0.0<\/span><span class=\"cmt\">(endere\u00e7o e m\u00e1scara de subrede local)<\/span><br \/>\n<span class=\"cmd\">Allow from 172.16.200.20<\/span><span class=\"cmt\">(endere\u00e7o IP)<\/span><br \/>\n<span class=\"cmd\">Allow from 172.16.200.0\/255.255.255.0<\/span><span class=\"cmt\">(endere\u00e7o e m\u00e1scara de subrede)<\/span><br \/>\n<span class=\"cmd\">Allow from financeiro01<\/span><span class=\"cmt\">(nome de host)<\/span><br \/>\n<span class=\"cmd\">Allow from matrix.br<\/span><span class=\"cmt\">(somente aos equipamentos desse dom\u00ednio)<\/span><\/p>\n<p><b><span class=\"cmt\">Os endere\u00e7os que estiverem fora deste escopo, n\u00e3o poder\u00e3o acessar \ud83d\ude09 <\/span><br \/>\n<\/b><br \/>\n<b>Reinicie o servidor Apache<\/b><br \/>\n<span class=\"cmd\"># \/etc\/init.d\/apache2 restart<\/span><br \/>\n&lt;br<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><center><span class=\"title\">Limpando os gr\u00e1ficos<\/span><\/center><br \/>\n<b>Algumas vezes \u00e9 necess\u00e1rio ter gr\u00e1ficos limpos com nenhum registro, em outras palavras, quando se deseja que os gr\u00e1ficos sejam gerados de um determinado momento em diante. Para isso, digite os comandos a seguir.<\/b><br \/>\n<span class=\"cmd\"># killall mrtg<\/span><span class=\"cmt\"> (tira o processo MRTG do ar)<\/span><br \/>\n<span class=\"cmd\"># rm \/var\/www\/mrtg\/*<\/span><span class=\"cmt\"> (remove todos os arquivos do diret\u00f3rio digitado)<\/span><br \/>\n<span class=\"obs\">Obs: Muito cuidado com o comando anterior, pois apagar\u00e1 toda captura di\u00e1ria, semanal, mensal e anual j\u00e1 registrada pelo mrtg.<\/span><br \/>\n<span class=\"cmd\"># env LANG=C \/usr\/bin\/mrtg \/etc\/mrtg.cfg<\/span><span class=\"cmt\"> (inicializa o MRTG. Tamb\u00e9m, pode-se digitar simplesmente &#8220;env LANG=C mrtg&#8221;)<\/span><\/p>\n<p><b>Para verificar se realmente os gr\u00e1ficos est\u00e3o limpos, abra um browser (konqueror, firefox, iceaweasel, w3m etc) e digite na URL:<\/b><br \/>\n<span class=\"cmd\">http:\/\/IP_servidor\/cgi-bin\/mrtg-rrd.cgi\/<\/span><span class=\"cmt\"> (o IP_servidor dever\u00e1 ser substituido pelo endere\u00e7o IP da m\u00e1quina que foi instalado o RRDTool. Se os gr\u00e1ficos aparecem, ent\u00e3o a instala\u00e7\u00e3o e configura\u00e7\u00e3o foram bem sucedidas)<\/span><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><center><b>EXPERI\u00caNCIA<\/b><\/center>Caso a m\u00e1quina com o MRTG+RRDTool seja reiniciada ou desligada com ou sem os procedimetos normais, \u00e9 necess\u00e1rio restatar o MRTG, pois alguns gr\u00e1ficos n\u00e3o ser\u00e3o mais atualizados (ficando sem modifica\u00e7\u00e3o) como os que envolvem o tr\u00e1fego de rede. Se isto acontecer, digite os comando abaixo:<\/p>\n<p><span class=\"cmd\"># killall mrtg<\/span><span class=\"cmt\"> (mata o processo mrtg)<\/span><br \/>\n<span class=\"cmd\"># env LANG=C \/usr\/bin\/mrtg \/etc\/mrtg.cfg<\/span><span class=\"cmt\">(executa o MRTG novamente)<\/span><\/p>\n<p>Para automatizar o processo, ou seja, toda vez que o equipamento for reiniciado executar os comandos acima, fa\u00e7a os procedimentos a seguir:<\/p>\n<p><span class=\"cmd\"># vi \/etc\/rc.local<\/span><br \/>\n<span class=\"cmd\">killall mrtg<\/span><span class=\"cmt\"> (acrescente esta linha) <\/span><br \/>\n<span class=\"cmd\">env LANG=C \/usr\/bin\/mrtg \/etc\/mrtg.cfg<\/span><span class=\"cmt\">(acrescente esta linha) <\/span><br \/>\n<span class=\"cmd\">exit 0<\/span> <span class=\"cmt\">(este par\u00e2metro j\u00e1 existe por padr\u00e3o e deve ficar no final do arquivo)<\/span><br \/>\n<span class=\"cmd\">Salve e Saia do arquivo<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00e9-requisito MRTG (antes de prosseguir \u00e9 necess\u00e1rio instalar e configurar o MRTG) O RRDTool (Round Robin Database Tool) tem a fun\u00e7\u00e3o de aumentar as caracter\u00edscas de ferramentas como o MRTG. No caso do MRTG, os gr\u00e1ficos ficar\u00e3o muito mais detalhados e ser\u00e1 poss\u00edvel sobrepor a limita\u00e7\u00e3o do MRTG em rela\u00e7\u00e3o ao intervalo de tempo para [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[455,460,477,91,730,1,42,495,68,501],"tags":[584,745,744],"class_list":["post-2162","post","type-post","status-publish","format-standard","hentry","category-apache2","category-awstats","category-backup-2","category-banco-de-dados","category-clusterweb","category-viazap","category-leitura-recomendada","category-profissional-de-ti","category-redes-2","category-shell-script","tag-mrtg","tag-rrdtool","tag-rrdtool-mrtg"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2162"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2162\/revisions"}],"predecessor-version":[{"id":2163,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2162\/revisions\/2163"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}