Observium поддерживает только distro
extend oid node, ни другие.
Ваше расширение SNMP-агента работает как ожидалось, и вы можете проверить это, пройдя вручную по purpose
oid узлу.
Observium Poller может быть расширен для опроса дополнительных значений, например, посмотрите, как используется узел "distro" в ./includes/polling/os/unix.inc.php
Sparklines puede ayudar... primero obtengaspark
util e instale elmost
visor de texto .
Este truco muestra una vista abstracta de los primeros 61 sectores de /dev/sda:
for f in `seq 0 1 60` ; do :
printf "%.03i %s\n" $f \
$({ printf '4294967295\n'
sudo dd if=/dev/sda skip=$f bs=512 count=1 2> /dev/null |
od -v -A n -t uI ; } |
spark | sed 's/^.//' )
done | most
Salida en mi sistema (primeras dos líneas abreviadas):
000 ▁▁▁▃▆▆▁▁▄▇▂▆▁▁▆▁▁▁▄▄▄▁...
001 ▁▆▃▇▂▁▁▁▄▃▆▂▄▂▁▁▁▁▁▁▁▂...
Cada fila representa un sector de disco. Las líneas cortas son números pequeños, las líneas altas son números grandes. Cada minigráfico aquí representa un entero sin signo, (4 bytes ), que es relativamente compacto. Si se no cabe todo en la pantalla en most
, utilice la derecha y la izquierda flechas para desplazarse hacia los lados.
Para ver cómo se ven los datos vacíos, reemplace el /dev/sda
con /dev/zero
.
El código anterior se puede usar para escanear un disco, simplemente cambiando el seq
valores. Utilice sudo hdparm -i /dev/sda | grep CurCHS
para obtener el cilindro (pistas ), cabezas y números de sector, que en mi sistema devoluciones:
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
Esto significa que cada 16383er sector es el primer sector de un (virtual )pista. Para un disco en su mayoría en blanco, estos mostrarían dónde está el se acaban los datos.
Cambiar el seq
anterior a seq 0 16383 $((16383*60))
mostraría los primeros sectores de las primeras 61 pistas del disco.
Para hacer que el minigráfico muestre solo 1 byte por carácter, cambie 4294967295
a 255
, y uI
a uC
.
Notas sobre cómo funciona el código:
dd
envía un sector de datos de 512 bytes a od
que genera enteros sin signo, que es el número más grande que spark
entiende.
spark
usa alturas relativas calculadas a partir de la entrada, (prueba spark
<<< '1 2 3 4'
para ver cómo funciona ), lo que significa que a menos que haya un número máximo principal, las diferentes líneas podrían ser diferentes escamas. Para evitar las diferentes escalas engañosas, printf
se utiliza para anteponga el máximo correcto que hace que spark
use uno consistente escama, pero deja un primer char alto no deseado,que es mas tarde eliminado con sed
.
Una técnica similar puede mostrar una visión general borrosa de la densidad de datos de un disco o partición. En lugar de abstraer una pocos bytes en un carácter de chispa, extraiga una muestra de bloques , o más bien las relaciones de compresión relativas de una muestra de bloques.
Se requieren dos útiles más :pigz
, (para la mayoría sin encabezado zlib compresión )ypv
. pv
es realmente opcional, pero una barra de progreso hace que la espera sea menos tediosa.
El código:
d=sda b=512 c=1 m=$(( (512*$(</sys/block/${d/s???*/${d%%[0-9]*}/$d}/size))/b )) \
s=200 i=$((m/s)) ; \
for ((f=0;f<m;f+=i)) ; do
sudo dd if=/dev/${d} skip=$f bs=$b count=$c 2> /dev/null |
pigz -9z |
wc -c
done | pv -l -s $s -i "0.1" \
-F 'Read %b of '"$((s+1)) $((b*c))-byte"' blocks %p%e' |
spark
Salida (en mi HD):
Read 201 of 201 512-byte blocks [=====================================>] 100%
▇███▁█▂██▃█▆▂▂██▃▆███▆█▅▁█████▇▂▇▂▁▇▂▂▂▆▄█▃▅█▁▄█▃▅▅▅▃▃▂▅
▃▂█▆▅▇▁▅▃▆▄▁█▃▇▁▁▂▂▅█████▇█████████▆█████████▅█▁████████
███████████████████████▆███████▆██▃███████▁████████▂███▂
▁▁▁▁▂▂▂▂██████████▁█▁▁▅▃▁▃█▂▅▄▅▁▁
El disco duro $d
está dividido en 200($s
)partes, y la primera el bloque de cada parte se comprime con pigz
, se canaliza a wc
por un byte count, y la lista resultante de números se envía a spark
.
Los 200 spark
caracteres representan las densidades de datos de 200 512 bytes bloques de muestra. Los caracteres rellenos -son bloques con datos densos que no se comprimirán, los caracteres más cortos son datos dispersos que es bastante comprimible.
Establezca s=2000
para una vista más significativa. Las variables están todas en el principio, y se puede ajustar como se desee. Aumente$b
(pero de la forma 512 *2^n solo )o $c
para leer muestras más grandes. Es interesante que aumentar los tamaños de muestra (leyendo un bloque 8K en lugar de 512 byte uno )generalmente dibuja un minigráfico muy similar, lo que implica un 512 byte bloque es lo suficientemente bueno...
dd if=/dev/sda | hd | less
Eso generará todo el contenido del disco en hexadecimal, una pantalla completa a la vez. Las ejecuciones largas de la misma secuencia byte se anotarán y omitirán.