En entradas
anteriores habíamos visto como instalar Nagios, Pnp4nagios, mrtg y Nagvis. En
estos días probando Grafana una potente herramienta para elaborar tableros que
soporta varias fuente de datos, elaboré unos dashboard desde PNP4nagios, sin embargo,
se me presentó un inconveniente al intentar leer los datos desde MRTG, por lo
que revisando conocí de esta herramienta
Telegraf que al integrarla con una base de datos que soporta grafana como
InfluxDB, por lo que me puse manos a la obra e instalar estas dos potentes
herramientas para monitorear los dispositivos de red, como sabrán mi
preferencia con Centos por lo que empecemos:
1. Primero saber que mi sistema
operativo está actualizado:
sudo yum -y
update
2. Agregar repositorio RPM Influxdata
sudo tee
/etc/yum.repos.d/influxdb.repo<<EOF
[influxdb]
name = InfluxDB Repository - RHEL
baseurl = https://repos.influxdata.com/rhel/8/x86_64/stable/
enabled = 1
gpgcheck = 0
gpgkey = https://repos.influxdata.com/influxdb.keyProcedemos a instalar
Telegraf
EOF
sudo yum -y
install telegraf
3. Configuraremos Telegraf
sudo nano
/etc/telegraf/telegraf.conf
4. Agregamos las líneas para enviar las
métricas a InfluxDB o puedes quitarle el comentario
[[outputs.influxdb]]
urls =
["http://127.0.0.1:8086"]
database = "telegraf"
##
HTTP Basic Auth
username
= "telegraf"
password
= "telegraf"
5. Ahora indicamos para que el servicio
inicie automáticamente
sudo
systemctl enable telegraf
6. Ahora iniciamos el servicio
Systemctl
start telegraf
7. Instalamos InfluxDB
sudo yum -y
install influxdb
8. Iniciamos y habilitamos InfluxDB
sudo systemctl enable influxdb
sudo systemctl start influxdb
9. Configuramos Influxdb
influx
> create
database telegraf
> show
databases
> create
user telegraf with password 'telegraf'
> exit
10. Configurar HTTPS en Influxdb
11. Instalamos los paquetes necesarios
Yum install
gnutls-utils
12. Vamos a crear los certificados para
ellos creamos ingresamos al directorio /etc/ssl
cd /etc/ssl
sudo mkdir influxdb && cd influxdb
sudo certtool --generate-privkey --outfile server-key.pem --bits 2048
13. Creamos la clave pública para
nuestro servidor influxdb
sudo
certtool --generate-self-signed --load-privkey server-key.pem --outfile
server-cert.pem
14. Ahora habilitaremos HTTPS en nuestro
servidor influxdb
Nos dirigimos al directorio
/etc/influxdb/influxdb.conf y modificamos las siguientes líneas:
# Determines whether HTTPS is enabled.
https-enabled = true
# The SSL certificate to use when HTTPS is
enabled.
https-certificate =
"/etc/ssl/influxdb/server-cert.pem"
# Use a separate private key location.
https-private-key =
"/etc/ssl/influxdb/server-key.pem"
15. Reiniciamos el servicio de Influxdb
y asegúrese que no de error
Systemctl restart influxdb
16. Configurar Telegarf para que se
conecte por https
Editamos el archivo conf que se encuentra en el
siguiente directorio /etc/telegraf/telegraf.conf
# Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]
# https, not http!
urls = ["https://127.0.0.1:8086"]
## Use TLS but skip chain & host
verification
insecure_skip_verify = true
17. Reiniciamos Telegraf
systemctl restart telegraf
18. Explorando tus métricas en InfluxDB
influx -ssl -unsafeSsl -username 'telegraf'
-password 'telegraf'
Connected to http://localhost:8086 version
1.7.7
InfluxDB shell version: 1.7.7
> USE telegraf
> SELECT * FROM cpu WHERE time > now() -
30s
19. Configurar la fuente de datos de
Grafana
Abra su
navegador web y escriba la dirección IP del servidor con el puerto 3000.
http://direccion_ip:3000/
Inicie
sesión con el usuario predeterminado ‘admin’ y la contraseña ‘admin’.
Haga clic
en el botón ‘Agregar fuente de datos’ para agregar la fuente de datos influxdb.
Nombre:
influxdb
Tipo:
influxdb o Query Languaje: InfluxQl
URL:
http://direccion_ip:8086/
20. Configurar el panel de Grafana
Grafana
proporciona el repositorio de complementos y paneles de Grafana.
Para
importar el tablero de grafana, haga clic en el menú ‘+’ en el panel izquierdo
y haga clic en ‘Importar’.
Ahora abra
el panel de Grafana de muestra desde la URL https://grafana.com/dashboards/5955
y haga clic en el botón Copiar ID al portapapeles.
Pegue la
identificación del tablero.
Y será
redirigido automáticamente a la configuración del tablero.
En la
sección de opciones, haga clic en InfluxDB y elija su servidor influxdb, luego
haga clic en el botón Importar.
Debería ver
una captura de pantalla del tablero importado, similar a esta:
21. Listo ahora en nuestro equipo con
Telegraf instalado vamos a configurarlo para que pueda monitorear a nuestros
switches por SNMP. Para separar y no modificar el archivo telegraf.conf vamos a
crear uno nuevo para nuestros switches cisco, para ello creamos un archivo
dentro del directorio telegraf.d
nano
/etc/telegraf/telegraf.d/telegraf01.conf
22. Ahora copiamos el siguiente texto,
esta claro de que debemos ajustarlo a nuestra necesidad:
[[inputs.snmp]]
agents = [
"172.16.11.1:161","172.16.12.1:161" ]
version = 2
community =
"public"
interval = "60s"
timeout = "10s"
retries = 3
[[inputs.snmp.field]]
name = "hostname"
oid =
"RFC1213-MIB::sysName.0"
is_tag = true
[[inputs.snmp.field]]
name = "uptime"
oid =
"DISMAN-EXPRESSION-MIB::sysUpTimeInstance"
[[inputs.snmp.field]]
name = "CPUBusy"
oid =
".1.3.6.1.4.1.9.2.1.57.0"
[[inputs.snmp.field]]
name =
"ciscoEnvMonFanState"
oid =
".1.3.6.1.4.1.9.9.13.1.4.1.3"
[[inputs.snmp.field]]
name =
"ciscoEnvMonVoltageStatusValue"
oid =
".1.3.6.1.4.1.9.9.13.1.2.1.3"
[[inputs.snmp.field]]
name =
"ciscoEnvMonTemperatureStatusValue"
oid =
".1.3.6.1.4.1.9.9.13.1.3.1.3"
[[inputs.snmp.field]]
name =
"cpmCPUTotal5min"
oid =
".1.3.6.1.4.1.9.9.109.1.1.1.1.5"
[[inputs.snmp.field]]
name =
"ciscoMemoryPoolFree"
oid =
".1.3.6.1.4.1.9.2.1.8.0"
[[inputs.snmp.field]]
name =
"ciscoMemoryPoolTotal"
oid =
"1.3.6.1.4.1.9.3.6.6.0"
[[inputs.snmp.field]]
name =
"ciscoMemoryPoolUsed"
oid =
".1.3.6.1.4.1.9.9.48.1.1.1.5"
[[inputs.snmp.table]]
name = "interface"
inherit_tags = [
"hostname" ]
oid =
"IF-MIB::ifTable"
[[inputs.snmp.table.field]]
name = "ifDescr"
oid =
"IF-MIB::ifDescr"
is_tag = true
[[inputs.snmp.table]]
name = "interface"
inherit_tags = [
"hostname" ]
oid =
"IF-MIB::ifXTable"
[[inputs.snmp.table.field]]
name = "ifDescr"
oid =
"IF-MIB::ifDescr"
is_tag = true
[[inputs.snmp.table]]
name = "interface"
inherit_tags = [
"hostname" ]
oid =
"EtherLike-MIB::dot3StatsTable"
[[inputs.snmp.table.field]]
name = "ifDescr"
oid =
"IF-MIB::ifDescr"
is_tag = true
23. Reiniciamos Telegraf
Systemctl restart telegraf
24.
Instalar plugin geoip
sudo
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Hasta aquí llegamos, nos vemos en la próxima!