# Monitorización

--- 

# Monitorización

* Utilidades de monitorización de consola
    * **htop**: cpu, memoria, general y por proceso
    * **dstat**: cpu, memoria, disco, red, paginación, sistema
    * **iotop**: entrada/salida disco, total y por proceso
    * **nmon**: cpu, memoria, disco, red, y mas ...
    * **Instalación**: aptitude install htop dstat sysstat nmon
* Herramientas monitorización externas
    * nagios/check_mk
    * newrelic
    * datadog


--- 

<img src='img/htop.png' />

.fx: imageslide

---

<img src='img/dstat.png' />

.fx: imageslide

---

<img src='img/iotop.png' />

.fx: imageslide

---

<img src='img/nmon.png' />

.fx: imageslide

---

# Monitorización externa (nagios/check_mk)

* check_mk es **software libre** y se puede [instalar muy fácil](http://omdistro.org/)
* check_mk incluye **un plugin** especifico para monitorización de postgres
* Está **incluido** por defecto en la instalación de check_mk
* Puede **inventorizar las bases de datos** del servidor
* Controlar el **tamaño de cada base de datos**
* **Estádisticas de performance** para cada base de datos
    * lecturas, escrituras, commits
* [Más información en la página de check_mk](https://mathias-kettner.de/checkmk_check_postgres_stat_database.html)

    
---

<img src='img/checkmk.png' />

.fx: imageslide

---

<img src='img/checkmk2.png' />

.fx: imageslide

--- 

# Monitorización externa (newrelic)

* Es un **servicio de pago**, con **capa gratuita** con retención de datos de **24 horas**
* Newrelic te ofrece **un agente** que se instala en el **sistema**
* Los datos se envían a sus servidores y tu tienes un **backend web** para verlos
* Existen **plugins** para monitorizar postgresql
    * [PPAS](https://newrelic.com/plugins/enterprisedb-corporation/31) por ejemplo
* Interesante si tenemos monitorización de aplicación también en newrelic para correlar
* Aunque es un **servicio caro**. [Precio](http://newrelic.com/application-monitoring/pricing)
---

<img src='img/newrelic.jpg' />

.fx: imageslide

--- 

# Monitorización externa (datadog)

* Es un **servicio de pago**, con **capa gratuita** con retención de datos de **24 horas**
* Datadog te ofrece **un agente** que se instala en el **sistema**
* Los datos se envían a sus servidores y tu tienes un **backend web** para verlos
* Tiene **plugin para postgresql**. [Integración](http://docs.datadoghq.com/integrations/postgresql/)
* Mucho **más barato** que newrelic. [Precio](https://www.datadoghq.com/pricing/)

---

# Monitorización externa (instalación del agente de datadog)

* Desde el panel de datadog
* **Instalar el agente**:
    * Integrations -> Agent
    * Seleccionar sistema operativo y seguir los pasos
* **Configurar el agente** para la integración con postgresql
    * Integrations -> Integrations
    * Seleccionar postgresql y seguir pasos
    * La ruta de configuración del agente en ubuntu es: /etc/dd-agent/conf.d
    * Reiniciar el agente
    * Comprobar con: **dd-agent info**
    
---

<img src='img/datadog.png' />

.fx: imageslide

---

# Configuración PostgreSQL Logs

    !python
    # logs por defecto
    log_destination = 'stderr'
    logging_collector = off
    log_line_prefix = ''
    log_directory = 'pg_log'
    log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

    # logging slow query
    log_min_duration_statement = 1000
    log_duration = off
    log_statement = 'none'

    # Auto explain
    shared_preload_libraries = 'auto_explain'
    auto_explain.log_min_duration = '3s'

