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

martes, 12 de noviembre de 2013

VTP: Cisco VLAN Trunk Protocol

El protocolo VTP se utiliza para propagar la base de datos de VLANs por los switches.

Se establecen uno o dos switches como server (mantienen la bbdd de VLANs) y el resto como client (reciven actualizaciones de la bbdd de vlans).

Existe un modo transparent para los switches que dejarán pasar las actualizaciones VTP pero no actulalizarán su bbdd vlan propia.

El en equipo que hace de servidor
Switch(config)#vtp version 2
Switch(config)#vtp mode server
Device mode already VTP SERVER.
Switch(config)#vtp domain vtp1
Changing VTP domain name from NULL to vtp1
Switch(config)#vtp password vtp1
Setting device VLAN database password to vtp1



En los equipos que hacen de clientes
Switch2(config)#vtp version 2
Switch2(config)#vtp mode client
Device mode already VTP SERVER.
Switch2(config)#vtp domain vtp1
Changing VTP domain name from NULL to vtp1
Switch2(config)#vtp password vtp1
Setting device VLAN database password to vtp1


los comandos show:
show vtp status
show vtp domain
show vtp counters
show vlan brief


Bibliografía
http://www.cisco.com/en/US/tech/tk389/tk689/technologies_configuration_example09186a0080890607.shtml

Enlaces entre Antenas Cisco Aironet

Con una única vlan
configure terminal
interface dot11radio0.1
    encapsulation dot1q 1 native
    bridge group 1

interface fastEthernet0.1
    encapsulation dot1q 1 native
    bridge group 1

interface dot11radio0
    ssid SSID_modo_TRUNK
    vlan 1
    infrastructure-ssid

end
write memory

Con 4 vlans ID 1, ID 10, ID 20,  ID 30


configure terminal

interface Dot11Radio0.1
    encapsulation dot1Q 1 native

interface FastEthernet0.1
    encapsulation dot1Q 1 native

interface Dot11Radio0.10
    encapsulation dot1Q 10

interface FastEthernet0.10
    encapsulation dot1Q 10

interface Dot11Radio0.20
    encapsulation dot1Q 20

interface FastEthernet0.20
    encapsulation dot1Q 20

interface Dot11Radio0.30
    encapsulation dot1Q 30

interface FastEthernet0.30
    encapsulation dot1Q 30

interface Dot11Radio0
    ssid SSID_modo_TRUNK
    vlan 1
    infrastructure-ssid

end
write memory


Bibliografía:

jueves, 7 de noviembre de 2013

Nagios - not could be due to Performed to fork () error 'Resource temporarily unavailable'

El otro día me paso que hice una instalación desde cero de Nagios en RHEL 6.4 y al principio no me dí cuenta pero luego me fije que todos los servicios que usaban check_snmp fallaban dando el siguiente error:
Could not open pipe

Revisando el log de Nagios (nagios.log) se veía lo siguiente:
Warning: The check of service 'uptime' on host 'router1' not could be due to Performed  to fork () error 'Resource temporarily unavailable'. The check will be rescheduled.

Buscando un poquito en google encontré en la web comercial de Nagios.
http://support.nagios.com/wiki/index.php/Nagios_XI:FAQs leí que estos errores suelen ser debidos a límites impuestos al usuario en /etc/security/limits.conf. 
Para verificar los limites actuales podemos ejecutar:
ulimit -a En la web de Nagios nos recomiendan poner los siguientes valores:
* hard memlock 128 #locked memory
* soft memlock 128
* soft nofile 4096 #open files
* hard nofile 4096
* hard nproc 4096  #max user processes
* soft nproc 4096
* hard stack 20480 #stack size
* soft stack 20480

para aplicar los cambios tendremos que reiniciar.
Para verificar los límites después de reiniciar ejecutar:
ulimit -a
Para mejorar aún más el rendimiento de nuestro Nagios podemos deshabilitar el interprete perl embebido, configurando estas 2 variables en nuestro archivo de configuración nagios.cfg.
 enable_embedded_perl=0
 use_embedded_perl_implicitly=0 
Bibligrafía
http://support.nagios.com/wiki/index.php/Nagios_XI:FAQs

jueves, 10 de octubre de 2013

Liberar memoria cache y swap en Linux

#limpia_mem.sh
#Este script se puede programar por las noches con CRON
#para que al dia siguiente el equipo este fresco como una rosa
#
#Script para liberar memoria de forma segura en Linux
#
#!/bin/bash

