jueves, 30 de marzo de 2017

Debian: Como resolver "Error: Could not complete SSL handshake." en un Nagios client server

Como resolver: "Error: Could not complete SSL handshake." en un Nagios client server


Revisando los logs del sistema se encontró lo siguiente:
root@sftpserver:/var/log# tail -300 syslog
Mar 20 16:29:18 sftpserver nrpe[23687]: Error: Could not complete SSL handshake. 1

Se verificó el archivo de configuración del agente de Nagios (/etc/nagios/nrpe.cfg) para corroborar que los parámetros estén correctos.

Se intento verificar el servicio nrpe pero el mismo no existía como nrpe:
root@sftpserver:/var/log# service nrpe status
nrpe: unrecognized service
root@sftpserver:/var/log# service --status-all | grep -i nrp
 [ ? ]  bootmisc.sh
 [ ? ]  checkfs.sh
 [ ? ]  checkroot-bootclean.sh
 [ ? ]  hwclock.sh
 [ ? ]  killprocs
 [ ? ]  kmod
 [ ? ]  mountall-bootclean.sh
 [ ? ]  mountall.sh
 [ ? ]  mountdevsubfs.sh
 [ ? ]  mountkernfs.sh
 [ ? ]  mountnfs-bootclean.sh
 [ ? ]  mountnfs.sh
 [ ? ]  mpt-statusd
 [ ? ]  mtab.sh
 [ + ]  nagios-nrpe-server
 [ ? ]  networking
 [ ? ]  rc.local
 [ ? ]  sendsigs
 [ ? ]  udev-mtab
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot

Arriba se encontró el servicio nagios-nrpe-server, pero se desestimó por que el software de las herramientas de monitoreo suelen ser dos paquetes, producto y agente.

Se buscaron archivos de nombres similares a "nrpe*":
root@sftpserver:/etc# find / -name "nrpe*"
/etc/nagios/nrpe_local.cfg
/etc/nagios/nrpe.d
/etc/nagios/nrpe.cfg
/run/nagios/nrpe.pid
/usr/share/man/man8/nrpe.8.gz
/usr/sbin/nrpe
root@sftpserver:/etc# cat /run/nagios/nrpe.pid
2608
root@sftpserver:/etc# ps -ef | grep 2608
nagios    2608     1  0 Mar17 ?        00:00:21 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
root     24728 24424  0 17:28 pts/1    00:00:00 grep 2608


Fue encontrado el proceso "/usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d" pero a pesar de esto, el mismo mostraba errores en el servidor de monitoreo.

Ya que el único servicio encontrado fue nagios-nrpe-server fue reiniciado.
root@sftpserver:/etc# service nagios-nrpe-server restart
[ ok ] Stopping nagios-nrpe: nagios-nrpe.
[ ok ] Starting nagios-nrpe: nagios-nrpe.


Esta vez se encontró que luego del reinicio del servicio el mismo no iniciaba:
root@sftpserver:/etc# service  --status-all | grep nrpe
 [ ? ]  bootmisc.sh
 [ ? ]  checkfs.sh
 [ ? ]  checkroot-bootclean.sh
 [ ? ]  hwclock.sh
 [ ? ]  killprocs
 [ ? ]  kmod
 [ ? ]  mountall-bootclean.sh
 [ ? ]  mountall.sh
 [ ? ]  mountdevsubfs.sh
 [ ? ]  mountkernfs.sh
 [ ? ]  mountnfs-bootclean.sh
 [ ? ]  mountnfs.sh
 [ ? ]  mpt-statusd
 [ ? ]  mtab.sh
 [ - ]  nagios-nrpe-server
 [ ? ]  networking
 [ ? ]  rc.local
 [ ? ]  sendsigs
 [ ? ]  udev-mtab
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot

root@sftpserver:/etc# service  nagios-nrpe-server status
[FAIL] nagios-nrpe is not running ... failed!
root@sftpserver:/etc# service nagios-nrpe-server start
[ ok ] Starting nagios-nrpe: nagios-nrpe.
root@sftpserver:/etc# service nagios-nrpe-server status
[FAIL] nagios-nrpe is not running ... failed!


