jueves, 20 de agosto de 2015

Variables para Optimizar MysQL


Variables para optimizar MySQL


innodb_buffer_pool_size: Cuanta memoria usaran las tablas InnoDB que usaran para la carga de memoria en los datos e indices.
En servidores dedicados se recomienda un 50% a 80% de la RAM.

innodb_log_file_size: Se debe incrementar esta variables para para mejorar el rendimiento.

innodb_flush_method: Cuando se usa controladores de RAID, es mejor usar la opción O_DIRECT. Esto previene "doble buffer", cuando no se tienen estos RAIDS es
mejor no usarlo.

innodb_flush_neighbors: Es mejor dejar el parámetro deshabilitado (0) en discos SSD, los cuales no tienen ninguna ventaja con IO secuencial.

innodb_io_capacity y innodb_io_capacity_max: Estas variables influencian cuantos trabajos background por segundo pueden haber.

innodb_lru_scan_depth: Si incrementas innodb_io_capacity,  tambien se debe incrementar esta variable.


Replicación.

log-bin: Activarlo, te permite recuperar cierta información que se haya perdido, ante un daño de la base de datos.

expire-logs-days: Por default los logs duran para siempre, lo recomendado seria mantenerlos de 1 a 10 dias.

server-id: Id único que se le da al servidor.



Misc.


timezone=GMT: Cambiar el timezone a un default, por lo general se usa el GMT

sql-mode: Variable para configurar algunas propiedades que le queramos dejar a la entidad. Como,
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,
NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,
NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY.

skip-name-resolve: Con esta variable podemos desahabilitar la reversa de los nombres de las conexiones.

max_connect_errors: Maximo de errores al conectarse para bloquear la conexión.

max-connections: El default es 151, pero yo por lo general uno 500 usuarios  simultáneos.





















martes, 18 de agosto de 2015

Mensajes de Nagios al Whatsapp

Aquí dejo los pasos para poder configurar nuestro Nagios, para que nos envíe alertas a nuestro Whatsapp. Cabe mencionar que el numero de celular que se configure para ser quien se envíe correo, no podría ser utilizado en el celular.

Instalar librerías de Python.
yum install python python-dateutil python-argparse python-dev python-setuptools
yum  install python-devel.x86_64
Clonamos yowsup,
git clone https://github.com/tgalal/yowsup
Nos cambiamos al directorio:
cd yowsup
Cambiamos los derechos:
chmod +x setup.py
Ejecutamos
python setup.py install
Cambiamos los derechos:
chmod +x yowsup-cli
Probamos que funcione:
./yowsup-cli 
Available commands:===================demos, registration, version

Después ejecutamos
./yowsup-cli registration --requestcode sms --phone XXXXXXXXXXXX --cc 52 --mcc 334 --mnc 020 
La salida sera:
INFO:yowsup.common.http.warequest:{"status":"sent","length":6,"method":"sms","retry_after":1805}
status: sent
retry_after: 1805
length: 6
method: sms
./yowsup-cli registration --register 185-317 --phone XXXXXXXXXXXX --cc 52
La salida será:
INFO:yowsup.common.http.warequest:{"status":"ok","login":"XXXXXXXXXXXX","pw":"YYYYYYYYYYYYYYYYYY","type":"existing","expiration":1464632128,"kind":"free","price":"$13.00","cost":"13.00","currency":"MXN","price_expiration":1442951212}
status: ok
kind: free
pw: YYYYYYYYYYYYYYYYYY
price: $13.00
price_expiration: 1442951212
currency: MXN
cost: 13.00
expiration: 1464632128
login: 5216677919425
type: existing
Crearemos un archivo, vim yowup-cli.conf y copiaremos la información siguiente:

cc=52 #Your country code
phone=XXXXXXXXXXXX #Your phone number
id= #This is where you insert your IMEI number (not needed)
password= YYYYYYYYYYYYYYYYYY #your password which you got from registration command

Probar el envío de Whatsapp, con nagios:
./yowsup-cli demos -c yowsup-cli.config -s NUM_TELEFONO_ENVIAR “this is a test”
CONFIGURACION DE NAGIOS

Copiamos la carpeta donde configuramos todo a la ruta donde quedara:


cp yowsup/ /usr/local/nagios/libexec/

Despues, irnos a "cd /usr/local/nagios/etc/objects/"  y sacar un respaldo del archivo de configuración de los comandos, 

cp commands.cfg commands.cfg.old
Lo editamos y agregaremos 2 comandos nuevos, 
  • notify-host-by-whatsapp
$USER1$/yowsup/yowsup-cli -c $USER1$/yowsup/yowsup-cli.config -s $_CONTACTWHATSAPP$ “$NOTIFICATIONTYPE$ Host : $HOSTNAME$ - Service : $SERVICEDESC$ is $SERVICESTATE$ @ $LONGDATETIME$”
  • notify-service-by-whatsapp
$USER1$/yowsup/yowsup-cli -c $USER1$/yowsup/yowsup-cli.config -s $_CONTACTWHATSAPP$ “$NOTIFICATIONTYPE$ Host : $HOSTNAME$ is $HOSTSTATE$ @ $LONGDATETIME$”

Quedando asi:

 define command{
     command_name        notify-service-by-whatsapp
     command_line        $USER1$/yowsup/yowsup-cli -c $USER1$/yowsup/yowsup-cli.config -s $_CONTACTWHATSAPP$ ?$NOTIFICATIONTYPE$ Host : $HOSTNAME$ - Service : $SERVICEDESC$     is $SERVICESTATE$ @ $LONGDATETIME$?
     }
  define command{
     command_name        notify-host-by-whatsapp
     command_line        $USER1$/yowsup/yowsup-cli -c $USER1$/yowsup/yowsup-cli.config -s $_CONTACTWHATSAPP$ ?$NOTIFICATIONTYPE$ Host : $HOSTNAME$ is $HOSTSTATE$ @ $LONGDAT    ETIME$?
     }

Probamos que no tengamos configuraciones erroneas en Nagios:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si todo funciona bien,  reiniciamos Nagios:

service nagios restart
Esperamos a que se caiga un servicio que tengamos configurado.


Gracias a Unixmen (to Nismaj)