InglêsFrancêsEspanhol

favicon do OnWorks

rrdtutorial - Online na nuvem

Execute rrdtutorial no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando rrdtutorial que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


rrdtutorial - Tutorial do RRDtool de Alex van den Bogaerdt

DESCRIÇÃO


RRDtool é escrito por Tobias Oetiker[email protegido]> com contribuições de muitas pessoas
em todo o mundo. Este documento foi escrito por Alex van den Bogaerdt
<[email protegido]> para ajudá-lo a entender o que é RRDtool e o que pode fazer por
você.

A documentação fornecida com o RRDtool pode ser muito técnica para algumas pessoas. Esse
O tutorial está aqui para ajudá-lo a entender os fundamentos do RRDtool. Deve prepará-lo para
leia a documentação você mesmo. Também explica as coisas gerais sobre estatísticas
com foco em networking.

TUTORIAL


importante
Por favor, não pule para frente neste documento! A primeira parte deste documento explica o
básico e pode ser enfadonho. Mas se você não entender o básico, os exemplos não
ser tão significativo para você.

Às vezes as coisas mudam. Este exemplo costumava fornecer números como "0.04" em vez de
"4.00000e-02". Esses são realmente os mesmos números, apenas escritos de forma diferente. Não
ficará alarmado se uma versão futura do rrdtool exibir uma forma de saída ligeiramente diferente.
Os exemplos neste documento estão corretos para a versão 1.2.0 do RRDtool.

Além disso, às vezes ocorrem bugs. Eles também podem influenciar o resultado dos exemplos.
O exemplo speed4.png estava sofrendo com isso (a manipulação de dados desconhecidos em um if-
declaração estava errada). Os dados normais ficarão bem (um bug no rrdtool não duraria muito)
mas casos especiais como NaN, INF e assim por diante podem durar um pouco mais. Tente outra versão se
você pode, ou apenas conviver com isso.

Corrigi o exemplo speed4.png (e adicionei uma nota). Pode haver outros exemplos que
sofrem do mesmo bug ou de um bug semelhante. Tente consertar você mesmo, o que é um ótimo
exercício. Mas, por favor, não envie seu resultado como uma correção para a fonte deste documento.
Discuta na lista de usuários ou escreva para mim.

O Quê is ferramenta RRD?
RRDtool refere-se à ferramenta de banco de dados Round Robin. Round robin é uma técnica que funciona com um
quantidade fixa de dados e um ponteiro para o elemento atual. Pense em um círculo com alguns
pontos traçados na borda. Esses pontos são os locais onde os dados podem ser armazenados. Desenhe um
seta do centro do círculo para um dos pontos; este é o ponteiro. Quando o
os dados atuais são lidos ou gravados, o ponteiro se move para o próximo elemento. Como estamos em um
círculo não há começo nem fim, você pode continuar indefinidamente. Após um
enquanto, todos os lugares disponíveis serão usados ​​e o processo reutiliza automaticamente
Localizações. Dessa forma, o conjunto de dados não aumentará de tamanho e, portanto, não requer
manutenção. RRDtool funciona com bancos de dados Round Robin (RRDs). Ele armazena e recupera
dados deles.

O Quê dados, pode be colocar para dentro an RRD?
Você escolhe, provavelmente caberá, desde que seja algum tipo de dados de série temporal. Esse
significa que você deve ser capaz de medir algum valor em vários pontos no tempo e fornecer este
informações para RRDtool. Se você puder fazer isso, o RRDtool será capaz de armazená-lo. Os valores
deve ser numérico, mas não precisa ser inteiro, como é o caso do MRTG (o próximo
seção fornecerá mais detalhes sobre este aplicativo mais especializado).

Muitos exemplos abaixo falam sobre SNMP, que é um acrônimo para Simple Network Management
Protocolo. "Simples" refere-se ao protocolo. Isso não significa que seja simples de gerenciar ou
monitorar uma rede. Depois de trabalhar neste documento, você deve saber o suficiente para
ser capaz de entender sobre o que as pessoas estão falando. Por enquanto, apenas perceba que o SNMP pode
ser usado para consultar dispositivos quanto aos valores dos contadores que eles mantêm. É o valor daqueles
contadores que queremos armazenar no RRD.

O Quê pode I do com esse ferramenta?
RRDtool originado de MRTG (Multi Router Traffic Grapher). MRTG começou como um pouquinho
script para representar graficamente o uso da conexão de uma universidade à Internet. MRTG foi mais tarde
(ab-) usado como uma ferramenta para representar graficamente outras fontes de dados, incluindo temperatura, velocidade, tensão,
número de impressões e semelhantes.

Muito provavelmente, você começará a usar o RRDtool para armazenar e processar dados coletados via SNMP.
Os dados provavelmente serão bytes (ou bits) transferidos de e para uma rede ou um
computador. Mas também pode ser usado para exibir ondas gigantes, radiação solar, energia
consumo, número de visitantes em uma exposição, níveis de ruído perto de um aeroporto,
temperatura em seu local de férias favorito, temperatura na geladeira e qualquer que seja o seu
a imaginação pode surgir.

Você só precisa de um sensor para medir os dados e ser capaz de alimentar os números no RRDtool.
RRDtool então permite que você crie um banco de dados, armazene dados nele, recupere esses dados e crie
gráficos em formato PNG para exibição em um navegador da web. Essas imagens PNG dependem do
dados que você coletou e podem ser, por exemplo, uma visão geral do uso médio da rede,
ou os picos que ocorreram.

O Quê if I ainda problemas depois de leitura esse documentar?
Em primeiro lugar: leia de novo! Você pode ter perdido algo. Se você não consegue compilar
as fontes e você tem um sistema operacional bastante comum, provavelmente não será culpa do RRDtool.
Pode haver versões pré-compiladas na Internet. Se eles vierem de confiança
fontes, pegue um desses.

Se, por outro lado, o programa funcionar, mas não fornecer os resultados esperados, ele
pode ser um problema para configurá-lo. Revise sua configuração e compare-a com o
exemplos a seguir.

Existe uma lista de discussão e um arquivo dela. Leia a lista por algumas semanas e pesquise o
arquivo. É considerado rude apenas fazer uma pergunta sem pesquisar os arquivos: seu
o problema pode já ter sido resolvido para outra pessoa! Isso é verdade para a maioria, se não
todas, listas de discussão e não apenas para esta em particular. Veja na documentação que
veio com o RRDtool para a localização e uso da lista.

Eu sugiro que você reserve um momento para se inscrever na lista de discussão agora mesmo, enviando um e-mail
para[email protegido]> com o assunto "inscrever-se". Se você quiser
sair dessa lista, basta escrever um e-mail para o mesmo endereço, mas agora com o assunto
"Cancelar subscrição".

Como funciona o dobrador de carta de canal precisarão Você ajudar mim?
Fornecendo algumas descrições detalhadas com exemplos detalhados. Eu suponho que a seguir
as instruções na ordem apresentada lhe darão conhecimento suficiente do RRDtool para
experimente por si mesmo. Se não funcionar da primeira vez, não desista. Releia o
coisas que você entendeu, você pode ter perdido algo.

Seguindo os exemplos, você obtém alguma experiência prática e, ainda mais importante, alguns
informações básicas de como funciona.

Você precisará saber algo sobre números hexadecimais. Se não, comece com
lendo bin_dec_hex antes de continuar aqui.