Se continuaron buscando fallas en el log del OS en caso de que el “milestone” (por su nombre en UNIX) que controla como levantan los servicios esté fallando y no se encontró nada.
root@sftpserver:~# dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc ver
[    5.962678] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
(...)
[   16.580996] eth0: no IPv6 routers present


Entendiendo que el server y el agente deberían estar instalandos, se buscó el archivo nrpe-2.13.tar.gz para reinstalar pensando que quizás hubo pérdida de algún archivo durante la recuperación del la password de root del server días atrás.


Al querer  instalar el cliente se obtuvieron nuevos errores, como la falta de compiladores y path preestablecidos en el profile de root.
root@sftpserver:/tmp/nrpe-2.13# ./configure --disable-ssl --enable-command-args
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

Se eligió una instalación sin SSL por el error encontrado "Could not complete SSL handshake" y porque en la wiki se encontraron notas donde se informaba que por motivo desconocido se instaló Nagios sin SSL.

Se intentó instalar los paquetes faltantes usando un repositorio externo y saliendo por proxy pero se tuvo un error nuevamente.
root@sftpserver:/tmp/nrpe-2.13# export http_proxy=http://X.X.X.X:8080
root@sftpserver:/tmp/nrpe-2.13# apt-get install build-essential libssl-dev
(...)
Failed to fetch http://ftp.ccc.uba.ar/....deb  Unable to connect to X.X.X.Y:8080

Y con otro dirección lo mismo:
Failed to fetch http://ftp.ccc.uba.ar/....deb  Unable to connect to X.X.X.Z:8080

También falló configurando el apt.conf:
root@sftpserver:/tmp/nrpe-2.13# cat /etc/apt/apt.conf
Acquire::http::Proxy "http://X.X.X.Z:8080";
Nota: Apt-Get no soporta autenticación de HTTP proxy con dominio de Windows.

Se analizaron las posibilidades como la de instalar un paquete que permita usar autenticación de proxy y Apt-Get pero se dedujo que no sería conveniente.
El sofware que se intentó utilizar fue "Cntlm", pero la configuración retrasaría el troubleshooting.
root@sftpserver:/# vi /etc/cntlm.conf
#
# Cntlm Authentication Proxy Configuration
#
# NOTE: all values are parsed literally, do NOT escape spaces,
# do not quote. Use 0600 perms if you use plaintext password.
#

Username        userx
Domain          domainx
Password        xxx


En casos como este, y basado en mi experiencia en la familia "Fedora" (CentOS-RHEL) se suele realizar un repositorio desde el CD-Rom e instalar los paquetes esenciales, pero no se encontraba información de cuál es el archivo de configuración que hay que modificar para que funcione en Debian.

Se intentó crear un server de repositorio y realizar las instalaciones desde ahí, pero visto que se tenía el mismo problema para salir a internet (dominio de Windows) y que son pocos los servidores Debian ya que el estándar es Fedora, se abandonó esa tarea y se volvió al troubleshooting del software.

De esta manera se busco iniciar el proceso como demonio (-similar a servicio-) manualemente:
Usage: nrpe [-n] -c <config_file> <mode>

Options:
 -n            = Do not use SSL
 <config_file> = Name of config file to use
 <mode>        = One of the following two operating modes:
   -i          =    Run as a service under inetd or xinetd
   -d          =    Run as a standalone daemon

No se tuvo éxito:
root@sftpserver:~# /usr/sbin/nrpe -n -c /etc/nagios/nrpe.cfg -d
root@sftpserver:~# ps -ef | grep -i nag
root     13584 13061  0 10:10 pts/0    00:00:00 grep -i nag

Se realizó algo similar pero desde el init.d y con el usuario Nagios pero tampoco inició:
nagios@sftpserver:~$ /etc/rc.d/init.d/nagios restart

