Mod-Apache-Snmp - Documentación
   
 
Características
  Instalación
  Configuración
  MIB´s
  Ejemplos
  Gráficos de valores de Apache utilizando MRTG
  FAQ's
 
Características

Utiliza un agente SNMP independiente.
Soporta SNMPv1, SNMPv2, SNMPv3.
Soporta Notificaciones.
Permite monitorear las principales características del Apache Web Server
.

 
Instalación

Requisitos:

Apache Web Server 2.0.xx - (http://www.apache.org)
Net-SNMP 5.1 (o superior) - (http://www.net-snmp.org)

Mod-APACHE-SNMP

1) Instalar Apache Web Server con soporte DSO.

./configure --enable-so [..otras opciones..]
make
make install

2) Descomprimir fuentes NET-SNMP.

3) Descomprimir Mod-APACHE-SNMP.

4) Copiar archivos necesarios para que el agente Net-SNMP soporte el MIB del Apache:

- Copiar net-snmp-module\ -->PATH-FUENTES-NET-SNMP\agent\mibgroup\apache2\
- Copiar extra\ap2_snmp.h --> PATH-FUENTES-NET-SNMP\agent\mibgroup\
- Copiar mib\APACHE2-MIB.txt --> PATH-FUENTES-NET-SNMP\mibs\

5) Instalar Net-SNMP

./configure --with-mib-modules = ap2_snmp
make
make install

6) Compilar e instalar el módulo SNMP para Apache.

- Editar el archivo install.sh y modificar las variables para especificar la ubicación del Apache y las librerías de Net-SNMP.
- \PATH-FUENTES-MOD-APACHE-SNMP\install.sh


Configuración

Para configurar el soporte SNMP para el Apache, se deben tener en cuenta 2 aspectos:

a) Configurar al agente SNMP para especificar las comunidades y permisos que se van a utilizar sobre los objetos administrados.

b) Cargar el módulo SNMP dentro del Apache (LoadModule) y especificarle con que agente y de que forma debe interactuar.

Para el punto a), se debe configurar el snmpd.conf (archivo de configuración de NET-SNMP) tal como se hace normalmente. (Ver http://www.net-snmp.org/man/snmpd.conf.html).

Para el punto b), a continuación se detallan las directivas de configuración necesarias:

Dentro del httpd.conf se deben especificar las siguientes directivas:

Para activar el módulo SNMP, primero se debe cargar a través de la siguiente directiva:

- LoadModule ap2_snmp_module modules/mod_ap2_snmp.so

Luego se debe especificar una Location con el nombre "ap2_snmp" (Ver ejemplo) y por último se utilizan las siguientes directivas para establecer el resto de los valores de configuración.

snmp_community Establece la comunidad que va a utilizar el Apache para comunicarse con el Agente SNMP.
snmp_agent_address La dirección IP donde se encuentra el agente SNMP.
snmp_tmp_dir Directorio temporal para la información de intercambio entre el Apache y agente SNMP. El Apache debe tener acceso de escritura sobre ese directorio.
snmp_version Versión SNMP utilizada por el Apache para interactuar con el agente SNMP.
snmpv3_user En caso de utilizar version 3, se utiliza esta directiva para especificar el usuario y contraseña.
snmp_http_address Dirección IP y puerto utilizado por el agente SNMP para realizar peticiones HTTP al Apache para el monitoreo.

- Habilitar el módulo mod_status

Habilitar la directiva ExtendedStatus (ExtendedStatus On)

Ejemplo de directivas agregadas al httpd.conf

LoadModule ap2_snmp_module modules/mod_ap2_snmp.so

ExtendedStatus On

<Location /ap2_snmp>

Sethandler ap2_snmp # utiliza el manejador del módulo SNMP para las solicitudes

Order Deny,Allow

Deny from all # Limita el acceso en forma total.

Allow from 127.0.0.1 # Solo permite acceder en forma local.

</Location>



snmp_community public
snmp_agent_address localhost
snmp_tmp_dir /tmp/
snmp_version 3
snmpv3_user usuario1 claveusuario1
snmp_http_address 127.0.0.1 8080


MIB´s

Este módulo SNMP utiliza su propio MIB para especificar los distintos objetos administrados.

Ver APACHE2-MIB

FAQ´s

 

Type
Question
Solution
Compiling / Linking I get "cannot find -lcrypto collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
" error at linking time..
it can`t find libcryto.so file in the libs directory. Please check that you have that file in the path that you set in libs_net_snmp
var. If you don`t have that file there, make a symlink to that file.

And If you don`t have that library in your system, try to install an open-ssl package (for example:. openssl 0.9.7a-20.2).


Configuration Should I start SNMP agent BEFORE Apache? Yes, you must have SNMP agent (Net-SNMP) started before Apache because the module needs to initialize some mib objects when start.
Configuration

In my access_log file there are a lot of requests like this "GET /ap2_snmp/status" 200 2"

Is that correct? How can avoid them?

Yes, it´s correct because the snmp module check apache status and use that kind of request. But you can avoid them to get logged using the following directives in httpd.conf:

SetEnvIfNoCase Request_URI /ap2_snmp agent_snmp
CustomLog logs/access_log common env=!agent_snmp

 
MRTG

Utilizando MOD-APACHE-SNMP y MRTG se pueden obtener gráficos de los distintos valores del Apache Web Server. Por ejemplo, es posible obtener gráficos de los KBytes / Secs (APACHE2-MIB::serverKBytesPerSec.0), el número de -busy Workers- (APACHE2-MIB::busyWorkers.0) o cualquier otro valor del MIB que se quiera graficar.

Baja documentación, ejemplos y scripts para MRTG con MOD-APACHE-SNMP Aquí

Busy Idle Workers
Bytes Per Request
Bytes Per Second
Ejemplos

Utilizando snmpget, una de las aplicaciones provistas por Net-SNMP (http://www.net-snmp.org) se puede obtener información del mib correspondiente al Apache (APACHE2-MIB.txt).

 

Tráfico total del Apache(en kb) :
snmpget -v1 -c public localhost APACHE2-MIB::totalTraffic.0 (for example, using SNMP v1)

Estado del Servidor:
snmpget -v1 -c public localhost APACHE2-MIB::serverStatus.0
Uptime:
snmpget -v1 -c public localhost APACHE2-MIB::serverUptime.0
Cantidad de errores HTTP 404:
snmpget -v1 -c public localhost APACHE2-MIB::httpError404.0