investimentos primeiro redondo Robin banco de dados
Em minha opinião, a melhor maneira de aprender algo é realmente aprendendo. Por que não começar certo
agora? Vamos criar um banco de dados, colocar alguns valores nele e extrair esses dados novamente. Sua
A saída deve ser igual à saída incluída neste documento.

Começaremos com algumas coisas fáceis e compararemos um carro com um roteador ou compararemos quilômetros
(milhas se desejar) com bits e bytes. É tudo igual: algum número ao longo do tempo.

Suponha que temos um dispositivo que transfere bytes de e para a Internet. Este dispositivo mantém
um contador que começa em zero quando é ligado, aumentando a cada byte que é
transferido. Este contador provavelmente terá um valor máximo. Se este valor for alcançado e
um byte extra é contado, o contador começa do zero. Este é o mesmo que muitos
contadores em todo o mundo, como o contador de quilometragem de um carro.

A maioria das discussões sobre rede fala sobre bits por segundo, então vamos nos acostumar com isso
agora mesmo. Suponha que um byte tenha oito bits e comece a pensar em bits, não em bytes. O contador,
no entanto, ainda conta bytes! No mundo SNMP, a maioria dos contadores são de 32 bits. Este
significa que eles estão contando de 0 a 4294967295. Usaremos esses valores nos exemplos.
O dispositivo, quando solicitado, retorna o valor atual do contador. Nós sabemos a hora que
passou desde a última pergunta, então agora sabemos quantos bytes foram transferidos *** em
*** média por segundo. Isso não é muito difícil de calcular. Primeiro em palavras, depois em
cálculos:

1. Pegue o contador atual e subtraia o valor anterior dele.

2. Faça o mesmo com a hora atual e a anterior (em segundos).

3. Divida o resultado de (1) pelo resultado de (2), o resultado é a quantidade de bytes por
segundo. Multiplique por oito para obter o número de bits por segundo (bps).

bps = (contador_agora - contador_antes) / (tempo_agora - tempo_antes) * 8

Para algumas pessoas, pode ser útil traduzir para um exemplo de automóvel. Não tente isso
exemplo, e se você fizer isso, não me culpe pelos resultados!

Pessoas que não estão acostumadas a pensar em quilômetros por hora podem traduzir mais em milhas por
hora dividindo km por 1.6 (perto o suficiente). Usarei as seguintes abreviações:

m: metro
km: quilômetro (= 1000 metros).
h: hora
s: segundo
km / h: quilômetros por hora
m / s: metros por segundo

Você está dirigindo um carro. Às 12h05 você lê o contador no painel e ele informa
que o carro percorreu 12345 km até aquele momento. Às 12:10 você olha novamente, lê-se
12357 km. Isso significa que você viajou 12 km em cinco minutos. Um cientista iria traduzir
que em metros por segundo e isso faz uma boa comparação em relação ao problema de (bytes
por cinco minutos) versus (bits por segundo).

Viajamos 12 quilômetros, que são 12000 metros. Fizemos isso em cinco minutos ou 300
segundos. Nossa velocidade é 12000m / 300s ou 40 m / s.

Também poderíamos calcular a velocidade em km / h: 12 vezes 5 minutos é uma hora, então temos que
multiplique 12 km por 12 para obter 144 km / h. Para nossos amigos nativos que falam inglês: são 90
mph então não tente este exemplo em casa ou onde eu moro :)

Lembre-se: esses números são apenas médias. Não há como descobrir a partir do
números, se você dirigiu a uma velocidade constante. Há um exemplo mais adiante neste tutorial
isso explica isso.

Espero que você entenda que não há diferença no cálculo de m / s ou bps; apenas o caminho
nós coletamos os dados é diferente. Até mesmo o quilo de quilo é o mesmo que em termos de rede
k também significa 1000.

Agora vamos criar um banco de dados onde podemos manter todos esses números interessantes. O método
usado para iniciar o programa pode diferir ligeiramente de sistema operacional para sistema operacional, mas suponho que você pode descobrir
se funcionar diferente no seu. Certifique-se de não sobrescrever nenhum arquivo em seu
sistema ao executar o seguinte comando e digitar toda a linha como uma linha longa (I
teve que dividi-lo para facilitar a leitura) e pular todos os caracteres '\'.

rrdtool criar teste.rrd \
- iniciar 920804400 \
DS:velocidade:CONTADOR:600:U:U \
RRA: MÉDIA: 0.5: 1: 24 \
RRA: MÉDIA: 0.5: 6: 10

(Digite: "rrdtool create test.rrd --start 920804400 DS ...")

O Quê tem sido criada?
Criamos o banco de dados round robin chamado test (test.rrd) que começa ao meio-dia do dia em que
comecei a escrever este documento, 7 de março de 1999 (esta data se traduz em 920804400
segundos conforme explicado abaixo). Nosso banco de dados contém uma fonte de dados (DS) chamada "velocidade" que
representa um contador. Este contador é lido a cada cinco minutos (esteéo padrão
portanto, você não precisa colocar "--step = 300"). No mesmo banco de dados dois round robin
arquivos (RRAs) são mantidos, uma média dos dados cada vez que é lida (por exemplo, há
nada para a média) e mantém 24 amostras (24 vezes 5 minutos são 2 horas). O outro
calcula a média de 6 valores (meia hora) e contém 10 dessas médias (por exemplo, 5 horas).

RRDtool funciona com carimbos de hora especiais provenientes do mundo UNIX. Este carimbo de hora é o
número de segundos que se passaram desde 1º de janeiro de 1970 UTC. O valor do carimbo de data / hora é
traduzido para a hora local e, portanto, terá uma aparência diferente para fusos horários diferentes.

Provavelmente, você não está na mesma parte do mundo que eu. Isso significa o seu tempo
zona é diferente. Em todos os exemplos em que falo sobre o tempo, as horas podem estar erradas para
tu. Isso tem pouco efeito nos resultados dos exemplos, apenas corrija as horas enquanto
lendo. Por exemplo: onde eu verei "12:05", o pessoal do Reino Unido verá "11:05".

Agora temos que preencher nosso banco de dados com alguns números. Vamos fingir que lemos o
seguintes números:

12:05 12345 km
12:10 12357 km
12:15 12363 km
12:20 12363 km
12:25 12363 km
12:30 12373 km
12:35 12383 km
12:40 12393 km
12:45 12399 km
12:50 12405 km
12:55 12411 km
13:00 12415 km
13:05 12420 km
13:10 12422 km
13:15 12423 km

Preenchemos o banco de dados da seguinte forma:

rrdtool update test.rrd 920804700: 12345 920805000: 12357 920805300: 12363
rrdtool update test.rrd 920805600: 12363 920805900: 12363 920806200: 12373
rrdtool update test.rrd 920806500: 12383 920806800: 12393 920807100: 12399
rrdtool update test.rrd 920807400: 12405 920807700: 12411 920808000: 12415
rrdtool update test.rrd 920808300: 12420 920808600: 12422 920808900: 12423

Isto diz: atualize nosso banco de dados de teste com os seguintes números

hora 920804700, valor 12345
hora 920805000, valor 12357

etc.

Como você pode ver, é possível alimentar mais de um valor no banco de dados em um
comando. Tive que parar em três para facilitar a leitura, mas o máximo real por linha é o sistema operacional
dependente.