En una búsqueda detallada se intentó encontrar software dependiente del servicio pero no existía:
root@sftpserver:~# find / -name "nagio*"
/etc/nagios
/etc/nagios-plugins
/etc/init.d/nagios-nrpe-server
/etc/default/nagios-nrpe-server
/run/nagios
/var/lib/dpkg/info/nagios-nrpe-server.list
/var/lib/dpkg/info/nagios-plugins-common.md5sums
/var/lib/dpkg/info/nagios-plugins-standard.list
/var/lib/dpkg/info/nagios-plugins-common.list
/var/lib/dpkg/info/nagios-nrpe-server.prerm
/var/lib/dpkg/info/nagios-nrpe-server.preinst
/var/lib/dpkg/info/nagios-nrpe-server.postrm
/var/lib/dpkg/info/nagios-nrpe-server.conffiles
/var/lib/dpkg/info/nagios-nrpe-server.md5sums
/var/lib/dpkg/info/nagios-nrpe-plugin.conffiles
/var/lib/dpkg/info/nagios-plugins.list
/var/lib/dpkg/info/nagios-nrpe-plugin.list
/var/lib/dpkg/info/nagios-plugins-basic.md5sums
/var/lib/dpkg/info/nagios-plugins-standard.postinst
/var/lib/dpkg/info/nagios-plugins-basic.list
/var/lib/dpkg/info/nagios-nrpe-plugin.postrm
/var/lib/dpkg/info/nagios-plugins-basic.postrm
/var/lib/dpkg/info/nagios-nrpe-plugin.md5sums
/var/lib/dpkg/info/nagios-plugins-standard.postrm
/var/lib/dpkg/info/nagios-plugins-standard.md5sums
/var/lib/dpkg/info/nagios-plugins.md5sums
/var/lib/dpkg/info/nagios-plugins-basic.postinst
/var/lib/dpkg/info/nagios-nrpe-server.postinst
/var/lib/nagios
/usr/share/doc/nagios-plugins-common
/usr/share/doc/nagios-plugins-standard
/usr/share/doc/nagios-nrpe-plugin
/usr/share/doc/nagios-plugins
/usr/share/doc/nagios-plugins-basic
/usr/share/doc/nagios-nrpe-server
/usr/share/nagios-plugins
/usr/share/locale/de/LC_MESSAGES/nagios-plugins.mo
/usr/share/locale/fr/LC_MESSAGES/nagios-plugins.mo
/usr/lib/nagios
root@sftpserver:~#

Se intento directamente iniciar el proceso desde el init.d y como root y tampoco iniciaba:
root@sftpserver:~# /etc/init.d/nagios-nrpe-server start
[ ok ] Starting nagios-nrpe: nagios-nrpe.
root@sftpserver:~# /etc/init.d/nagios-nrpe-server status
[FAIL] nagios-nrpe is not running ... failed!


Se reviso nuevamente el /var/log/syslog intentando encontrar problemas en el milestone del inicio de los servicios y no sé encontró evidencia.


Se probó el script del check_nrpe propio de Nagios y mostraba errores:
root@sftpserver:~# /usr/lib/nagios/plugins/check_nrpe -H 192.168.X.X -c /etc/nagios/nrpe.cfg
Connection refused by host


Se reviso la red:
- No se encontraba actividad para el puerto asignado a Nagios
root@sftpserver:~# netstat -apn | grep :5666
root@sftpserver:~# lsof -i:5556
- No se encontraba iptables (filtración de paquetes) configurado con política restrictiva
root@sftpserver:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Se observó que el servidor de Nagios rechazaba el puerto del cliente. Luego se descartó por qué telnet está deshabilitado en el otro host.
root@sftpserver:~# telnet 127.0.0.1 5666
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Volviendo a los servicios tampoco se encontró xinetd configurado
root@sftpserver:~# /etc/init.d/xinetd restart
-bash: /etc/init.d/xinetd: No such file or directory


Se revisó el estado del apache, en caso de que nagios-nrpe-server sea server zookeeper debería estar levantado. De esta forma faltaría un cliente definitivamente.
root@sftpserver:~# ps aux | grep -i zookeeper
root      3178  0.0  0.1   7832   892 pts/0    S+   11:03   0:00 grep -i zookeeper


