# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

hpasm “sed: can’t read /etc/init.d/ipmi: No such file or directory”

Instalando hoy en unos nuevos equipos hpasm (Hpasmcli: monitorizar el estado de hardware HP Proliant desde linux) me encontré con el siguiente error al arrancar los servicios:

# /etc/init.d/hpasm restart
Shutting down NIC Agents (cmanic): All agents

Shutting down Storage Agents (cmastor): cmaeventd cmaidad cmafcad cmaided cmascsid cmasasd
   Shutting down Storage Event Logger (cmaeventd):         [  OK  ]
   Shutting down IDA agent (cmaidad):                      [  OK  ]
   Shutting down FCA agent (cmafcad):                      [  OK  ]
   Shutting down IDE agent (cmaided):                      [  OK  ]
   Shutting down SCSI agent (cmascsid):                    [  OK  ]
   Shutting down SAS agent (cmasasd):                      [  OK  ]

Shutting down Server Agents (cmasvr): cmastdeqd cmahealthd cmaperfd cpqriisd cmasm2d cmarackd
   Shutting down Standard Equipment agent (cmastdeqd):     [  OK  ]
   Shutting down Health agent (cmahealthd):                [  OK  ]
   Shutting down Performance agent (cmaperfd):             [  OK  ]
   Already stopped cpqriisd.                               [  OK  ]
   Shutting down RIB agent (cmasm2d):                      [  OK  ]
   Shutting down Rack agent (cmarackd):                    [  OK  ]

Shutting down Foundation Agents (cmafdtn): cmathreshd cmahostd cmapeerd
   Shutting down Threshold agent (cmathreshd):             [  OK  ]
   Shutting down Host agent (cmahostd):                    [  OK  ]
   Shutting down SNMP Peer (cmapeerd):                     [  OK  ]

sed: can't read /etc/init.d/ipmi: No such file or directory
   Using standard Linux IPMI device driver and hpasm-lite
   Shutting down Proliant Standard IPMI based System Health Monitor (hpasmlited):
                                                           [  OK  ]
sed: can't read /etc/init.d/ipmi: No such file or directory
   Using standard Linux IPMI device driver and hpasm-lite
   Starting Proliant Standard IPMI based System Health Moni[  OK  ]smlited):
Starting Foundation Agents (cmafdtn): cmathreshd cmahostd cmapeerd
   Starting Threshold agent (cmathreshd):                  [  OK  ]
   Starting Host agent (cmahostd):                         [  OK  ]
   Starting SNMP Peer (cmapeerd):                          [  OK  ]

Starting Server Agents (cmasvr): cmastdeqd cmahealthd cmaperfd cpqriisd cmasm2d cmarackd
   Starting Standard Equipment agent (cmastdeqd):          [  OK  ]
   Starting Health agent (cmahealthd):                     [  OK  ]
   Starting Performance agent (cmaperfd):                  [  OK  ]
   cpqriisd requires hp_ilo.
                                                           [  OK  ]
   Starting RIB agent (cmasm2d):                           [  OK  ]
   cpqriisd requires hp_ilo.
                                                           [  OK  ]
   Starting Rack agent (cmarackd):                         [  OK  ]

Starting Storage Agents (cmastor): cmaeventd cmaidad cmafcad cmaided cmascsid cmasasd
   Starting Storage Event Logger (cmaeventd):              [  OK  ]
   Starting IDA agent (cmaidad):                           [  OK  ]
   Starting FCA agent (cmafcad):                           [  OK  ]
   Starting IDE agent (cmaided):                           [  OK  ]
   Starting SCSI agent (cmascsid):                         [  OK  ]
   Starting SAS agent (cmasasd):                           [  OK  ]

Starting NIC Agents (cmanic): All agents
   Starting NIC Agent Daemon (cmanicd):   Unable to determine if cmanic successfully started

hpasm:  Server Management is enabled

El problema era no tener instalado OpenIPMI, procedemos a instalarlo desde yum (en este caso era una CentOS 64bits) y problema solucionado

# yum install OpenIPMI.x86_64

Ya podemos reiniciar los servicios hpasm y debería desaparecer el error.

Hpasmcli: monitorizar el estado de hardware HP Proliant desde linux

Hpasmcli (HP management CLI for Linux) es una utilidad que forma parte del “HP Proliant Support Pack” y que permite monitorizar y visualizar el estado del hardware de un servidor HP de forma sencilla. En este caso vamos a ver las opciones que nos ofrece dentro de un servidor con sistema operativo GNU/Linux.