echo "Comprobando como esta la memoria antes de hacer nada"
free -m

echo “Vaciando la memoria cache y swap“;

echo "Primero deshabilitamos la Swap"
swapoff -a

echo "Liberando de la cache las pagecache, dentries e inodes"
sync;sysctl -w vm.drop_caches=3;sync

echo "Por ultimo habilitamos la Swap"
swapon -a


echo "Comprobando la memoria despues de hacer los deberes XD"
free -m



Despues de ejecutar el script veremos algo parecido a esto:

[root@correo scripts]# ./limpia_mem.sh
Comprobando como esta la memoria antes de hacer nada
             total       used       free     shared    buffers     cached
Mem:          7983       7867        116          0        788       5200
-/+ buffers/cache:       1878       6105
Swap:         2047          0       2047
.Vaciando la memoria cache y swap.
Primero deshabilitamos la Swap
Liberando de la cache las pagecache, dentries e inodes
vm.drop_caches = 3
Por ultimo habilitamos la Swap
Comprobando la memoria despues de hacer los deberes XD
             total       used       free     shared    buffers     cached
Mem:          7983       1405       6577          0          0         78
-/+ buffers/cache:       1326       6657
Swap:         2047          0       2047

 

lunes, 8 de julio de 2013

Archivos de windows a excluir del escaneo en tiempo real de Trend Micro OfficeScan

Los archivos de bases de datos y los archivos cifrados normalmente no deberían de ser escaneados por el antivirus en tiempo real puesto que ganamos en rendimiento del equipo y no deberían representar una amenaza.

En la siguiente web http://esupport.trendmicro.com/solution/en-us/1059770.aspx Trend Micro nos propone una lista de archivos utilizados en sistemas Microsoft que no deberían ser escaneados por su producto OfficeScan.

Para configurar estas excepciones debemos entrar en la consola web de gestión de OfficeScan.


Equipos en red -> Administración de clientes




 

















Seleccionamos el grupo de equipos o unidad organizativa del dominio (OU) que nos interese y vamos a:
Configuración -> Configuración de la exploración -> Parámetros de escaneo en tiempo real.

Por ejemplo en los controladores de dominio habría que excluir los siguientes archivos.

Microsoft Active Directory Domain Controller
  • DRIVE:\WINNT\SYSVOL
  • DRIVE:\WINNT\NTDS
  • DRIVE:\WINNT\ntfrs
  • DRIVE:\WINNT\system32\dhcp
  • DRIVE:\WINNT\system32\dns

Resumen de listado de directorios a excluir:
C:\inetpub\logs\
C:\Program Files\Call Manager
C:\Program Files\Call Manager Attendant
C:\Program Files\Call Manager Serviceability
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions
C:\Program Files\Common Files\Microsoft Shared\Web Service Extensions
C:\Program Files\Common Files\Microsoft Shared\Web Storage System
C:\Program Files\Microsoft ISA Server\ISALogs
C:\Program Files\Microsoft Office Servers
C:\Program Files\Microsoft Operations Manager 2005
C:\Program Files\Microsoft SQL Server\MSSQL$MSFW\Dat
C:\Program Files\Microsoft SQL Server\MSSQL.X\OLAP\Data
C:\Program Files\Microsoft SQL Server\MSSQL\Data
C:\Program Files\SharePoint Portal Server
C:\Users\Default\AppData\Local\Temp
C:\Users\ServiceAccount\AppData\Local\Temp
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files
C:\WINDOWS\system32\LogFiles
C:\Windows\Syswow64\LogFiles
C:\Windows\Temp\Frontpagetempdir
C:\Windows\Temp\WebTempDir
C:\WINNT\NTDS
C:\WINNT\ntfrs
C:\WINNT\system32\dhcp
C:\WINNT\system32\dns
C:\WINNT\system32\IIS Temporary Compressed Files
C:\WINNT\system32\InetSrv
C:\WINNT\system32\LogFiles
C:\WINNT\SYSVOL
M:\
Q:\

Resumen de extensiones de archivo a excluir:
*.appstate
*.bak
*.dat
*.ldf
*.log
*.mdf
*.ndf
*.pf
*.pol
*.pst
*.tm
*.tmp
*.vmdk
*.vmem
*.zc


Bibliografía:
http://esupport.trendmicro.com/solution/en-us/1059770.aspx