Se hizo una modificación en /etc/nagios/nrpe.cfg y está vez el servicio inició:
root@sftpserver:~# service nagios-nrpe-server restart
[....] Stopping nagios-nrpe: nagios-nrpestart-stop-daemon: warning: failed to kill 2959: No such process
. ok
[ ok ] Starting nagios-nrpe: nagios-nrpe.
root@sftpserver:~# service nagios-nrpe-server status
[ ok ] nagios-nrpe is running.

root@sftpserver:~# ps -ef | grep -i nrpe
nagios    3800     1  0 11:46 ?        00:00:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
root      3897  2788  0 11:46 pts/0    00:00:00 grep -i nrpe

root@sftpserver:~# /usr/lib/nagios/plugins/check_nrpe -H localhost
NRPE v2.13
root@sftpserver:~# /usr/lib/nagios/plugins/check_nrpe -H 192.168.X.X
Connection refused by host


El servició a pensar de estar levantado continuaba sin informar su actividad al server. Se encontró lo siguiente en el syslog:
Mar 27 11:51:49 sftpserver nrpe[3981]: Starting up daemon
Mar 27 11:51:49 sftpserver nrpe[3981]: Warning: Daemon is configured to accept command arguments from clients!
Mar 27 11:51:49 sftpserver nrpe[3981]: Listening for connections on port 5666
Mar 27 11:51:49 sftpserver nrpe[3981]: Allowing connections from: 127.0.0.1,192.168.X.X
Mar 27 11:52:15 sftpserver nrpe[4089]: Could not read request from client, bailing out...


Al intentar leer los datos de la memoria con el server como localhost se obtuvo nuevamente el error del SSL.
root@sftpserver:/var/log# /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_mem
CHECK_NRPE: Error - Could not complete SSL handshake.

Se leyó el script de arranque y se vio que no estaba configurado para tomar automáticamente la opción de No SSL.
root@sftpserver:/var/log# cat /etc/init.d/nagios-nrpe-server
(...)
# Include nagios-nrpe defaults if available
if [ -f /etc/default/nagios-nrpe-server ] ; then
        . /etc/default/nagios-nrpe-server
fi
# we also used to include this file, so if it's there
# we include it as well
if [ -f /etc/default/nagios-nrpe ]; then
        . /etc/default/nagios-nrpe
fi
if [ "$NICENESS" ]; then NICENESS="-n $NICENESS"; fi

#since /var/run can be wiped completly we create our run directory here
if [ ! -d "$PIDDIR" ]; then
        mkdir "$PIDDIR"
        chown nagios "$PIDDIR"
fi
(...)


Se lanzó el proceso como demonio y con No SSL:
root@sftpserver:/var/log# /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d --no-ssl
root@sftpserver:/var/log# ps -ef | grep -i nrpe
nagios    4915     1  0 14:47 ?        00:00:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d --no-ssl


Con esto los errores desaparecieron y el cliente comenzó a informar. Sin embargo el error con el check era el mismo:
root@sftpserver:/var/log# /usr/lib/nagios/plugins/check_nrpe -H 192.168.X.X
Connection refused by host

Se buscaron todos los scripts de inicio dependientes, en ninguno estaba configurado el No SSL a pesar de que el la Wiki se informaba de que había sido compilado de esta manera.
root@sftpserver:/home# find / -name "*nrpe*"
/etc/rc0.d/K01nagios-nrpe-server
/etc/rc6.d/K01nagios-nrpe-server
/etc/rc1.d/K01nagios-nrpe-server
/etc/rc4.d/S02nagios-nrpe-server
(...)
/etc/rc5.d/S02nagios-nrpe-server
(...)
/etc/rc2.d/S02nagios-nrpe-server
/etc/default/nagios-nrpe-server
/etc/rc3.d/S02nagios-nrpe-server
(...)



Conclusiones:

·         El agente de Debian se llama nagios-nrpe-server y no nrpe como en Fedora, esto se puede prestar a confusión pero es probable que se haya  hecho así con el fin de diferenciar los paquetes de los OS flavors.

