Me tope con el tema de agregar el plugin nginx en centreon. Me tomo mucho tiempo comprender como funcionaba los plugins en centreon. Para los que no están familiarizados, centreon utiliza un conjunto de scripts perl para ver los estados de los servidores. Como ser en mi server los plugins estan en:
[root@mon ~]# ll /usr/lib/nagios/plugins/
[root@mon ~]# ll /usr/lib/nagios/plugins/
total 3796
drwxr-xr-x. 3 centreon nagios 4096 Feb 22 2017 Centreon
-rwxrwxr-x 1 centreon centreon 1448 Oct 25 05:26 centreon.conf
-rwxrwxr-x 1 centreon nagios 1679 Jun 22 2015 centreon.conf.custom
-rwxrwxr-x 1 centreon nagios 1448 May 27 2015 centreon.conf.orig
-rwxrwxr-x 1 centreon centreon 3450 Oct 25 05:26 centreon.pm
-rwxr-xr-x 1 centreon nagios 128804 Sep 17 2014 check_apt
-rwxr-xr-x. 1 centreon nagios 2251 Sep 17 2014 check_breeze
-rwxr-xr-x 1 centreon nagios 66959 Sep 17 2014 check_by_ssh
-rwxrwxr-x 1 centreon centreon 3695 Oct 25 05:26 check_centreon_dummy
-rwxrwxr-x 1 centreon centreon 8955 Oct 25 05:26 check_centreon_MS_multiple_services
-rwxrwxr-x 1 centreon centreon 8010 Oct 25 05:26 check_centreon_ping
-rwxrwxr-x 1 centreon centreon 7314 Oct 25 05:26 check_centreon_snmp_cpu
..................
lrwxrwxrwx 1 centreon nagios 27 Mar 2 2017 check_centreon_snmpd -> custom/check_centreon_snmpd
-rwxrwxr-x 1 centreon centreon 7572 Oct 25 05:26 check_centreon_snmp_loadaverage
En ese directorio estan todos los scripts perl, son los "comandos" de centreon, ahi tendria que agregar el comando para ver el estado de nginx.
Entonces lo que hice fue primero seguir un
tutorial que explicaba como agregar.
Voy a la configuración de nginx, edito o agrego las siguientes lineas:
vim /etc/nginx/conf.d/**_https.conf
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.
xxx.xxx; <— Aca la ip de los servidores autorizados a la vista del estado nginx
allow 192.168.
xxx.xxx; <— También puede ser la ip de tu pc, para la vista del estado nginx
deny all;
}
Después reinicio de nginx
service nginx restart
Después vamos a la url
https://
nuestroservidor.com/nginx_status
Y ahí muestra el estado del server
Active connections: 247
server accepts handled requests
85445 85445 1203260
Reading: 0 Writing: 106 Waiting: 139
Supuestamente con curl funciona también
curl http://127.0.0.1/nginx_status
Active connections: 2
server accepts handled requests
31302 31302 58730
Reading: 0 Writing: 1 Waiting: 1
Como ya tenemos funcionando el estado de nginx, vamos a descargar el script perl check_nginx_status.pl
https://exchange.nagios.org/directory/Plugins/Web-Servers/nginx/check_nginx_status-2Epl/details
Probamos el script conectandonos a la ip del nginx
perl check_nginx_status.pl -H 172.31.0.60
NGINX OK - 0.093 sec. response time, Active: 236 (Writing: 117 Reading: 0 Waiting: 119) ReqPerSec: 32.673 ConnPerSec: 2.115 ReqPerConn: 13.969|Writing=117;;;; Reading=0;;;; Waiting=119;;;; Active=236;;;; ReqPerSec=32.673077;;;; ConnPerSec=2.115385;;;; ReqPerConn=13.969328;;;;
SI NO FUNCIONA, y larga un error tipo:
"Can’t locate utils.pm in @INC
(@INC contains: /root /etc/perl /usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .)"
Hay que editar el script para que use la libreria de plugins correcta, en base a este
tutorial.
Edito:
vim check_nginx_status.pl
Cambio la linea dejándola así:
# use lib $FindBin::Bin;
use lib "/usr/lib/nagios/plugins";
Probamos el script conectandonos a la ip del nginx, si falta algun perl, instalarlo.
Copiamos el script a
cp /root/check_nginx_status.pl /usr/lib/nagios/plugins
Por las dudas les damos permisos al archivo.
cd /usr/lib/nagios/plugins
chmod 755 check_nginx_status.pl
chown centreon.nagios check_nginx_status.pl
Después que tenemos el script en la carpeta del nagios, vamos a la configuración del centreon
https://sge.cfe.edu.uy/centreon/
A la parte de comandos
Configuration > Commands > Checks
Agregamos uno con Add y lo dejamos así
Después de agregado el comando, vamos a Configuration
>
Services
>
Templates
Y creamos un service template llamado "NGINX-Connections" y lo completamos así:
Alias: NGINX-Connections
Service Template Name:
NGINX-Connections
Service Template: generic-service
Check command: check_nginx_connections
Lo demás todo estándar.
Después vamos a Configuration
>
Hosts
>
Templates
Y creamos un template para nuestro server Nginx
Host Template Name * : Servers-NginxAlias: Servidores Nginx
Host Parallel Templates: generic-host
Plantilla notification
Notification Enabled: yes
Notification Options: Down
Plantilla Relations:
Linked Service Templates:
Nginx-connections
Y todos los demas comandos que quieras...
Lo demás todo estándar y clic en save.
Después de eso vamos a la configuración de los hosts
Configuration
>
Hosts
Vamos a la configuración del host y le asignamos el template Servers-Nginx , clic en save.
Vamos a la configuracion de Servicios por host
Configuration
>
Services
>
Services by host
Clic en add y completamos:
Linked with Hosts *: Nuestro server nginxDescription
*: NGINX Connections
Service Template NGINX-Connections
Check command: check_nginx_connections
Plantilla notifications:
Inherit contacts from host: Yes
Después de configurar todo esto, hay que aplicarle la configuración al servidor de centreon, vamos a
Configuration > Pollers
Clic en Apply configuration
Ahí aparece la aplicación de la config y completamos:
Pollers: Nuestro servidor centreon