viernes, 10 de noviembre de 2017

Nginx status en Centreon

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í

Check

Command Name *
Command Type      
Command Line *
      
    

           Plugin Help

         
Enable shell
Argument Example  $HOSTADDRESS$  Test the plugin
Argument Descriptions



Macros Descriptions

Additional Information

Connectors
Graph template
Comment




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
Generate Configuration Files   Chequeado
Run monitoring engine debug (-v)    Chequeado
Move Export Files     Chequeado
Restart Monitoring Engine     Chequeado


Clic en export

Console

Progress () 100%
Preparing environment... OK
Generating files... OK
Moving files... OK
Restarting engine... OK




Después de eso estaría pronto para visualizar las gráficas de nginx


Fuente al 10/11/2017:

https://tomapramono.wordpress.com/2017/01/10/check-nginx-status-with-nagios-plugin-on-centos/
https://www.claudiokuenzler.com/blog/408/monitoring-nginx-reverse-proxy-web-server-with-check_nginx_status#.WgS1dGd9lBk
https://viewsby.wordpress.com/2014/02/20/perlnagios-cant-locate-utils-pm-in-inc/
https://forum.centreon.com/forum/centreon-use/interface/5381-problem-to-add-or-remove-new-host-services
https://2kswiki.wordpress.com/category/nginx-2/
https://exchange.nagios.org/directory/Plugins/Web-Servers/nginx/check_nginx_status-2Epl/details

Otras formas
https://documentation.centreon.com/docs/plugins-packs/en/1.x/installation.html
https://documentation.centreon.com/docs/centreon-plugins/en/latest/user/guide.html#installation

/usr/lib/nagios/plugins/
/usr/lib/nagios/plugins/
ll /usr/lib/nagios/plugins/
ll /usr/lib/nagios/plugins/
ll /usr/lib/nagios/plugins/
ll /usr/lib/nagios/plugins/
ll /usr/lib/nagios/plugins/

No hay comentarios:

Publicar un comentario