·         Si se reinicia un equipo Debian Nagios siempre debe ser invocado manualmente como </usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d --no-ssl> de  lo contrario no funcionará.

·         Connection refused by host es normal usando check_nrpe ya que este utiliza SSL, el cual está deshabilitado en nuestros hosts.

El problema se puede resolver modificando todas las entradas de los scripts de inicio por una sin SSL, ó se puede poner un script sencillo realizado por uno mismo.


Saludos!

lunes, 31 de octubre de 2016

Como instalar el entorno gráfico en Solaris 11

Entorno gráfico en Solaris 11


1) ## Instalar solaris-desktop ##
root@solaris11:/~# pkg install solaris-desktop
           Packages to install: 339
            Services to change:  13
       Create boot environment:  No
Create backup boot environment: Yes

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
PHASE                                          ITEMS

Completed                            339/339   48236/48236  553.5/553.5    0B/s

Installing new actions                   79719/79719
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1
You have mail in /var/mail/root


2) ## Editar el archivo de configuración agregando Enable=true para xdmcp##
root@solaris11:~# vi /etc/gdm/custom.conf
[xdmcp]
Enable=true


3) ## Habilitar el servicio ##
root@solaris11:~# inetadm -e xvnc-inetd


4) ## Reiniciar aplicativo gráfico ###
root@solaris11:~# svcadm restart svc:/application/graphical-login/gdm:default


5) ## Verificar servicios en mantenimiento ##
root@solaris11:~# svcs -vx
svc:/application/graphical-login/gdm:default (GNOME Display Manager)
 State: maintenance since October 31, 2016 12:49:07 PM ART
Reason: Restarting too quickly.
   See: http://support.oracle.com/msg/SMF-8000-L5
   See: man -M /usr/share/man -s 1m gdm
   See: /var/svc/log/application-graphical-login-gdm:default.log
Impact: This service is not running.

svc:/system/consolekit:default (ConsoleKit)
 State: maintenance since October 31, 2016 12:49:07 PM ART
Reason: Restarting too quickly.
   See: http://support.oracle.com/msg/SMF-8000-L5
   See: man -M /usr/share/man -s 1m console-kit-daemon
   See: /var/svc/log/system-consolekit:default.log
Impact: This service is not running.


6) ## Reiniciar el equipo ##
root@solaris11:~# init 6


## Ingresar al entorno gráfico ##
Con la IP del equipo y nuestras credenciales se puede ingresar, con un cliente VNC como Real VNC https://www.realvnc.com/download/vnc/

Se ve de esta manera:


miércoles, 17 de agosto de 2016

Como resolver el error "[ID 702911 mail.crit] My unqualified host name (hostname) unknown" / "[ID 702911 mail.alert] unable to qualify my own domain name (hostname) -- using short name"

Como resolver el error "[ID 702911 mail.crit] My unqualified host name (hostname) unknown" / "[ID 702911 mail.alert] unable to qualify my own domain name (hostname) -- using short name"

Este error suele aparecer por una causa muy sencilla, el archivo /etc/hosts no tiene el dominio correspondiente al nombre del hosts.

Nuestra entrada debería lucir de esta manera:
172.24.0.200    localzone    localzone.xyzcorp.ad  loghost

Y no de esta:
172.24.0.200    localzone    loghost

Esta sencilla modificación resolvería el error.

[root@localzone:] dmesg

Wed Aug 17 12:28:49 ART 2016
Jul 22 13:10:58 localzone sendmail[1435]: [ID 702911 mail.crit] My unqualified host name (localzone) unknown; sleeping for retry
Jul 22 13:11:58 localzone sendmail[1438]: [ID 702911 mail.alert] unable to qualify my own domain name (localzone) -- using short name
Jul 22 15:17:45 localzone sendmail[14095]: [ID 702911 mail.crit] My unqualified host name (localzone) unknown; sleeping for retry
Jul 26 15:16:07 localzone sendmail[16570]: [ID 702911 mail.crit] My unqualified host name (localzone) unknown; sleeping for retry
Jul 26 15:17:07 localzone sendmail[16570]: [ID 702911 mail.alert] unable to qualify my own domain name (localzone) -- using short name
Aug  3 15:56:36 localzone sendmail[21510]: [ID 702911 mail.crit] My unqualified host name (localzone) unknown; sleeping for retry
Aug  3 15:57:36 localzone sendmail[21510]: [ID 702911 mail.alert] unable to qualify my own domain name (localzone) -- using short name
Aug  5 10:33:21 localzone sendmail[10440]: [ID 702911 mail.crit] My unqualified host name (localzone) unknown; sleeping for retry
Aug  5 10:34:21 localzone sendmail[10440]: [ID 702911 mail.alert] unable to qualify my own domain name (localzone) -- using short name
[root@localzone:] exit