Agora podemos recuperar os dados de nosso banco de dados usando "rrdtool fetch":

rrdtool fetch test.rrd AVERAGE --start 920804400 - end 920809200

Ele deve retornar a seguinte saída:

velocidade

920804700: nan
920805000:4.0000000000e-02
920805300:2.0000000000e-02
920805600: 0.0000000000e + 00
920805900: 0.0000000000e + 00
920806200:3.3333333333e-02
920806500:3.3333333333e-02
920806800:3.3333333333e-02
920807100:2.0000000000e-02
920807400:2.0000000000e-02
920807700:2.0000000000e-02
920808000:1.3333333333e-02
920808300:1.6666666667e-02
920808600:6.6666666667e-03
920808900:3.3333333333e-03
920809200: nan
920809500: nan

Observe que você pode obter mais linhas do que o esperado. A razão para isso é que você pede
um intervalo de tempo que termina em 920809200. O número que está escrito atrás de 920809200: no
lista acima cobre o intervalo de tempo de 920808900 a 920809200, EXCLUINDO 920809200. Portanto
para estar do lado certo, você recebe a entrada de 920809200 a 920809500 também, pois
INCLUI 920809200. Você também pode ver "NaN" em vez de "nan", que depende do sistema operacional. "NaN"
significa "Não é um número". Se o seu sistema operacional escrever "U" ou "UNKN" ou algo semelhante que seja
Certo. Se algo mais estiver errado, provavelmente será devido a um erro que você cometeu (assumindo
que meu tutorial está correto, claro :-). Nesse caso: exclua o banco de dados e tente
novamente.

O significado da saída acima ficará claro a seguir.

Tempo para crio alguns gráficos
Tente o seguinte comando:

velocidade do gráfico rrdtool.png \
--iniciar 920804400 --fim 920808000 \
DEF:minhavelocidade=test.rrd:velocidade:MÉDIA \
LINE2: myspeed # FF0000

Isso criará o speed.png que começa às 12:00 e termina às 13:00. Existe uma definição
de uma variável chamada myspeed, usando os dados de RRA "speed" fora do banco de dados "test.rrd".
A linha desenhada tem 2 pixels de altura e representa a variável myspeed. A cor é vermelha
(especificado por sua representação rgb, veja abaixo).

Você notará que o início do gráfico não é às 12h, mas às 00h12. Isto é porque
não temos dados suficientes para determinar a média antes desse período. Isso só vai acontecer quando
você perde algumas amostras, isso não vai acontecer muito, espero.

Se funcionou: parabéns! Se não, verifique o que deu errado.

As cores são compostas de vermelho, verde e azul. Para cada um dos componentes, você especifica
quanto usar em hexadecimal onde 00 significa não incluído e FF significa totalmente incluído.
A "cor" branca é uma mistura de vermelho, verde e azul: FFFFFF A "cor" preta é tudo
cores desativadas: 000000

vermelho # FF0000
verde # 00FF00
azul # 0000FF
magenta # FF00FF (vermelho misturado com azul)
cinza # 555555 (um terço de todos os componentes)

Além disso, você pode (com um RRDtool recente) adicionar um canal alfa (transparência). o
o padrão será "FF", o que significa não transparente.

O PNG que você acabou de criar pode ser exibido usando seu visualizador de imagens favorito. Navegadores da web
exibirá o PNG por meio do URL "file: ///the/path/to/speed.png"

Gráficos com alguns matemática
Ao olhar para a imagem, você percebe que o eixo horizontal está identificado como 12:10, 12:20,
12h30, 12h40 e 12h50. Às vezes, um rótulo não se encaixa (12h e 00h provavelmente
candidatos) para que sejam ignorados.

O eixo vertical exibe o intervalo que inserimos. Fornecemos quilômetros e quando divididos
em 300 segundos, obtemos números muito pequenos. Para ser exato, o primeiro valor foi 12
(12357-12345) e dividido por 300, resulta em 0.04, que é exibido pelo RRDtool como "40 m"
significando "40/1000". O "m" (milli) não tem nada a ver com metros (também m), quilômetros ou
milímetros! RRDtool não sabe sobre as unidades físicas de nossos dados, ele apenas funciona com
números adimensionais.

Se tivéssemos medido nossas distâncias em metros, isso teria sido (12357000-12345000) / 300 =
12000 / 300 = 40.

Como a maioria das pessoas tem uma noção melhor dos números nessa faixa, corrigiremos isso. Poderíamos
recriar nosso banco de dados e armazenar os dados corretos, mas há uma maneira melhor: fazemos alguns
cálculos ao criar o arquivo png!

gráfico rrdtool speed2.png \
--iniciar 920804400 --fim 920808000 \
--rótulo vertical m/s \
DEF:minhavelocidade=test.rrd:velocidade:MÉDIA \
CDEF:realspeed=minhavelocidade,1000,\* \
LINE2: realspeed # FF0000

Observação: preciso escapar do operador de multiplicação * com uma barra invertida. Se eu não, o
sistema operacional pode interpretá-lo e usá-lo para expansão de nome de arquivo. Você também pode colocar
a linha entre aspas assim:

"CDEF:realspeed=minhavelocidade,1000,*" \

Tudo se resume a: é o RRDtool que deve ver *, não o seu shell. E é a sua concha
interpretando \, não RRDtool. Você pode precisar ajustar os exemplos de acordo se acontecer de
use um sistema operacional ou shell que se comporte de maneira diferente.

Depois de visualizar este PNG, você percebe que o "m" (milli) desapareceu. Isso é o que
resultado correto seria. Além disso, um rótulo foi adicionado à imagem. Além das coisas
mencionado acima, o PNG deve ter a mesma aparência.

Os cálculos são especificados na parte CDEF acima e estão em notação polonesa reversa
("RPN"). O que solicitamos que o RRDtool fizesse é: "pegue a fonte de dados myspeed e o número
1000; multiplique aqueles ". Não se preocupe com RPN ainda, será explicado mais tarde em mais
detalhe. Além disso, você pode querer ler meu tutorial sobre CDEFs e o tutorial de Steve Rader sobre RPN.
Mas primeiro termine este tutorial.

Espere! Se pudermos multiplicar os valores por 1000, também deve ser possível exibir
quilômetros por hora com os mesmos dados!

Para alterar um valor que é medido em metros por segundo:

Calcule metros por hora: valor * 3600
Calcular quilômetros por hora: valor / 1000
Juntos, isso resulta em: valor * (3600/1000) ou valor * 3.6

Em nosso banco de dados de exemplo, cometemos um erro e precisamos compensar isso por
multiplicando por 1000. Aplicando essa correção:

valor * 3.6 * 1000 == valor * 3600

Agora vamos criar este PNG e adicionar mais magia ...

gráfico rrdtool speed3.png \
--iniciar 920804400 --fim 920808000 \
--rótulo vertical km/h \
DEF:minhavelocidade=test.rrd:velocidade:MÉDIA \
"CDEF:kmh=minhavelocidade,3600,*" \
CDEF:rápido=kmh,100,GT,kmh,0,SE \
CDEF:bom=kmh,100,GT,0,kmh,SE \
HRULE:100#0000FF:"Máximo permitido" \
AREA:boa#00FF00:"Boa velocidade" \
ÁREA: rápido # FF0000: "Muito rápido"

