Me gustaría monitorear las estadísticas de NGinx a través de Munin, pero los complementos de Nginx no muestran datos. ¿Es posible diagnosticar por qué solo uno de los complementos munin nginx parece estar funcionando?
Nota al margen: Ejecutar Ubuntu 16.04 habilitando nginx como se documenta aquí no fue suficiente en mi caso. Además, tuve que apt install libwww-perl timeusar los nodos munin por sus problemas de registro con Use of uninitialized value $LWP::VERSIONcomplementos nginx.
Thomas Urban
Otra nota al margen: dado que IPv6 es compatible con los servidores de hoy en día, la URL predeterminada de los complementos nginx_ * que usan http://localhost/podría preferir IPv6 y, por lo tanto, no coincidirá con la configuración de nginx, que solo permite IPv4 localhost. Al arreglar la URL /etc/munin/plugin-conf.d/munin-nodepara que http://127.0.0.1/nginx_statusfinalmente el plugin funcione.
Thomas Urban
4
En mi experiencia, es probable que estos complementos no funcionen debido a la mala configuración de nginx. Aquí hay una lista breve de qué hacer en este caso:
1. Verifique la instalación de nginx
Nginx debe compilarse con el módulo HttpStubStatusModule . Puede verificar eso ejecutando el siguiente comando (bajo sudo o root):
Si ve el siguiente resultado, es bueno seguir adelante.
with-http_stub_status_module
De lo contrario, debe volver a compilar nginx con el módulo requerido habilitado o instalar desde una fuente diferente (en mi caso, el repositorio predeterminado de Debian tenía la versión correcta).
2. Verifique la configuración de nginx
Supongo que ha colocado y habilitado la configuración requerida . Para ver si funciona, puede sshir a su servidor y ejecutar
wget http://localhost/nginx_status
Si no obtiene errores aquí, entonces el problema es la configuración del complemento. Si el servidor devuelve un error aquí, puede depurar modificando la configuración:
(Tenga en cuenta que yo también reemplazó listen: 127.0.0.1con el puerto 80 (IPv4 + IPv6) ya que el primero también no funcionaba)
3. Verifique la configuración del sistema y las dependencias
Para verificar si el complemento funciona, ejecuta
munin-run nginx_status
(tenga en cuenta que el complemento debe estar "activado" - debe haber un enlace simbólico en /etc/munin/plugins- lea el manual si no)
Si obtiene errores con la LWPbiblioteca (p. Ej. LWP::UserAgentO LWP::VERSION), a su sistema le falta un paquete requerido por el nginx_statuscomplemento.
En Debian / Ubuntu, ejecute
apt install libwww-perl
En CentOS
yum install perl-libwww-perl
Después de eso, pruebe el complemento nuevamente usando munin-run. La salida esperada (los números serán diferentes):
Basado en los mensajes de error en /var/log/munin-update.log(Servicio nginx_status en servername / 127.0.0.1: 4949 no devolvió datos para la etiqueta en espera), podría haber buscado durante años para descubrir que libwww-perlfaltaba. Muchas gracias por esta extensa respuesta.
BurninLeo
2
Posiblemente útil:
cd /etc/munin/plugins
munin-run PLUGINNAME
Además, use la opción de depuración para ejecutar munin.
Verifique el archivo del complemento para ver si hay rutas codificadas y verifique que sean correctas para su sistema:
grep '/' PLUGINNAME
El complemento nginx puede confiar en que Nginx se compila con ciertos módulos o la salida de registro en un formato determinado. ¿Hay alguna página de documentación para los complementos?
apt install libwww-perl time
usar los nodos munin por sus problemas de registro conUse of uninitialized value $LWP::VERSION
complementos nginx.http://localhost/
podría preferir IPv6 y, por lo tanto, no coincidirá con la configuración de nginx, que solo permite IPv4 localhost. Al arreglar la URL/etc/munin/plugin-conf.d/munin-node
para quehttp://127.0.0.1/nginx_status
finalmente el plugin funcione.En mi experiencia, es probable que estos complementos no funcionen debido a la mala configuración de nginx. Aquí hay una lista breve de qué hacer en este caso:
1. Verifique la instalación de nginx
Nginx debe compilarse con el módulo HttpStubStatusModule . Puede verificar eso ejecutando el siguiente comando (bajo sudo o root):
Si ve el siguiente resultado, es bueno seguir adelante.
De lo contrario, debe volver a compilar nginx con el módulo requerido habilitado o instalar desde una fuente diferente (en mi caso, el repositorio predeterminado de Debian tenía la versión correcta).
2. Verifique la configuración de nginx
Supongo que ha colocado y habilitado la configuración requerida . Para ver si funciona, puede
ssh
ir a su servidor y ejecutarSi no obtiene errores aquí, entonces el problema es la configuración del complemento. Si el servidor devuelve un error aquí, puede depurar modificando la configuración:
Después de eso, en el archivo
/var/log/nginx/status.error.log
puede ver la razón exacta por la cual el servidor devolvió un error:En mi caso (como puede ver en el registro) el problema era
client: ::1
que la configuración solo permitía el acceso desde127.0.0.1
Para resolver el problema, puede seguir la sugerencia de cepharum o modificar la configuración del host virtual:
(Tenga en cuenta que yo también reemplazó
listen: 127.0.0.1
con el puerto 80 (IPv4 + IPv6) ya que el primero también no funcionaba)3. Verifique la configuración del sistema y las dependencias
Para verificar si el complemento funciona, ejecuta
(tenga en cuenta que el complemento debe estar "activado" - debe haber un enlace simbólico en
/etc/munin/plugins
- lea el manual si no)Si obtiene errores con la
LWP
biblioteca (p. Ej.LWP::UserAgent
OLWP::VERSION
), a su sistema le falta un paquete requerido por elnginx_status
complemento.En Debian / Ubuntu, ejecute
En CentOS
Después de eso, pruebe el complemento nuevamente usando
munin-run
. La salida esperada (los números serán diferentes):fuente
/var/log/munin-update.log
(Servicio nginx_status en servername / 127.0.0.1: 4949 no devolvió datos para la etiqueta en espera), podría haber buscado durante años para descubrir quelibwww-perl
faltaba. Muchas gracias por esta extensa respuesta.Posiblemente útil:
Además, use la opción de depuración para ejecutar munin.
Verifique el archivo del complemento para ver si hay rutas codificadas y verifique que sean correctas para su sistema:
El complemento nginx puede confiar en que Nginx se compila con ciertos módulos o la salida de registro en un formato determinado. ¿Hay alguna página de documentación para los complementos?
fuente
Lo clave es la url en munin config.
Necesitará
Nota
No
fuente
Instale libwww-perl y luego ejecute el comando
munin-run nginx_status
para ver las estadísticas.Reinicie el servicio muni-node.
fuente