miércoles, 7 de mayo de 2014

Cómo puedo mejorar el rendimiento de Zimbra


Deshabilitar la capa SSL de seguridad en los procesos internos entre los servidores Zimbra (LDAPS, ...), normalmente es una red interna securizada por un firewall y de esta forma nos ahorramos RAM y proceso de CPU.
zmlocalconfig -e zimbra_require_interprocess_security=0

Heap Size 

Por lo general debe ser entre un 20% y un 30% de la memoria total del servidor. Sin pasarse de 6,4GB.Tener en cuenta que al servidor es preferible ampliar la RAM de Mysql.
Si tenemos 20GB le asignamos 5GB
zmlocalconfig -e mailboxd_java_heap_size=5120
Heap size reserved for classes
por defecto viene definido muy bajo 128 hay que ampliarlo a: 
-XX:PermSize=196m -XX:MaxPermSize=350m

CMS y GC

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
Uses the concurrent mark sweep collector (CMS) and the parallel new garbage collector (GC) together.

-XX:SoftRefLRUPolicyMSPerMB=1
This option helps evict entries from the caches held by the mailbox server. Not setting this option will result in softly reachable (ie, evictable) cache objects filling up the heap and causing out of memory errors.


Memoria de MySQL
nano /opt/zimbra/conf/my.cnf
#Ampliamos el buffer entre un 25% y un 35% de la memoria RAM total del #servidor

innodb_buffer_pool_size        = 7516192768

#Por defecto innodb_max_dirty_pages_pct = 90 
#Esto guarda muchas transacciones en memoria y cuando lo va 
#a escribir en el disco duro todo el sistema se enlentece. Si lo 
#bajamos al 10% escribe en disco más amenudo pero menos cantidad.
innodb_max_dirty_pages_pct = 10

Configurar DKIM en Zimbra 8

Generar una clave de registro DNS de tipo DKIM para el dominio midominio.es
zimbra@host:/root$ /opt/zimbra/libexec/zmdkimkeyutil -a -d midominio.es
DKIM Data added to LDAP for domain midominio.es with selector 4D23690A-D5CF-11E3-9562-BE9DEF34D14A
Public signature to enter into DNS:
4D23690A-D5CF-11E3-9562-BE9DEF34D14A._domainkey IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIGfMA0GCSqG...." )  ; ----- DKIM key 4D23690A-D5CF-11E3-9562-BE9DEF34D14A for midominio.es


Dar de alta en el DNS el registro que nos ha generado el comando anterior:
si usas bind9 el registro dentro de la zona midominio.es sería el siguiente:
4D23690A-D5CF-11E3-9562-BE9DEF34D14A._domainkey.midominio.es.    IN    TXT    "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqG...."

Comprobar que se ha creado el registro DNS
nslookup -type=txt 4D23690A-D5CF-11E3-9562-BE9DEF34D14A._domainkey.midominio.es.

Comprobar que el registro DNS para DKIM funciona correctamente
/opt/zimbra/opendkim/sbin/opendkim-testkey -d midominio.es -s 4D23690A-D5CF-11E3-9562-BE9DEF34D14A -x /opt/zimbra/conf/opendkim.conf -vvv

Bibliografía:
http://tipstricks.itmatrix.eu/?p=1587

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