Nota: aqui usamos outro meio de escapar do operador *, colocando toda a string entre
aspas duplas.

Este gráfico parece muito melhor. A velocidade é mostrada em km / he há até uma linha extra com
a velocidade máxima permitida (na estrada em que viajo). Eu também mudei as cores usadas para
velocidade de exibição e mudou de uma linha para uma área.

Os cálculos são mais complexos agora. Para medições de velocidade dentro do limite de velocidade, eles
como:

Verifique se kmh é maior que 100 (kmh, 100) GT
Se sim, retorne 0, senão kmh (((kmh, 100) GT), 0, kmh) IF

Para valores acima do limite de velocidade:

Verifique se kmh é maior que 100 (kmh, 100) GT
Em caso afirmativo, retorne kmh, senão retorne 0 (((kmh, 100) GT), kmh, 0) IF

Gráficos mágica
Gosto de acreditar que praticamente não há limites para a forma como o gráfico RRDtool pode manipular dados.
Não vou explicar como funciona, mas olhe para o seguinte PNG:

gráfico rrdtool speed4.png \
--iniciar 920804400 --fim 920808000 \
--rótulo vertical km/h \
DEF:minhavelocidade=test.rrd:velocidade:MÉDIA \
CDEF:nonans=minhavelocidade,UN,0,minhavelocidade,IF \
CDEF:kmh=nonans,3600,* \
CDEF:rápido=kmh,100,GT,100,0,SE \
CDEF:mais=kmh,100,GT,kmh,100,-,0,SE \
CDEF:bom=kmh,100,GT,0,kmh,SE \
HRULE:100#0000FF:"Máximo permitido" \
AREA:boa#00FF00:"Boa velocidade" \
AREA:rápido#550000:"Muito rápido" \
PILHA: acima de # FF0000: "Excesso de velocidade"

Lembra da nota no começo? Tive que remover dados desconhecidos deste exemplo. o
'nonans' CDEF é novo, e a 6ª linha (que costumava ser a 5ª linha) costumava ler
'CDEF: kmh = myspeed, 3600, *'

Vamos criar uma página HTML rápida e suja para visualizar os três PNGs:

Velocidade







Nomeie o arquivo como "speed.html" ou semelhante e examine-o no navegador da web.

Agora, tudo que você precisa fazer é medir os valores regularmente e atualizar o banco de dados. Quando você
deseja visualizar os dados, recriar os PNGs e atualizá-los em seu navegador.
(Observação: apenas clicar em recarregar pode não ser suficiente, especialmente quando os proxies estão envolvidos. Experimente
shift-reload ou ctrl-F5).

Atualizações in Realidade
Já usamos o comando "update": ele pegou um ou mais parâmetros na forma de
" : ". Você ficará feliz em saber que pode especificar a hora atual preenchendo
em um "N" como o tempo. Ou você pode usar a função "tempo" em Perl (o exemplo mais curto
neste tutorial):

perl -e 'tempo de impressão, "\ n"'

Como executar um programa em intervalos regulares é específico do sistema operacional. Mas aqui está um exemplo em pseudo
código:

- Pegue o valor e coloque-o na variável "$ speed"
- velocidade de atualização de rrdtool.rrd N: $ velocidade

(não tente fazer isso com nosso banco de dados de teste, vamos usá-lo em outros exemplos)

Isso é tudo. Execute o script acima a cada cinco minutos. Quando você precisa saber o que
gráficos semelhantes, execute os exemplos acima. Você também pode colocá-los em um script. Depois de
executando esse script, veja a página index.html que criamos acima.

Alguns palavras on SNMP
Posso imaginar muito poucas pessoas que serão capazes de obter dados reais de seus carros a cada cinco
minutos. Todas as outras pessoas terão que se contentar com algum outro tipo de contador. Você poderia
medir o número de páginas impressas por uma impressora, por exemplo, as xícaras de café feitas por
a máquina de café, aparelho que conta a eletricidade gasta, sei lá. Qualquer incremento
contador pode ser monitorado e representado graficamente usando o material que você aprendeu até agora. Mais tarde iremos
também pode monitorar outros tipos de valores, como temperatura.

Muitas pessoas interessadas em RRDtool usarão o contador que mantém o controle de octetos (bytes)
transferidos por um dispositivo de rede. Então, vamos fazer isso a seguir. Vamos começar com um
descrição de como coletar dados.

Algumas pessoas farão uma observação de que existem ferramentas que podem fazer essa coleta de dados para
tu. Eles estão certos! No entanto, sinto que é importante que você entenda que eles não são
necessário. Quando você tem que determinar por que as coisas deram errado, você precisa saber como elas
<span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>

Uma ferramenta usada no exemplo foi falada brevemente no início deste
documento, é denominado SNMP. É uma forma de falar com equipamentos em rede. A ferramenta que uso
abaixo é chamado de "snmpget" e é assim que funciona:

snmpget senha do dispositivo OID

or

snmpget -v [versão] -c [senha] OID do dispositivo

Para o dispositivo, você substitui o nome ou o endereço IP do seu dispositivo. Para senha você
use a "string de leitura da comunidade" como é chamada no mundo SNMP. Para alguns dispositivos, o
padrão de "público" pode funcionar, no entanto, isso pode ser desabilitado, alterado ou protegido por
razões de privacidade e segurança. Leia a documentação que acompanha o seu dispositivo ou
.

Depois, há esse parâmetro, chamado OID, que significa "identificador de objeto".

Quando você começa a aprender sobre SNMP, parece muito confuso. Não é tão difícil
quando você olha para a Base de Informações de Gerenciamento ("MIB"). É uma árvore de cabeça para baixo que
descreve os dados, com um único nó como raiz e, a partir daí, vários ramos. Esses
ramos acabam em outro nó, eles se ramificam, etc. Todos os ramos têm um nome e
eles formam o caminho que seguimos até o fim. Os ramos que seguimos são
nomeados: iso, org, dod, internet, mgmt e mib-2. Esses nomes também podem ser escritos como
números e são 1 3 6 1 2 1.

iso.org.dod.internet.mgmt.mib-2 (1.3.6.1.2.1)

Há muita confusão sobre o ponto inicial que alguns programas usam. Não há*
ponto inicial em um OID. No entanto, alguns programas podem usar a parte acima dos OIDs como um
predefinição. Para indicar a diferença entre OIDs abreviados e OIDs completos, eles precisam de um
ponto inicial quando você especifica o OID completo. Freqüentemente, esses programas deixam de fora o
parte padrão ao retornar os dados para você. Para piorar as coisas, eles têm vários
prefixos padrão ...

Ok, vamos continuar para o início do nosso OID: tínhamos 1.3.6.1.2.1 A partir daí, estamos
especialmente interessado no ramo "interfaces" que tem o número 2 (por exemplo, 1.3.6.1.2.1.2
ou 1.3.6.1.2.1.interfaces).

Primeiro, precisamos obter algum programa SNMP. Verifique primeiro se existe um pacote pré-compilado
disponível para o seu sistema operacional. Esta é a forma preferida. Caso contrário, você terá que obter o
fontes você mesmo e compilá-los. A Internet está cheia de fontes, programas, etc. Encontre
informações usando um mecanismo de pesquisa ou o que você preferir.