[Connection to zone 'localzone' pts/5 closed]
[root@globalzone ~]# zlogin localzone
[Connected to zone 'localzone' pts/5]
Last login: Wed Aug 17 12:28:47 on pts/5
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005
You have new mail.
[root@localzone:] cat /etc/hosts
#
# Internet host table
#
::1     localhost
127.0.0.1       localhost
172.24.0.200    localzone    localzone.xyzcorp.ad  loghost
172.24.1.200    localzone_mgt

#ASR SERVER
198.232.168.156 transport.sun.com
192.18.110.18   inv-cs.sun.com
172.24.0.71     smtp.xyz.com
#
172.24.1.6 BKPSRV0040301 BKPSRV0040301.xyzcorp.ad
172.25.1.6 BKPSRV0020001 BKPSRV0020001.xyzcorp.ad
[root@localzone:]

miércoles, 20 de julio de 2016

Como obtener la lista de eventos resueltos/reparados de fmadm faulty

¿Como obtener la lista de eventos resueltos/reparados de fmadm faulty?


Simplemente nos movemos al /opt/SUNWexplo/output/nombre_del_explorer/fma.

De la siguiente manera:
root@serverx # cd /opt/SUNWexplo/output/explorer.856e46ea.serverx-2016.07.11.14.33/fma

Una vez allí, podemos leer el archivo fmdump.out, el cual no va a mostrar la lista de eventos y su estado:

root@serverx # more fmdump.out
TIME                 UUID                                 SUNW-MSG-ID
Jul 28 2010 07:52:38 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 SUNOS-8000-FU
Feb 12 2014 07:10:01 bbd28222-f44c-ce39-9131-bcaf555d47e7 PCIEX-8000-KP
Jul 01 2014 09:55:14 bbd28222-f44c-ce39-9131-bcaf555d47e7 FMD-8000-4M Repaired
Jul 01 2014 09:55:14 bbd28222-f44c-ce39-9131-bcaf555d47e7 FMD-8000-6U Resolved
Jul 01 2014 09:55:31 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 FMD-8000-4M Repaired
Jul 01 2014 09:55:31 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 FMD-8000-6U Resolved
Jul 01 2014 19:42:03 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63 SUNOS-8000-FU

El error que tenía era el siguiente:
root@serverx # fmadm faulty
--------------- ------------------------------------  -------------- ---------
TIME            EVENT-ID                              MSG-ID         SEVERITY
--------------- ------------------------------------  -------------- ---------
Jul 01 2014     8a5a5aaf-d998-409f-bda3-ad98bcb9ba63  SUNOS-8000-FU  Major

Host        : serverx
Platform    : SUNW,SPARC-Enterprise     Chassis_id  : BEF1019F98
Product_sn  :

Fault class : defect.sunos.eft.undiag.fme
FRU         : None
                  faulty

Description : The diagnosis engine encountered telemetry for which it was
              unable to perform a diagnosis.

Response    : Error reports have been logged for examination.

Impact      : Automated diagnosis and response for these events will not occur.

Action      : Use 'fmadm faulty' to provide a more detailed view of this event.
              Use 'fmdump -eV' to view the unexpected telemetry. Please refer
              to the associated reference document at
              http://sun.com/msg/SUNOS-8000-FU for the latest service
              procedures and policies regarding this diagnosis.

You have new mail in /var/mail/root

