En esta entrada veremos como instalar e integrar grafana con nagios, para ello emplearemos influxdb, nagflux, histou y grafana.
Instalación de influxdb
Agregamos los repositorios de la distribución correspondiente:
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
Instalamos y lo configuramos para que arranque al inicio
sudo yum install influxdb
sudo systemctl enable influxdb
sudo systemctl start influxdb
Instalación de Nagflux
Instalamos las dependencias necesarios
yum -y install go git
Descargamos e instalamos Nagflux
export GOPATH=$HOME/gorepo
mkdir $GOPATH
go get -v -u github.com/griesbacher/nagflux
go build github.com/griesbacher/nagflux
mkdir -p /opt/nagflux
cp $GOPATH/bin/nagflux /opt/nagflux/
mkdir -p /usr/local/nagios/var/spool/nagfluxperfdata
chown nagios:nagios /usr/local/nagios/var/spool/nagfluxperfdata
Configuramos nagflux, para ello debemos agregar en /opt/nagflux/config.gcfg el siguiente contenido:
[main]
NagiosSpoolfileFolder = "/usr/local/nagios/var/spool/nagfluxperfdata"
NagiosSpoolfileWorker = 1
InfluxWorker = 2
MaxInfluxWorker = 5
DumpFile = "nagflux.dump"
NagfluxSpoolfileFolder = "/usr/local/nagios/var/nagflux"
FieldSeparator = "&"
BufferSize = 10000
FileBufferSize = 65536
DefaultTarget = "all"
[Log]
LogFile = ""
MinSeverity = "INFO"
[InfluxDBGlobal]
CreateDatabaseIfNotExists = true
NastyString = ""
NastyStringToReplace = ""
HostcheckAlias = "hostcheck"
[InfluxDB "nagflux"]
Enabled = true
Version = 1.0
Address = "http://127.0.0.1:8086"
Arguments = "precision=ms&u=root&p=root&db=nagflux"
StopPullingDataIfDown = true
[InfluxDB "fast"]
Enabled = false
Version = 1.0
Address = "http://127.0.0.1:8086"
Arguments = "precision=ms&u=root&p=root&db=fast"
StopPullingDataIfDown = false
levantamos el servicio y lo configuramos para que arranque al inicio
cp $GOPATH/src/github.com/griesbacher/nagflux/nagflux.service /usr/lib/systemd/system/
chmod +x /usr/lib/systemd/system/nagflux.service
systemctl daemon-reload
systemctl enable nagflux.service
systemctl start nagflux.service
Instalación de Grafana
Agregamos el repositorio correspondiente
cat <<EOF | sudo tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
Instalamos grafana
yum -y install grafana
levantamos el servicio y lo configuramos para que arranque al inicio
systemctl enable grafana-server.service
systemctl start grafana-server.service
Habilitamos el puerto de grafana en el firewall
firewall-cmd --zone=public --add-port=3000/tcp
firewall-cmd --zone=public --add-port=3000/tcp --permanent
Instalar Histou
Descargamos y descomprimimos los archivos de configuración de Histou
cd /tmp
wget -O histou.tar.gz https://github.com/Griesbacher/histou/archive/v0.4.3.tar.gz
mkdir -p /var/www/html/histou
cd /var/www/html/histou
tar xzf /tmp/histou.tar.gz --strip-components 1
cp histou.ini.example histou.ini
cp histou.js /usr/share/grafana/public/dashboards/
Configuramos Histou, para ello debemos modificar el localhost por el FQDN del servidor
sed -i 's/localhost/NOMBRE-SERVIDOR/g' /usr/share/grafana/public/dashboards/histou.js
Configuración NAGIOS
Debemos agregar la siguiente configuración en /usr/local/nagios/etc/nagios.cfg
host_perfdata_file=/usr/local/nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file-nagflux
service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file-nagflux
También debemos agregar los siguientes comandos en /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name process-host-perfdata-file-nagflux
command_line /bin/mv /usr/local/nagios/var/host-perfdata /usr/local/nagios/var/spool/nagfluxperfdata/$TIMET$.perfdata.host
}
define command {
command_name process-service-perfdata-file-nagflux
command_line /bin/mv /usr/local/nagios/var/service-perfdata /usr/local/nagios/var/spool/nagfluxperfdata/$TIMET$.perfdata.service
}
Una vez realizada la configuración reiniciamos el servicio de nagios
systemctl restart nagios.service
Comprobamos el perfecto funcionamiento de nagflux
curl -G "http://localhost:8086/query?db=nagflux&pretty=true" --data-urlencode "q=show series"
Configuración Grafana
Accedemos a nuestro servidor grafana por el puerto 3000 (http://IP_ADDRESS:3000/login ) y las credenciales admin:admin, la primera vez que nos conectamos nos pedirá que cambiemos la contraseña.
Una vez conectados presionamos sobre Add data source
Seleccionamos la opción de InfluxDB
Configuramos el acceso a la base de datos de la siguiente forma:
Una vez realizado toda la configuración solo nos queda definir los chequeos dentro de nuestro nagios
Chequeo para hosts
define host {
use redorbita-host
host_name redorbitaweb01
alias redorbitaweb01
address 192.168.1.111
action_url http://192.168.1.112:3000/dashboard/script/histou.js?host=$HOSTNAME$
}
Chequeo para servicios
define service {
use redorbita-serv
host_name redorbitaweb01
service_description Port 22/tcp
check_command check_tcp!22
action_url http://192.168.1.112:3000/dashboard/script/histou.js?host=$HOSTNAME$&service=$SERVICEDESC$
}
Una vez configurado todo nos deberían aparecer el LINK con las gráficas y se presionamos sobre el servicio debería aparecer en la parte inferior completamente integrada la gráfica de dicho servicio.
Buenas tardes, me quede en la ultima parte para configurar grafana:
Configuración Grafana
Accedemos a nuestro servidor grafana por el puerto 3000 (http://IP_ADDRESS:3000/login ) y las credenciales admin:admin, la primera vez que nos conectamos nos pedirá que cambiemos la contraseña.
Una vez conectados presionamos sobre Add data source
image.png
Seleccionamos la opción de InfluxDB
image.png
Configuramos el acceso a la base de datos de la siguiente forma:
pero no veo el contenido de las imagenes.
Muchas Gracias por tu post
Saludos
Estoy instalando por estos pasos pero en un servidor OL8 sin internet.. Como puedo instalar nagflux si no llego al github desde mi servidor Linux????
Yo todo bien hasta que compruebo q me conecte cn la base de datos para comprobar que se conecta por terminal y no se dnd puede estar fallando :/