Suponha que você tenha o programa. Primeiro, tente coletar alguns dados que estão disponíveis na maioria
sistemas. Lembre-se: há um nome curto para a parte da árvore que mais nos interessa
no mundo em que vivemos!

Vou dar um exemplo que pode ser usado no Fedora Core 3. Se não funcionar para você,
percorra o manual do snmp e adapte o exemplo para que funcione.

snmpget -v2c -c público meu roteador system.sysDescr.0

O dispositivo deve responder com uma descrição de si mesmo, talvez vazia. Até que você tenha
uma resposta válida de um dispositivo, talvez usando uma "senha" diferente ou um dispositivo diferente,
não há sentido em continuar.

snmpget -v2c -c público meu roteador interfaces.ifNumber.0

Espero que você obtenha um número como resultado, o número de interfaces. Se sim, você pode continuar
e tente um programa diferente chamado "snmpwalk".

snmpwalk -v2c -c público meu roteador interfaces.ifTable.ifEntry.ifDescr

Se ele retornar com uma lista de interfaces, você está quase lá. Aqui está um exemplo:
[usuário @ host / home / alex] $ snmpwalk -v2c -c público cisco 2.2.1.2

interfaces.ifTable.ifEntry.ifDescr.1 = "BRI0: Canal B 1"
interfaces.ifTable.ifEntry.ifDescr.2 = "BRI0: Canal B 2"
interfaces.ifTable.ifEntry.ifDescr.3 = "BRI0" Hex: 42 52 49 30
interfaces.ifTable.ifEntry.ifDescr.4 = "Ethernet0"
interfaces.ifTable.ifEntry.ifDescr.5 = "Loopback0"

Neste equipamento cisco, gostaria de monitorar a interface "Ethernet0" e da
acima da saída, vejo que é o número quatro. Eu tento:

[user @ host / home / alex] $ snmpget -v2c -c public Cisco 2.2.1.10.4 2.2.1.16.4

interfaces.ifTable.ifEntry.ifInOctets.4 = 2290729126
interfaces.ifTable.ifEntry.ifOutOctets.4 = 1256486519

Portanto, agora tenho dois OIDs para monitorar e eles são (na íntegra, desta vez):

1.3.6.1.2.1.2.2.1.10

e

1.3.6.1.2.1.2.2.1.16

ambos com um número de interface de 4.

Não se deixe enganar, esta não foi minha primeira tentativa. Demorei um pouco para entender
o que todos esses números significam. Ajuda muito quando eles são traduzidos em descritivos
texto ... Pelo menos, quando as pessoas estão falando sobre MIBs e OIDs você sabe o que é tudo
cerca de. Não se esqueça do número da interface (0 se não for dependente da interface) e tente
snmpwalk se você não obtiver uma resposta do snmpget.

Se você entender a seção acima e obter os números de seu dispositivo, continue com
este tutorial. Se não, volte e releia esta parte.

A Real Mundo Exemplo
Que a diversão comece. Primeiro, crie um novo banco de dados. Ele contém dados de dois contadores,
chamados de entrada e saída. Os dados são colocados em arquivos que medem isso. Eles levam 1, 6, 24
ou 288 amostras por vez. Eles também vão para arquivos que mantêm o número máximo. Esse
será explicado mais tarde. O tempo entre as amostras é de 300 segundos, um bom começo
ponto, que é o mesmo que cinco minutos.

1 amostra "média" permanece 1 período de 5 minutos
6 amostras em média tornam-se uma média em 30 minutos
24 amostras em média tornam-se uma média em 2 horas
288 amostras em média tornam-se uma média em 1 dia

Vamos tentar ser compatível com o MRTG, que armazena cerca da seguinte quantidade de dados:

600 amostras de 5 minutos: 2 dias e 2 horas
600 amostras de 30 minutos: 12.5 dias
600 amostras de 2 horas: 50 dias
732 amostras de 1 dia: 732 dias

Esses intervalos são anexados, de modo que a quantidade total de dados armazenados no banco de dados é
aproximadamente 797 dias. RRDtool armazena os dados de forma diferente, ele não inicia o "semanal"
arquivo onde o arquivo "diário" parou. Para ambos os arquivos, os dados mais recentes serão
perto de "agora" e, portanto, precisaremos manter mais dados do que o MRTG faz!

Nós vamos precisar:

600 amostras de 5 minutos (2 dias e 2 horas)
700 amostras de 30 minutos (2 dias e 2 horas, mais 12.5 dias)
775 amostras de 2 horas (acima de + 50 dias)
797 amostras de 1 dia (acima de + 732 dias, arredondado para 797)

rrdtool criar meu roteador.rrd \
DS:entrada:CONTADOR:600:U:U \
DS:saída:CONTADOR:600:U:U \
RRA: MÉDIA: 0.5: 1: 600 \
RRA: MÉDIA: 0.5: 6: 700 \
RRA: MÉDIA: 0.5: 24: 775 \
RRA: MÉDIA: 0.5: 288: 797 \
RRA: MAX: 0.5: 1: 600 \
RRA: MAX: 0.5: 6: 700 \
RRA: MAX: 0.5: 24: 775 \
RRA: MAX: 0.5: 288: 797

A próxima coisa a fazer é coletar dados e armazená-los. Aqui está um exemplo. Está escrito
parcialmente em pseudo código, você terá que descobrir o que fazer exatamente em seu sistema operacional para fazer
funciona.

embora não seja o fim do universo
do
obter resultado de
comunidade de roteador snmpget 2.2.1.10.4
na variável $ em
obter resultado de
comunidade de roteador snmpget 2.2.1.16.4
na variável $ out

atualização do rrdtool myrouter.rrd N: $ in: $ out

espere 5 minutos
feito

Então, depois de coletar os dados de um dia, tente criar uma imagem usando:

gráfico rrdtool myrouter-day.png --start -86400 \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:AVERAGE \
AREA:inoctets#00FF00:"No trânsito" \
LINE1: outoctets # 0000FF: "Tráfego de saída"

Isso deve produzir uma imagem com tráfego de um dia. Um dia é 24 horas de 60
minutos de 60 segundos: 24 * 60 * 60 = 86400, começamos agora menos 86400 segundos. Nós definimos
(com DEFs) inoctets e outoctets como os valores médios do banco de dados myrouter.rrd
e desenhe uma área para o tráfego "de entrada" e uma linha para o tráfego "de saída".

Visualize a imagem e continue registrando os dados por mais alguns dias. Se quiser, você pode tentar o
exemplos do banco de dados de teste e veja se você pode obter várias opções e cálculos para
<span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>

Sugestão: Exibir em bytes por segundo e em bits por segundo. Faça os gráficos Ethernet
fica vermelho se tiver mais de quatro megabits por segundo.

Consolidação Funções
Alguns parágrafos atrás, mencionei a possibilidade de manter os valores máximos em vez de
os valores médios. Vamos examinar isso um pouco mais.

Lembre-se de todas as coisas sobre a velocidade do carro. Suponha que dirigimos a 144 km / h durante 5
minutos e depois foram parados pela polícia por 25 minutos. No final da palestra nós
pegaria nosso laptop e criaria e veria a imagem tirada do banco de dados. Se olharmos para
o segundo RRA que criamos, teríamos a média de 6 amostras. As amostras
medido seria 144 + 0 + 0 + 0 + 0 + 0 = 144, dividido por 30 minutos, corrigido para o erro por
1000, traduzido em km / h, com resultado de 24 km / h. Eu ainda conseguiria um ingresso, mas não
para acelerar mais :)