Y fue reparado de la siguiente manera:
root@serverx # fmadm repair 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63
fmadm: recorded repair to 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63
root@serverx # fmadm faulty
root@serverx # 

Como obtener la lista de eventos resueltos/reparados de fmadm faulty

¿Como obtener la lista de eventos resueltos/reparados de fmadm faulty?


Simplemente nos movemos al /opt/SUNWexplo/output/nombre_del_explorer/fma.

De la siguiente manera:
root@serverx # cd /opt/SUNWexplo/output/explorer.856e46ea.serverx-2016.07.11.14.33/fma

Una vez allí, podemos leer el archivo fmdump.out, el cual no va a mostrar la lista de eventos y su estado:

root@serverx # more fmdump.out
TIME                 UUID                                 SUNW-MSG-ID
Jul 28 2010 07:52:38 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 SUNOS-8000-FU
Feb 12 2014 07:10:01 bbd28222-f44c-ce39-9131-bcaf555d47e7 PCIEX-8000-KP
Jul 01 2014 09:55:14 bbd28222-f44c-ce39-9131-bcaf555d47e7 FMD-8000-4M Repaired
Jul 01 2014 09:55:14 bbd28222-f44c-ce39-9131-bcaf555d47e7 FMD-8000-6U Resolved
Jul 01 2014 09:55:31 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 FMD-8000-4M Repaired
Jul 01 2014 09:55:31 6557c9d8-f791-e8e6-a7c7-d38a74ffa8d9 FMD-8000-6U Resolved
Jul 01 2014 19:42:03 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63 SUNOS-8000-FU

El error que tenía era el siguiente:
root@serverx # fmadm faulty
--------------- ------------------------------------  -------------- ---------
TIME            EVENT-ID                              MSG-ID         SEVERITY
--------------- ------------------------------------  -------------- ---------
Jul 01 2014     8a5a5aaf-d998-409f-bda3-ad98bcb9ba63  SUNOS-8000-FU  Major

Host        : serverx
Platform    : SUNW,SPARC-Enterprise     Chassis_id  : BEF1019F98
Product_sn  :

Fault class : defect.sunos.eft.undiag.fme
FRU         : None
                  faulty

Description : The diagnosis engine encountered telemetry for which it was
              unable to perform a diagnosis.

Response    : Error reports have been logged for examination.

Impact      : Automated diagnosis and response for these events will not occur.

Action      : Use 'fmadm faulty' to provide a more detailed view of this event.
              Use 'fmdump -eV' to view the unexpected telemetry. Please refer
              to the associated reference document at
              http://sun.com/msg/SUNOS-8000-FU for the latest service
              procedures and policies regarding this diagnosis.

You have new mail in /var/mail/root

Y fue reparado de la siguiente manera:
root@serverx # fmadm repair 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63
fmadm: recorded repair to 8a5a5aaf-d998-409f-bda3-ad98bcb9ba63
root@serverx # fmadm faulty
root@serverx # 

miércoles, 18 de mayo de 2016

Cuantos cores tiene un procesador de Solaris?

A bueno,
Me pasó lo siguiente... viene el administrador de vmware, y me pregunta... cuantos procesadores tiene el server-alfa?

A lo que le respondo, muy fácil, hacés <psrinfo -pv> y lo vés:

root@server-alfa # psrinfo -pv
The physical processor has 64 virtual processors (0-63)
  UltraSPARC-T2+ (cpuid 0 clock 1164 MHz)
The physical processor has 64 virtual processors (64-127)
  UltraSPARC-T2+ (cpuid 64 clock 1164 MHz)
root@server-alfa #

Al otro día... viene y me dice, nono quería saber los cores, vos me  pasaste los sockets.
Ah...., bueno, hay un comando el <kstat>, lo podemos ver con eso, respondo...

Cuando razono un poco, me doy cuenta que el <kstat> da una salida engorrosa, con lo cual, recurro a un script que encontré por la web y que puede ser ejecutado por cualquier usuario:

#\/------------------------------\colocar lo de abajo/---------------------------------\/
#!/bin/bash