Para instalarlo en sistemas RHEL/Fedora/CentOS bajamos el rpm correspondiente (o el support pack completo) y lo instalamos:

# rpm -i hpasm-7.8.0-88.rhel5.i386.rpm

Una vez instalado podemos ver las distintas posibilidades que nos ofrece, hoy nos centramos solo en SHOW, hay más cosas disponibles pero ahora no las vamos a ver.

# hpasmcli
HP management CLI for Linux (v1.0)
Copyright 2004 Hewlett-Packard Development Group, L.P.

--------------------------------------------------------------------------
NOTE: Some hpasmcli commands may not be supported on all Proliant servers.
      Type 'help' to get a list of all top level commands.
--------------------------------------------------------------------------
hpasmcli> show
	 SHOW ASR
	 SHOW BOOT
	 SHOW DIMM
	 SHOW F1
	 SHOW FANS
	 SHOW HT
	 SHOW IML
	 SHOW IPL
	 SHOW NAME
	 SHOW PORTMAP
	 SHOW POWERSUPPLY
	 SHOW PXE
	 SHOW SERIAL [ BIOS | EMBEDDED | VIRTUAL ]
	 SHOW SERVER
	 SHOW TEMP
	 SHOW UID
	 SHOW WOL

Ver el estado de las fuentes de alimentación en HP Proliant

# hpasmcli -s 'show POWERSUPPLY;'

Power supply #1
	Present  : Yes
	Redundant: Yes
	Condition: Ok
	Hotplug  : Supported

Power supply #2
	Present  : Yes
	Redundant: Yes
	Condition: Ok
	Hotplug  : Supported

Ver el estado de los ventiladores en HP Proliant

# hpasmcli -s 'show FANS;'

Fan  Location        Present Speed  of max  Redundant  Partner  Hot-pluggable
---  --------        ------- -----  ------  ---------  -------  -------------
#1   POWERSUPPLY_BAY Yes     NORMAL 34%     Yes        1        No
#2   CPU#2           Yes     NORMAL 29%     Yes        1        No
#3   CPU#1           Yes     NORMAL 34%     Yes        1        No

Ver temperaturas en HP Proliant

# hpasmcli -s 'show TEMP;'

Sensor   Location              Temp       Threshold
------   --------              ----       ---------
#0        SYSTEM_BD             -          -
#1        I/O_ZONE             38C/100F   65C/149F
#2        AMBIENT              16C/60F    40C/104F
#3        CPU#1                31C/87F    95C/203F
#4        CPU#1                31C/87F    95C/203F
#5        POWER_SUPPLY_BAY     24C/75F    60C/140F
#6        CPU#2                 -         95C/203F
#7        CPU#2                 -         95C/203F

Ver información de las memorias RAM

# hpasmcli -s 'show DIMM;'

DIMM Configuration
------------------
Cartridge #:   0
Module #:      1
Present:       Yes
Form Factor:   fh
Memory Type:   14h
Size:          512 MB
Speed:         667 MHz
Status:        Ok

Cartridge #:   0
Module #:      3
Present:       Yes
Form Factor:   fh
Memory Type:   14h
Size:          512 MB
Speed:         667 MHz
Status:        Ok

Ver información general del servidor

# hpasmcli -s 'show SERVER;'

System        : ProLiant DL360 G6
Serial No.    : XXXXXXXXX
ROM version   : P58 XX/XX/XXXX
iLo present   : Yes
Embedded NICs : 2
	NIC1 MAC: 00:00:00:00:00:00
	NIC2 MAC: 00:00:00:00:00:00

Processor: 0
	Name         : Intel Xeon
	Stepping     : 6
	Speed        : 1600 MHz
	Bus          : 1066 MHz
	Core         : 2
	Thread       : 2
	Socket       : 1
	Level2 Cache : 4096 KBytes
	Status       : Ok

Processor total  : 1

Memory installed : 2048 MBytes
ECC supported    : Yes

Estas serían a mi modo de ver las opciones más interesantes, podéis investigar el resto que he puesto al principio de la entrada.

Monitorización en Big Brother de Discos y Raid HP Proliant Linux

En la entrada anterior veíamos como configurar el sistema de monitorización Big Brother para que revise si los discos duros SAS/SCSI de servidores HP Proliant en sistemas Windows. Ahora vamos a ver lo mismo pero para Linux.

El script está pensado para sistemas de monitorización Hobbit / XYmon pero en Big Brother parece funcionar sin problemas. En primera instancia lo descargamos desde el sitio web:

hphwraid