Obviamente, neste caso, não devemos olhar para as médias. Em alguns casos, eles são úteis.
Se você quiser saber quantos km você viajou, a imagem média seria a correta
um para olhar. Por outro lado, para a velocidade em que viajamos, os números máximos
visto é muito mais interessante. Mais tarde, veremos mais tipos.

É o mesmo para dados. Se você quiser saber a quantidade, olhe as médias. Se você quiser
para saber a taxa, olhe para o máximo. Com o tempo, eles se distanciarão cada vez mais. No
o último banco de dados que criamos, existem dois arquivos que mantêm os dados por dia. o
arquivo que mantém as médias mostrará números baixos, o arquivo que mostra os máximos terá
números mais altos.

Para o meu carro, isso se traduziria em médias por dia de 96/24 = 4 km / h (já que eu viajo cerca de 94
quilômetros por dia) durante os dias úteis, e máximas de 120 km / h (minha velocidade máxima que eu
chegar todos os dias).

Grande diferença. Não olhe para o segundo gráfico para estimar as distâncias que viajo
e não olhe para o primeiro gráfico para estimar minha velocidade. Isso funcionará se as amostras forem
juntos, já que estão em cinco minutos, mas não se você fizer a média.

Em alguns dias, faço uma longa cavalgada. Se eu for pela Europa e viajar por 12 horas, o
o primeiro gráfico aumentará para cerca de 60 km / h. O segundo mostrará 180 km / h. Isso significa que
Eu viajei uma distância de 60 km / h vezes 24 h = 1440 km. Eu fiz isso com uma velocidade maior e
um máximo em torno de 180 km / h. No entanto, provavelmente não significa que eu viajei por 8 horas
a uma velocidade constante de 180 km / h!

Este é um exemplo real: siga o fluxo pela Alemanha (rápido!) E pare algumas vezes para
gás e café. Dirija devagar pela Áustria e Holanda. Tenha cuidado no
montanhas e aldeias. Se você olhar para os gráficos criados a partir de cinco minutos
médias você obteria uma imagem totalmente diferente. Você veria os mesmos valores no
gráficos de média e máxima (desde que eu tenha medido a cada 300 segundos). Você seria capaz de
ver quando eu parei, quando estava em alta velocidade, quando dirigi em estradas rápidas etc.
a granularidade dos dados é muito maior, então você pode ver mais. No entanto, isso leva 12
amostras por hora, ou 288 valores por dia, então seriam muitos dados em um período mais longo
de tempo. Portanto, calculamos a média, eventualmente, para um valor por dia. A partir desse valor, nós
não pode ver muitos detalhes, é claro.

Certifique-se de entender os últimos parágrafos. Não há valor em apenas uma linha e um
poucos eixos, você precisa saber o que eles significam e interpretar os dados de forma adequada.
Isso é verdadeiro para todos os dados.

O maior erro que você pode cometer é usar os dados coletados para algo que não é
adequado para. Você estaria melhor se não tivesse o gráfico.

Vamos rever o que Você agora rede de apoio social sabemos
Você sabe como criar um banco de dados e pode inserir dados nele. Você pode obter os números
novamente criando uma imagem, faça cálculos com os dados do banco de dados e veja o resultado
em vez dos dados brutos. Você sabe sobre a diferença entre as médias e o máximo, e
quando usar qual (ou pelo menos você deve ter uma ideia).

RRDtool pode fazer mais do que aprendemos até agora. Antes de continuar com o resto
deste documento, recomendo que você releia desde o início e tente algumas modificações no
exemplos. Certifique-se de entender tudo completamente. Vai valer a pena o esforço e ajuda
você não só com o resto deste tutorial, mas também no seu dia a dia de monitoramento longo
depois de ler esta introdução.

Data fonte Tipos
Tudo bem, você quer continuar. Bem-vindo de volta e prepare-se para uma velocidade maior em
os exemplos e explicações.

Você sabe que, para visualizar um contador ao longo do tempo, é necessário pegar dois números e
divida a diferença deles entre o tempo decorrido. Isso faz sentido para os exemplos
Eu te dei, mas existem outras possibilidades. Por exemplo, sou capaz de recuperar o
temperatura do meu roteador em três lugares, ou seja, a entrada, o chamado ponto quente e
o escapamento. Esses valores não são contadores. Se eu pegar a diferença das duas amostras
e dividir isso por 300 segundos, eu estaria pedindo a mudança de temperatura por segundo.
Esperançosamente, isso é zero! Caso contrário, a sala do computador provavelmente está pegando fogo :)

Então o que nós podemos fazer? Podemos dizer ao RRDtool para armazenar os valores que medimos diretamente à medida que eles
são (isso não é inteiramente verdade, mas perto o suficiente). Os gráficos que fazemos serão muito parecidos
melhor, eles mostrarão um valor bastante constante. Eu sei quando o roteador está ocupado (funciona
-> usa mais eletricidade -> gera mais calor -> a temperatura sobe). eu sei
quando as portas são deixadas abertas (a sala tem ar condicionado) -> o ar quente do resto
do edifício flui para a sala de informática -> a temperatura de entrada aumenta). Etc. o
tipo de dados que usamos ao criar o banco de dados antes era contador, agora temos um diferente
tipo de dados e, portanto, um nome diferente para ele. É denominado MEDIDOR. Existem mais dados desse tipo
tipos:

- CONTADOR já conhecemos este
- MEDIDOR, acabamos de aprender este
- DERIVA
- ABSOLUTO

Os dois tipos adicionais são DERIVE e ABSOLUTE. Absoluto pode ser usado como contador com
uma diferença: o RRDtool assume que o contador é zerado quando é lido. Ou seja: seu delta é
conhecido sem cálculo pelo RRDtool, enquanto o RRDtool precisa calculá-lo para o contador
modelo. Exemplo: nosso primeiro exemplo (12345, 12357, 12363, 12363) seria: desconhecido, 12, 6,
0. O resto dos cálculos permanecem os mesmos. O outro, derivar, é como contador.
Ao contrário do contador, ele também pode diminuir, portanto, pode ter um delta negativo. Novamente, o resto do
os cálculos permanecem os mesmos.

Vamos experimentar todos:

rrdtool criar tudo.rrd --start 978300900 \
DS:a:CONTADOR:600:U:U \
DS:b:GAUGE:600:U:U \
DS:c:DERIVAR:600:U:U \
DS:d:ABSOLUTO:600:U:U \
RRA: MÉDIA: 0.5: 1: 10
rrdtool atualizar tudo.rrd \
978301200:300:1:600:300 \
978301500:600:3:1200:600 \
978301800:900:5:1800:900 \
978302100:1200:3:2400:1200 \
978302400:1500:1:2400:1500 \
978302700:1800:2:1800:1800 \
978303000:2100:4:0:2100 \
978303300:2400:6:600:2400 \
978303600:2700:4:600:2700 \
978303900:3000:2:1200:3000
gráfico rrdtool all1.png -s 978300600 -e 978304200 -h 400 \
DEF:linea=all.rrd:a:AVERAGE LINE3:linea#FF0000:"Linha A" \
DEF:lineb=all.rrd:b:AVERAGE LINE3:lineb#00FF00:"Linha B" \
DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Linha C" \
DEF: alinhado = all.rrd: d: AVERAGE LINE3: alinhado # 000000: "Linha D"