/usr/bin/kstat -m cpu_info | egrep "chip_id|core_id|module: cpu_info" > /var/tmp/cpu_info.log

nproc=`(grep chip_id /var/tmp/cpu_info.log | awk '{ print $2 }' | sort -u | wc -l | tr -d ' ')`
ncore=`(grep core_id /var/tmp/cpu_info.log | awk '{ print $2 }' | sort -u | wc -l | tr -d ' ')`
vproc=`(grep 'module: cpu_info' /var/tmp/cpu_info.log | awk '{ print $4 }' | sort -u | wc -l | tr -d ' ')`

nstrandspercore=$(($vproc/$ncore))
ncoresperproc=$(($ncore/$nproc))

speedinmhz=`(/usr/bin/kstat -m cpu_info | grep clock_MHz | awk '{ print $2 }' | sort -u)`
speedinghz=`echo "scale=2; $speedinmhz/1000" | bc`

echo "Total number of physical processors: $nproc"
echo "Number of virtual processors: $vproc"
echo "Total number of cores: $ncore"
echo "Number of cores per physical processor: $ncoresperproc"
echo "Number of hardware threads (strands or vCPUs) per core: $nstrandspercore"
echo "Processor speed: $speedinmhz MHz ($speedinghz GHz)"

# now derive the vcpu-to-core mapping based on above information #

echo -e "\n** Socket-Core-vCPU mapping **"
let linenum=2

for ((i = 1; i <= ${nproc}; ++i ))
do
        chipid=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $2 }'`
        echo -e "\nPhysical Processor $i (chip id: $chipid):"

        for ((j = 1; j <= ${ncoresperproc}; ++j ))
        do
                let linenum=($linenum + 1)
                coreid=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $2 }'`
                echo -e "\tCore $j (core id: $coreid):"

                let linenum=($linenum - 2)
                vcpustart=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $4 }'`

                let linenum=(3 * $nstrandspercore + $linenum - 3)
                vcpuend=`sed -n ${linenum}p /var/tmp/cpu_info.log | awk '{ print $4 }'`

                echo -e "\t\tvCPU ids: $vcpustart - $vcpuend"
                let linenum=($linenum + 4)
        done
done
#/\-----------------------------/colocar lo de arriba\---------------------------------/\


El script les va a dar una salida como la de abajo, donde vemos el total de procesadores, físicos, el total de procesadores virtuales (hilos) y el total de nucleos con info adicional por cada socket y cuantos hilos tiene cada core.

root@server-alfa # ./showcpucount.sh
Total number of physical processors: 2
Number of virtual processors: 128
Total number of cores: 16
Number of cores per physical processor: 8
Number of hardware threads (strands or vCPUs) per core: 8
Processor speed: 1164 MHz (1.16 GHz)

** Socket-Core-vCPU mapping **

Physical Processor 1 (chip id: 0):
        Core 1 (core id: 258):
                vCPU ids: 0 - 7
        Core 2 (core id: 265):
                vCPU ids: 8 - 15
        Core 3 (core id: 272):
                vCPU ids: 16 - 23
        Core 4 (core id: 279):
                vCPU ids: 24 - 31
        Core 5 (core id: 286):
                vCPU ids: 32 - 39
        Core 6 (core id: 293):
                vCPU ids: 40 - 47
        Core 7 (core id: 300):
                vCPU ids: 48 - 55
        Core 8 (core id: 307):
                vCPU ids: 56 - 63

Physical Processor 2 (chip id: 1):
        Core 1 (core id: 314):
                vCPU ids: 64 - 71
        Core 2 (core id: 321):
                vCPU ids: 72 - 79
        Core 3 (core id: 328):
                vCPU ids: 80 - 87
        Core 4 (core id: 335):
                vCPU ids: 88 - 95
        Core 5 (core id: 342):
                vCPU ids: 96 - 103
        Core 6 (core id: 349):
                vCPU ids: 104 - 111
        Core 7 (core id: 356):
                vCPU ids: 112 - 119
        Core 8 (core id: 363):
                vCPU ids: 120 - 127
root@server-alfa #