Está verificado el correcto funcionamiento en servidores HP ProLiant DL, ML y BL. Los requerimientos para que funcione son:

  • Tener instalado hpacucli
  • Tener instalado sudo
  • Big Brother

Una vez descargado el script lo colocamos en la carpeta “ext/” del cliente Big Brother.

Ejecutamos visudo para permitir al usuario con el que corra bigbrother ejecutar hpacucli:

# visudo

Quitamos el requerimiento de tty:

#Default requiretty

Y permitimos al usuario la ejecución de hpacucli:

bigbrother ALL= NOPASSWD: /usr/sbin/hpacucli

Finalmente añadimos el script al fichero de extensiones bb-bbexttab:

localhost :  : hphwraid.sh

Y reiniciamos el cliente Big Brother. Pasados 5 minutos ya debería comenzar a monitorizarse el estado de discos y RAID del servidor, ejemplo:

green vie jul 9 16:27:27 CEST 2010

Hardware view on SLOT 0
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 72 GB): OK
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 72 GB): OK

View from the OS:
logicaldrive 1 (68.3 GB, RAID 1): OK

Monitorización en Big Brother de Discos y Raid HP Proliant Windows

Hoy vamos a configurar el sistema de monitorización Big Brother para que revise si los discos duros SAS/SCSI de servidores HP Proliant están en perfectas condiciones y también el RAID que tengan configurado a través de la controladora.

En este caso vamos a comenzar a configurarlo para un cliente Big Brother Windows (después habrá otro artículo para Linux). En primera instancia descargamos la extensión que añadiremos en la máquina a monitorizar:

CheckHpRaid.cmd

Nota: el script está pensando en primera instancia para “hobbit” pero funciona sin problemas en big brother

Posteriormente lo colocaremos en la carpeta “ext/” del cliente Big Brother, lugar en el que se encuentran los añadidos y extensiones que utilizamos.

Una vez realizado esto accedemos a la consola de gestión del cliente Big Brother y añadimos el script dentro de “Externals list”. Otro punto a tener en cuenta es que para que funcione la ubicación de “”Saved Logs Location” ha de ser la misma que la que hay configurada en el script:

REM Logs location for external scripts (WITH the ending \)
REM This folder must be the same has the one defined in the option
REM "Saved Logs Location" of the Big Brother Client or the tmppath
REM of the BBWin client.
SET _bblogdir=C:\Logs\bbnt\

Guardamos, reiniciamos el cliente Big Brother y tras cinco minutos ya debería haber una nueva columna en el servidor de monitorización con el nombre “raid” y la información de discos y raid, ejemplo:

Everything is working fine 

   Controller: Smart Array E200i
      Channel: 0
Serial number: P688MQ3790       

green logicaldrive 1 (68.3 GB, RAID RAID 1+0): OK  

green physicaldrive 1:1 (box 1:bay 1, 72 GB): OK
green physicaldrive 1:2 (box 1:bay 2, 72 GB): OK

Se me olvidaba comentar que tendréis que tener instalada la “HP Array Configuration Utility CLI” para que la extensión funcione.

ERROR: the RRD does not contain an RRA matching the chosen CF

Andaba instalando una plantilla XML para Cacti que tenía como fin monitorizar el consumo eléctrico de unas regletas APC, conocidas como PDU. Pues bien, al hacer debug en la plantilla de uno de los gráficos me encontraba este error:

ERROR: the RRD does not contain an RRA matching the chosen CF

RRDTool Command:

/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-300 \
--title="Pdu 3 - PDU Information" \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
--vertical-label="Amps" \
--slope-mode \
--font TITLE:10: \
--font AXIS:8: \
--font LEGEND:8: \
--font UNIT:8: \
DEF:a="/home/cacti/rra/pdu_3_apc_blah_load_854.rrd":apc_blah_load:AVERAGE \
DEF:b="/home/cacti/rra/pdu_3_apc_blah_load_854.rrd":apc_blah_load:MAX \
DEF:c="/home/cacti/rra/pdu_3_apc_warning_level_856.rrd":apc_warning_level:AVERAGE \
DEF:d="/home/cacti/rra/pdu_3_apc_warning_level_856.rrd":apc_warning_level:MAX \
DEF:e="/home/cacti/rra/pdu_3_apc_overload_level_857.rrd":apc_overload_level:AVERAGE \
DEF:f="/home/cacti/rra/pdu_3_apc_overload_level_857.rrd":apc_overload_level:MAX \
DEF:g="/home/cacti/rra/pdu_3_apc_overload_level_855.rrd":apc_overload_level:LAST \
DEF:h="/home/cacti/rra/pdu_3_apc_overload_level_855.rrd":apc_overload_level:MAX \
CDEF:cdefa=a,10,/ \
CDEF:cdefd=b,10,/ \
AREA:cdefa#00CF00FF:"Load\:"  \
GPRINT:cdefa:LAST:"              Current\:%8.2lf %s"  \
GPRINT:cdefa:MIN:"Min\:%8.2lf %s"  \
GPRINT:cdefd:MAX:"Max\:%8.2lf %s\n"  \
LINE3:c#F5F800FF:"Warning Threshold\:"  \
GPRINT:c:LAST:" ------->%8.0lf\n"  \
LINE3:e#FF3932FF:"Overload Threshold\:"  \
GPRINT:e:LAST:"------->%8.0lf\n"  \
LINE3:g#4444FFFF:"Low Threshold\:"  \
GPRINT:g:LAST:"        ------->%8.0lf\n"

