PHPSysInfo (http://phpsysinfo.sourceforge.net/) es un programa en php que te muestra unos stats del servidor donde corre. Va bien por si no nos queremos liar con nagios, cacti, etc etc etc ya que solo nos interesa conocer:
- uptime
- estado discos duros
- memoria usada
- temperaturas (linux only)
- S.M.A.R.T (linux only)
- Monitorear que algunos procesos están vivos
La instalación es sencilla, simplemente descomprimir en algun sitio accesible desde la web y editar al gusto el fichero config.php. Para obtener mas información podemos usar los plugins que lleva. Uso los siguientes
define('PSI_PLUGINS','SMART,PSStatus');
PSStatus
Para ver si hay procesos en ejecución, en plugins/PSStatus/PSStatus.config.php editar la linea
define('PSI_PLUGIN_PSSTATUS_PROCESSES', 'sshd, openvpn, squid, smartd');
SMART
Para este se necesita instalar el smartmontools, el cual requiere un MTA o sea que si no queremos configurar un postfix, etc podemos instalar el ssmtp y ale.
En Primer lugar hacemos un smartctl -a /dev/disco para ver todo lo que saca y así poder seleccionar las columnas que nos interesa en plugins/SMART/SMART.config.php
define('PSI_PLUGIN_SMART_IDS', '005-VALUE,194-RAW_VALUE,001-VALUE,009-RAW_VALUE,W_VALUE,007-VALUE');
En Segundo lugar, nos encontramos que smartctl no rula sin permisos de administrador. Una solución es hacer que corra como root (chmod u+s /usr/sbin/smartcl) = fallo de seguridad pues smartctl puede hacer cosas feas al disco. O liarnos con el fichero de sudoers y cambiar la llamada en el phpsysinfo.
Yo he optado para definir en el phpsysinfo que recoja los datos de un fichero (que debe ir a data/SMARTX.txt (donde X es un numero) y programar via cron ejecute cada X minutos/horas/dias el comando smartctl -a /dev/disco > /.../phpsysinfo/data/SMART0.txt.
define('PSI_PLUGIN_SMART_ACCESS', 'data');
WINDOWS
Si, también rula en windows. Lo que necesitamos es que el windows ejecute un servidor web con php. Primero he probado con IIS pero no había manera de que funcionase el php, supongo que se tenia que instalar el fastcgi o yo que se. Al final he optado para instalar Apache + php en windows. Ha sido muy fácil.
- Apache:: descargar, instalar, te miras el httpd.conf. La web esta en el directorio htdocs.
- PHP: descargar el .zip, descomprimir en c:\php, copiar el php-production.ini a php.ini, ojo que en el php.ini tenemos que activar la extensions mbstrings descomentando la linea "extensions=mbstrings" asi como definir que el directorio de extensions esta en ext/. OJO tambien que el php es muy puñetero y necesita las Microsoft VC++ (por ejemplo si no puede ejecutar el php.exe desde la linea de comandos, te da la pista el visor de sucesos en sistema)
- Finalmente editar el httpd.conf otra vez para añadir el soporte al php:
# PHPNo olvidar que para será necesario buscar la linea de DirectoryIndex del httpd.conf para incluir index.php
LoadModule php5_module "c:/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
# Configurar la ruta de php.ini
PHPIniDir "C:/php/php.ini"
Así ya tenemos web + php en windows, solo queda copiar el phpsysinfo y ya está
Comentarios