miércoles, 30 de abril de 2014

Cómo poner gráficas en el menu hover de Nagvis




Cuando usamos Nagvis se suele echar de menos las gráficas PNP, porque por defecto hacemos click en un host o servicio y después vamos al acceso directo de las gráficas.

Resulta que alguien ya había pensado en esto y propuso crear una plantilla para Nagvis.

Yo lo soluciono de la siguiente manera.
en default.hover.html añado el siguiente código justo antes de la última línea
<!-- END childs -->
<!-- BEGIN pnp4nagios -->
<tr>
        <td class="spacer" colspan="2"></td>
</tr>
<tr>
        <td colspan="2">
                <table>
                        <tr>
                                <th><label>Performance</label></th>
                        <tr>
                                <td>
                                        <img src=/pnp4nagios/image?host=[pnp_hostname]&srv=_HOST_&display=image&view=0&source=0>
                                </td>
                        </tr>
                </table>
        </td>
</tr>
<!-- END pnp4nagios -->
</table>

Esto tiene un inconveniente y es que en los servicios también se ve la gráfica HostPerformance. La solución es crear una nueva plantilla que modificaremos en aquellos servicios que queramos que muestren la gráfica.

cat pnp-service.hover.html
<table class="hover_table">
    <tr><th colspan="2">[lang_obj_type] ([lang_last_status_refresh]: [last_status_refresh])</th></tr>
    <tr><td class="label"><label>[lang_name]</label></td><td>[obj_name][obj_alias_braces]</td></tr>
    <!-- BEGIN service -->
    <tr><td class="label"><label>[lang_service_description]</label></td><td>[service_description]</td></tr>
    <!-- END service -->
    <!-- BEGIN host -->
    <tr><td class="label label[obj_state]"><label>[lang_state]</label></td><td class="state[obj_state]">[obj_state] [obj_in_downtime][obj_acknowledged] ([obj_state_type] - [obj_current_check_attempt]/[obj_max_check_attempts])</td></tr>
    <tr><td class="label"><label>[lang_output]</label></td><td>[obj_output]</td></tr>
    <tr><td class="label"><label>[lang_last_check]</label></td><td>[obj_last_check]</td></tr>
    <tr><td class="label"><label>[lang_next_check]</label></td><td>[obj_next_check]</td></tr>
    <tr><td class="label"><label>[lang_last_state_change]</label></td><td>[obj_last_state_change]</td></tr>
    <!-- END host -->
    <tr><td class="label label[obj_summary_state]"><label>[lang_summary_state]</label></td><td class="state[obj_summary_state]">[obj_summary_state] [obj_summary_in_downtime][obj_summary_acknowledged]</td></tr>
    <tr><td class="label"><label>[lang_summary_output]</label></td><td>[obj_summary_output]</td></tr>
    <!-- BEGIN service -->
    <tr><td class="label"><label>[lang_last_check]</label></td><td>[obj_last_check]</td></tr>
    <tr><td class="label"><label>[lang_next_check]</label></td><td>[obj_next_check]</td></tr>
    <tr><td class="label"><label>[lang_last_state_change]</label></td><td>[obj_last_state_change]</td></tr>
    <!-- END service -->

<!-- BEGIN pnp4nagios -->
<tr>
        <td class="spacer" colspan="2"></td>
</tr>
<tr>
        <td colspan="2">
                <table>
                        <tr>
                                <th><label>PNP-Graph</label></th>
                        <tr>
                                <td>
                                        <img src=/pnp4nagios/image?host=[pnp_hostname]&srv=[pnp_service_description]&display=image&view=0&source=0>
                                        <br>
                                        <img src=/pnp4nagios/image?host=[pnp_hostname]&srv=[pnp_service_description]&display=image&view=0&source=1>
                                </td>
                        </tr>
                </table>
        </td>
</tr>
<!-- END pnp4nagios -->


</table>

Posteriormente vamos al mapa de Nagvis desbloqueamos(unlock) un servicio pulsando boton derecho unlock, volvemos a pulsar botón derecho sobre el servicio, le damos a modificar y cambiamos los siguientes parametros (hover_menu y hover_template).
 





Pulsamos en Guardar












Volvemos a pulsar botón derecho sobre el icono del servicio y pulsamos bloquear (lock).










Recargamos la página y al pasar el ratón por encima del icono del servicio modificado, deberíamos ver las gráficas del servicio.
 



martes, 22 de abril de 2014

Conexiones remotas desde Gnome

Cuando usamos linux normalmente viene integrado todo el software cliente de conexión a otros equipos.


Conexiones tipo Terminal
Vinagre es una aplicación que nos permite utilizar los clientes ssh, vnc y rdp. En nuestro caso sólo lo vamos a utilizar para vnc, así tenemos más opciones y que cada uno opte por la que más le interese.

#SSH
ssh %u@%h

#RDP
rdesktop -g 1024x764 -D -N -a 16 -z -x m -P -5 %h:%p

#VNC
vinagre --geometry 1024x768 %h:%p

#TELNET

telnet %h

Conexiones de intercambio de archivos
Gestion de archivos desde nautilus. Si pulsamos F3 en Nautilus obtenemos un segundo panel tipo Midnight Commander