RRDTool Says:

ERROR: the RRD does not contain an RRA matching the chosen CF

CF es una función de consolidación, y lo que sucede es que ya sea por mi versión de RRD, u otro motivo que actualmente desconozco, saltaba el error en las CF LAST, la solución, pasa por acceder a la plantilla del gráfico en cuestión y cambiar los valores LAST por AVERAGE. Quizás sea necesario tras hacer esto borrar y crear de nuevo el gráfico.

Monitorización MySQL: MySQL Query Analyzer

Evidentemente existen muchas maneras de monitorizar MySQL, por ejemplo con cacti, MyTop, etc. No obstante he encontrado una aplicación propia de Sun/MySQL muy interesante, se trata de MySQL Query Analyzer.
MySQL Query analizer
Captura oreilly.com

Como se observa en la captura de pantalla, se trata de una interfaz web sobre la que podemos monitorizar y recolectar datos de los servidores MySQL que necesitemos, destaca la monitorización a tiempo real de queries en el servidor, rápida identificación de problemas en las queries, detalle de las queries y debug para solucionar y optimizar consultas mal construidas con explain. Por supuesto hay un historico de consultas, posibilidad de buscar, ordenar, etc.
MySQL Query analizer

Puedes descargarlo y encontrar más información en este enlace.

Cacti & MySQL Graph Collection 2.0: Gráficos sin datos

cacti mysql

Seguimos profundizando en el sistema de monitorización Cacti, hoy me disponía a probar distintos plugins para monitorizar el servicio MySQL, y el más adecuado parece MySQL Graph Collection 2.0. La configuración del mismo es sencilla, copias el fichero php a la carpeta de scripts e importas las plantillas XML desde la interfaz web de Cacti. Si tenéis dudas en el enlace que he puesto anteriormente tenéis más información.

Lo que quería decir en esta entrada, es que para servidores MySQL con versiones superiores a la 5.0.2, los gráficos de estadísticas de comandos y tráficos por defecto no funcionan (“mysql command statistics” y “mysql traffic“). Esto es debido a que en versiones 5.0.2 de MySQL o superiores la variable “SHOW STATUS” devuelve valores globales, mientras que en las anteriores devolvía valores de sesión. El plugin está configurado para este último caso, así que para que funcione con MySQL 5.0.2 o superior hay que realizar un pequeño cambio en el script:

  1. Editamos el fichero mysql_stats.php
  2. Buscamos alrededor de la línea 19 lo siguiente: $result_stat = @mysql_query(“SHOW STATUS”);
  3. Modificamos SHOW STATUS por SHOW /*!50002 GLOBAL */ STATUS

Más información sobre este cambio en MySQL aquí.

Bug en RRDtool 1.2.28 , texto en gráficos y leyenda

El otro día ya hablé de un problema relacionado con la visualización de gráficos en cacti, que estaba relacionado con una mala configuración de las rutas a las fuentes de rrdtool.

El problema ha vuelto a reproducirse en el sistema de monitorización Cacti que monté hace poco, y trasteando un poco encontré que existe un bug en la versión 1.2.28 de RRDtool que impide que se muestren los textos y leyenda en un gráfico.

La solución que a mi me ha funcionado, ha sido desinstalar la versión 1.2.28 que instalé via YUM (CentOS):

yum remove rrdtool.i386

Y bajar a la versión 1.2.27, con la cual el problema queda solucionado. Podéis instalar esta versión vía RPM, yo me bajé el paquete de aquí, una vez descargado lo instaláis vía RPM:

rpm -i rrdtool-1.2.27-2.i586.rpm

Y los gráficos vuelven a visualizarse correctamente ;)