ferramenta RRD para da Microscópio
· A linha A é do tipo CONTADOR, por isso deve incrementar continuamente e o RRDtool deve calcular
as diferenças. Além disso, o RRDtool precisa dividir a diferença pela quantidade de tempo
prescrito. Isso deve terminar como uma linha reta em 1 (os deltas são 300, o tempo é


· A linha B é do tipo MEDIDOR. Esses são valores "reais", então eles devem corresponder ao que colocamos em: a
tipo de onda.

· A linha C é do tipo DERIVE. Deve ser um contador que pode diminuir. Isso acontece entre
2400 e 0, com 1800 entre eles.

· A linha D é do tipo ABSOLUTO. Isso é como contador, mas funciona em valores sem
calculando a diferença. Os números são os mesmos e como você pode ver (espero) isso
tem um resultado diferente.

Isso se traduz nos seguintes valores, começando às 23:10 e terminando às 00:10 do próximo
dia (onde "u" significa desconhecido / não plotado):

- Linha A: uu 1 1 1 1 1 1 1 1 1 u
- Linha B: u 1 3 5 3 1 2 4 6 4 2 u
- Linha C: uu 2 2 2 0 -2 -6 2 0 2 u
- Linha D: u 1 2 3 4 5 6 7 8 9 10 u

Se o seu PNG mostrar tudo isso, você sabe que inseriu os dados corretamente, o RRDtool
executável está funcionando corretamente, seu visualizador não te engana e você entrou com sucesso
o ano 2000 :)

Você pode tentar o mesmo exemplo quatro vezes, cada vez com apenas uma das linhas.

Vamos revisar os dados novamente:

· Linha A: 300,600,900 e assim por diante. O delta do contador é uma constante 300, assim como o tempo
delta. Um número dividido por si mesmo é sempre 1 (exceto quando dividido por zero que é
indefinido / ilegal).

Por que o primeiro ponto é desconhecido? Nós sabemos o que colocamos no banco de dados,
direito? Verdade, mas não tínhamos um valor para calcular o delta, então não sabemos
onde começamos. Seria errado supor que começamos do zero, então não o fazemos!

· Linha B: Não há nada para calcular. Os números são como são.

· Linha C: Novamente, o valor inicial é desconhecido. A mesma história é válida para a linha A. Em
neste caso, os deltas não são constantes, portanto a linha também não o é. Se nós colocássemos
os mesmos números no banco de dados que fizemos para a linha A, teríamos obtido o mesmo
linha. Ao contrário do contador de tipo, este tipo pode diminuir e espero mostrar a você mais tarde por que
isso faz a diferença.

· Linha D: Aqui o dispositivo calcula os deltas. Portanto, sabemos o primeiro delta e
é traçado. Tivemos a mesma entrada da linha A, mas o significado dessa entrada é
diferente e, portanto, a linha é diferente. Neste caso, os deltas aumentam a cada vez
com 300. O delta de tempo permanece em 300 constante e, portanto, a divisão dos dois
dá valores crescentes.

Contador Wraps
Existem mais alguns princípios básicos para mostrar. Algumas opções importantes ainda precisam ser abordadas e nós
ainda não olhei os envoltórios do contador. Primeiro a embalagem do contador: Em nosso carro, notamos que o
O contador mostra 999987. Viajamos 20 km e o contador deve ir para 1000007. Infelizmente,
há apenas seis dígitos em nosso contador, então ele realmente mostra 000007. Se traçarmos isso
em um tipo DERIVE, isso significaria que o contador foi atrasado 999980 km. Não era, e
tem que haver alguma proteção para isso. Esta proteção está disponível apenas para o tipo
CONTADOR que deve ser usado para este tipo de contraforte de qualquer maneira. Como funciona? Modelo
contador nunca deve diminuir e, portanto, RRDtool deve assumir que está embrulhado se diminuir
diminuir! Se o delta for negativo, isso pode ser compensado adicionando o máximo
valor do contador + 1. Para o nosso carro seria:

Delta = 7 - 999987 = -999980 (em vez de 1000007-999987 = 20)

Delta real = -999980 + 999999 + 1 = 20

No momento em que este documento foi escrito, o RRDtool conhecia contadores de 32 bits ou
64 bits de tamanho. Esses contadores podem lidar com os seguintes valores diferentes:

- 32 bits: 0..4294967295
- 64 bits: 0..18446744073709551615

Se esses números parecerem estranhos para você, você pode vê-los em sua forma hexadecimal:

- 32 bits: 0..FFFFFFFF
- 64 bits: 0..FFFFFFFFFFFFFFFF

RRDtool trata ambos os contadores da mesma forma. Se ocorrer um estouro e o delta será
negativo, RRDtool primeiro adiciona o máximo de um pequeno contador + 1 ao delta. Se o delta
ainda é negativo, tinha que ser o grande balcão que embrulhou. Adicione o máximo possível
valor do contador grande + 1 e subtrair o pequeno valor adicionado erroneamente.

Há um risco nisso: suponha que o grande contador embrulhado enquanto adiciona um grande delta, ele
poderia acontecer, teoricamente, que a adição do menor valor tornaria o delta positivo.
Nesse caso improvável, os resultados não seriam corretos. O aumento deve ser quase tão
alto como o valor máximo do contador para que isso aconteça, então é provável que você
vários outros problemas também e este problema em particular nem valeria a pena
pensando sobre. Mesmo assim, eu incluí um exemplo, para que você possa julgar por si mesmo.

A próxima seção fornece alguns exemplos numéricos para contra-moldes. Tente fazer o
cálculos você mesmo ou apenas acredite em mim se sua calculadora não consegue lidar com os números :)

Números de correção:

- 32 bits: (4294967295 + 1) = 4294967296
- 64 bits: (18446744073709551615 + 1)
- correção 1 = 18446744069414584320

Antes: 4294967200
Aumento: 100
Deve se tornar: 4294967300
Mas realmente é: 4
Delta: -4294967196
Correção 1: -4294967196 + 4294967296 = 100

Antes: 18446744073709551000
Aumento: 800
Deve se tornar: 18446744073709551800
Mas realmente é: 184
Delta: -18446744073709550816
Correção1: -18446744073709550816
+ 4294967296 = -18446744069414583520
Correção2: -18446744069414583520
18446744069414584320 + = 800

Antes: 18446744073709551615 (valor máximo)
Aumento: 18446744069414584320 (aumento absurdo, mínimo para
Deve se tornar: 36893488143124135935 este exemplo para funcionar)
Mas realmente é: 18446744069414584319
Delta: -4294967296
Correção 1: -4294967296 + 4294967296 = 0
(não negativo -> sem correção 2)

Antes: 18446744073709551615 (valor máximo)
Aumento: 18446744069414584319 (um aumento a menos)
Deve se tornar: 36893488143124135934
Mas realmente é: 18446744069414584318
Delta: -4294967297
Correção 1: -4294967297 + 4294967296 = -1
Correção 2: -1 + 18446744069414584320 = 18446744069414584319