#SAMBA
nautilus smb://%u@%h/%d

#SCP
nautilus sftp://%u@%h/%d

#FTP
nautilus ftp://%u@%h/%d

#FTP Publico
nautilus ftp://%h/%d


Leyenda:
Las variables corresponden a:
%h = Host al que nos vamos a conectar
%u = Usuario con el cual nos queremos conectar al host remoto
%d = Directorio del servidor remoto 
%p = puerto al que nos conectamos

miércoles, 26 de marzo de 2014

Como modificar iptables en TrendMicro IMSVA 8.5 para dar acceso a Nagios

Revisar las reglas actuales de Firewall
iptables -L 

Editar el script de reglas de firewall (En negrita lo que he añadido)
vi /etc/init.d/rcFirewall

set_snmp_access_rules()
{
    # set snmpaccess permission
    iptables -A INPUT -p udp -s IP_NAGIOS  -d IP_SERVIDOR_IMSS--dport 161 -j ACCEPT
}


start()
{
    echo -n "Applying firewall rules..."

    get_network_info

    set_basic_rules
    set_exposed_fix_port_rules
    set_web_access_rules
    set_ssh_access_rules
    set_postfix_access_rules
    set_internal_access_rules
    set_changeable_port_rules
    set_snmp_access_rules

    echo_success
    echo
}

 
Volver a cargar las reglas de Firewall
/etc/init.d/rcFirewall restart

Mostrar las reglas actuales de Firewall
iptables -L

jueves, 9 de enero de 2014

Cómo enviar los logs de un switch juniper a un servidor syslog

Nos conectamos por ssh o telnet al switch Juniper escribimoscliconfigure Y despues introducimos el comando: set system syslog host IP_SERVIDOR_SYSLOG any info  o a través de la configuración web syslog {
        user * {
            any emergency;
        }
        host IP_SERVIDOR_SYSLOG {
            any info;
        }
        time-format millisecond;
    }

Bibliografía:

http://www.juniper.net/techpubs/en_US/junos10.4/topics/reference/configuration-statement/syslog-edit-system.html

Syntax

syslog {archive {files number;size maximum-file-size;start-time "YYYY-MM-DD.hh:mm";transfer-interval minutes;(world-readable | no-world-readable);}console {facility severity;}file filename {facility severity;explicit-priority;match "regular-expression";archive {files number;size maximum-file-size;start-time "YYYY-MM-DD.hh:mm";transfer-interval minutes;(world-readable | no-world-readable);}structured-data {brief;}}host (hostname | other-routing-engine | scc-master) {facility severity;explicit-priority;facility-override facility;log-prefix string;match "regular-expression";}source-address source-address;time-format (millisecond | year | year millisecond);user (username | *) {facility severity;match "regular-expression";}}

viernes, 3 de enero de 2014

Cómo recolectar logs de Cisco con rsyslog en Red Hat / CentOS

Normalmente ya viene instalado en nuestro sistema Red Hat o Centos el demonio rsyslogd, pero viene configurado para recivir logs locales del propio servidor, no está preparado para recibir logs de otros equipos.

Deshabilitar SElinux? cat /etc/selinux/config
Deshabilitar Firewall? system-config-firewall-tui

Asi que vamos a configurar el servicio para recibir logs desde otros dispositivos de red (en nuestro caso switches y routers cisco).

Editamos el archivo /etc/rsyslog.conf

#Hay que descomentar algunas líneas para que el servidor 
#reciba logs de otro equipos.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514


# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


#Añadimos el nuevo archivo de log dedicado a los dispositivos CISCO
local6.emerg;local6.alert;local6.crit;local6.err;local6.warning;local6.notice;local6.info;local6.debug  /var/log/cisco


Reiniciamos el servicio
/etc/init.d/rsyslog restart
 
En los dispositivos Cisco introducimos los siguientes comandos. (Revisar si teneis alguna ACL que os impida llegar al servidor de logs)

conf t
logging count
logging queue-limit 1000
logging rate-limit 60
logging trap notifications
logging origin-id hostname
logging facility local6
logging IP_del_servidor_rsyslog
end



En el servidor de logs para ver los logs ejecutar:
tail -f /var/log/cisco
Jan  3 09:20:39 192.168.1.1 156: RTR-0: 000157: Jan  3 09:20:43.738 GMT: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/18, changed state to up
 

Como se puede acumular mucho log vamos a rotar los logs (durante 12 meses realizando un log por mes). si el log es menos de 1k no se rotará.
Creamos un archivo llamado /etc/logrotate.d/cisco y ponemos la siguiente configuración.
 
/var/log/cisco {
        mothly
        create 0644 root root
        rotate 12
        missingok
        notifempty
        size 1k
}

 

Para forzar la compresion de los logs rotados, editamos /etc/logrotate.conf y descomentamos:
# uncomment this if you want your log files compressed
compress


Para forzar la ejecución de la rotacion de los logs ejecutamos:
logrotate -vf  /etc/logrotate.conf

[root@syslogsrv]# ls -lh /var/log/cisco*
-rw-r--r--. 1 root root   0 ene  3 17:46 /var/log/cisco
-rw-r--r--. 1 root root 526 ene  3 17:46 /var/log/cisco-20140103.gz