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.
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
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
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:
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";}}
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