Como você pode ver nos dois últimos exemplos, você precisa de números estranhos para que o RRDtool falhe
(desde que esteja livre de bugs, é claro), então isso não deveria acontecer. No entanto, SNMP ou qualquer outra coisa
método escolhido para coletar os dados, também pode relatar números errados ocasionalmente. Nós
não pode evitar todos os erros, mas existem algumas coisas que podemos fazer. O RRDtool "criar"
comando leva dois parâmetros especiais para isso. Eles definem o mínimo e o máximo permitido
valores. Até agora, usamos "U", que significa "desconhecido". Se você fornecer valores para um ou ambos
deles e se RRDtool receber pontos de dados que estão fora desses limites, ele irá ignorar
esses valores. Para um termômetro em graus Celsius, o mínimo absoluto é um pouco abaixo
-273. Para meu roteador, posso presumir que esse mínimo é muito maior, então eu o configuraria para 10,
onde, como a temperatura máxima, eu definiria para 80. Qualquer valor mais alto e o dispositivo estaria fora
de ordem.

Pela velocidade do meu carro, eu nunca esperaria números negativos e também não esperaria
uma velocidade superior a 230. Qualquer outra coisa, e deve ter havido um erro. Lembre o
oposto não é verdade, se os números passarem nesta verificação, isso não significa que eles são
correto. Sempre julgue o gráfico com uma dose saudável de suspeita se ele parecer estranho para você.

Data Reamostragem
Uma característica importante do RRDtool ainda não foi explicada: é virtualmente impossível
coletar dados e alimentá-los no RRDtool em intervalos exatos. RRDtool, portanto, interpola
os dados, para que sejam armazenados em intervalos exatos. Se você não sabe o que isso significa ou como
funciona, então aqui está a ajuda que você procura:

Suponha que um contador aumente exatamente um para cada segundo. Você quer medi-lo em 300
intervalos de segundos. Você deve recuperar valores que estão exatamente 300 separados. No entanto, devido a
várias circunstâncias você está alguns segundos atrasado e o intervalo é 303. O delta irá
também ser 303 nesse caso. Obviamente, RRDtool não deve colocar 303 no banco de dados e fazer
você acredita que o contador aumentou 303 em 300 segundos. Este é o lugar onde RRDtool
interpola: altera o valor 303 como se tivesse sido armazenado anteriormente e irá
ser 300 em 300 segundos. Da próxima vez, você está exatamente no momento certo. Isso significa que o
o intervalo atual é de 297 segundos e também o contador aumentou em 297. Novamente, RRDtool
interpola e armazena 300 como deveria ser.

no RRD na realidade

tempo + 000: 0 delta = "U" tempo + 000: 0 delta = "U"
hora + 300: 300 delta = 300 hora + 300: 300 delta = 300
hora + 600: 600 delta = 300 hora + 603: 603 delta = 303
hora + 900: 900 delta = 300 hora + 900: 900 delta = 297

Vamos criar dois bancos de dados idênticos. Eu escolhi o intervalo de tempo 920805000 a 920805900 como
isso vai muito bem com os números de exemplo.

rrdtool criar segundos1.rrd \
- iniciar 920804700 \
DS:segundos:CONTADOR:600:U:U \
RRA: MÉDIA: 0.5: 1: 24

Faça uma cópia

para Unix: cp segundos1.rrd segundos2.rrd
para Dos: copiar segundos1.rrd segundos2.rrd
para vms: como eu saberia :)

Coloque alguns dados

rrdtool atualização segundos1.rrd \
920805000:000 920805300:300 920805600:600 920805900:900
rrdtool atualização segundos2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900

Criar saída

gráfico rrdtool segundos1.png \
--iniciar 920804700 --fim 920806200 \
--altura 200 \
--limite superior 1.05 --limite inferior 0.95 --rígido \
DEF:segundos=segundos1.rrd:segundos:MÉDIA \
CDEF:desconhecido=segundos,UN \
LINHA2:segundos#0000FF \
ÁREA: desconhecido # FF0000
gráfico rrdtool segundos2.png \
--iniciar 920804700 --fim 920806200 \
--altura 200 \
--limite superior 1.05 --limite inferior 0.95 --rígido \
DEF:segundos=segundos2.rrd:segundos:MÉDIA \
CDEF:desconhecido=segundos,UN \
LINHA2:segundos#0000FF \
ÁREA: desconhecido # FF0000

Visualize as duas imagens juntas (adicione-as ao arquivo index.html) e compare. Ambos os gráficos
deve mostrar o mesmo, apesar da entrada ser diferente.

EMBRULHAR


É hora de encerrar este tutorial. Cobrimos todos os princípios básicos para que você seja capaz de
trabalhar com RRDtool e ler a documentação adicional disponível. Tem muito mais
para descobrir sobre RRDtool e você encontrará mais e mais usos para este pacote. Você pode
crie gráficos facilmente usando apenas os exemplos fornecidos e usando apenas o RRDtool. Você também pode
use um dos front-ends para RRDtool que estão disponíveis.

LISTA DE CORREIO


Lembre-se de se inscrever na lista de discussão RRDtool. Mesmo se você não estiver respondendo a e-mails
que aparecem, isso ajuda você e o resto dos usuários. Muitas das coisas que eu sei
sobre MRTG (e, portanto, sobre RRDtool) que aprendi apenas lendo a lista sem
postando nele. Não precisei fazer as perguntas básicas, pois elas são respondidas no FAQ
(leia!) e em vários e-mails de outros usuários. Com milhares de usuários em todo o
mundo, sempre haverá pessoas que fazem perguntas que você pode responder porque você leu
esta e outras documentações e eles não o fizeram.

Use rrdtutorial online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Compilador pascal gratuito
    Compilador pascal gratuito
    Um compilador Pascal de 32/64/16 bits para
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS e DOS;
    compatível semanticamente com...
    Baixe o Compilador Pascal Gratuito
  • 2
    Informações Canon EOS DIGITAL
    Informações Canon EOS DIGITAL
    Canon não tem contagem de obturador
    incluído na informação EXIF ​​de um
    arquivo de imagem, ao contrário de Nikon e
    Pentax. Não há nenhuma base oficial da Canon
    aplicativo ...
    Baixe informações da Canon EOS DIGITAL
  • 3
    rEFInd
    rEFInd
    rEFInd é um fork do boot rEFIt
    Gerente. Como o rEFIt, o rEFInd pode
    detectar automaticamente sua inicialização EFI instalada
    carregadores e apresenta uma bela GUI
    menu da opção de inicialização ...
    Baixar rEFInd
  • 4
    Express Luke GSI
    Express Luke GSI
    Esta página de download do SourceForge era para
    conceder aos usuários o download da minha fonte construída
    GSIs, baseados na grande teoria de Phhusson
    trabalhos. Eu construo o Android Pie e
    Android 1 ...
    Baixar ExpressLuke GSI
  • 5
    Caster de música
    Caster de música
    Music Caster é um reprodutor de música de bandeja
    que permite que você transmita sua música local para um
    Dispositivo Google Cast. Na primeira corrida,
    você precisará clicar na seta em seu
    tas ...
    Baixar Music Caster
  • 6
    PyQtGenericName
    PyQtGenericName
    PyQt são as ligações do Python para
    Plataforma cruzada Qt da Digia
    estrutura de desenvolvimento de aplicativos. Isto
    suporta Python v2 e v3 e Qt v4 e
    Qt v5. PyQt está disponível...
    Baixar PyQt
  • Mais "

Comandos Linux

Ad