Esta e uma ferramenta que acredito eu ser uma das mais utilizadas em todo o mundo! Vemos sua utilizacao em muitos aplicativos open-source como Cacti, Munin, Zenoss, Torrus, Smokeping entre muitos outros. Voce pode ver uma lista deles aqui! RRDTools foi desenvolvido por Tobias Oetiker.Basicamente e possivel criar uma base de dados onde serao armazenadas informacoes como temperatura ou os bytes trafegados por uma interface ao longo do tempo. Qualquer coisa que possui um valor numerico voce pode guardar aqui. Primeiramente e necessario instalar esta ferramenta, caso ela ja nao esteja. Atualmente eu tenho servidores baseado em Debian, entao minha instalacao e feita com a ferramenta aptitude. Consulte a ferramenta de sua distribuicao (yast, emerge, rpm) por este pacote!aptitude install rrdtoolCom este comando sera instalado o aplicativo e suas dependencias serao satisfeitas. Depois da instalacao voce vera que ele possui algumas funcoes. Aqui iremos falar de algumas somente que sao:create: cria uma nova base de dados rrdupdate: atualiza com novos valores uma base de dados rrdgraph: cria um grafico apartir de uma base de dados rrdfetch: possibilita extrair informacao de uma base de dados rrdinfo: mostra informacoes sobre uma base de dados rrdExistem outras funcoes e elas estao descritas (em ingles) neste site. Uma caracteristica muito importante deste tipo de base de dados e que possui um comportamento ciclico, isso faz com que ela mantenha seu tamanho fixo e permite um planejamento de espaco em disco. Claro que com isso se faz necessario a definicao de quanto tempo se deseja guardar uma informacao, pois quando nao existir mais espaco disponivel, automaticamente as informacoes mais antigas serao sobrescritas. Em minha opniao acredito ser uma forma bastante escalonavel de se manter dados armazenados por um periodo.A forma que voce utilizara para "alimentar" esta base de dados de informacoes (Data Sources) depende do que voce possui e da forma que voce julgar mais pratico. O mais comum creio eu e por consultas SNMP (Simple Network Management Protocol) onde e possivel verificar a memoria utilizada por um sistema, quantos usuarios estao conectados em um sistema operacional, e muitas outras possibilidades. Para isso pode-se usar um Script Shell, Perl, PHP. O fato e voce conseguir passar valores para esta ferramenta, a forma voce decide! :DTudo muito simples e muito bonito, porem as diversas informacoes que voce possui em geral podem representar tipos de dados distintos, como por exemplo, temperatura de uma cpu e os bytes trafegados em uma interface! Isso e muito importante no momento de criar uma base de dados rrd pois definira o comportamento de como esses dados serao interpretados e consolidados dentro dela. Com isso em mente, temos disponivel para trabalhar os seguintes tipos de dados com caracteristicas especificas:COUNTER - Este tipo espera que o valor sempre aumente, ou seja, a diferenca do valor atual e o anterior e maior que zero, e salva a variacao deste sobre o tempo.DERIVE - Este e muito similar ao comportamento do COUNTER porem ele permite valores negativos.ABSOLUTE - Este tambem salva a variacao de valores porem ele sempre considera que o anterior e zero.GAUGE - Este possui