Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:pue:devops:sesion13 [29/03/2019 10:35] – [lab] mateinfo:cursos:pue:devops:sesion13 [26/11/2021 04:25] (actual) – [otros] mate
Línia 1: Línia 1:
-= sesión 13+= sesión 13 ELK
 == Container Orchestration Rosetta Stone == Container Orchestration Rosetta Stone
 ^       ^ unidad mínima ^ Gestor de disponibilidad\\ controllers ^ expose\\ services ^ webservices\\ exterior ^ ^       ^ unidad mínima ^ Gestor de disponibilidad\\ controllers ^ expose\\ services ^ webservices\\ exterior ^
Línia 113: Línia 113:
     environment:     environment:
       ROUTE_URIS: 'logstash://logstash:5000'       ROUTE_URIS: 'logstash://logstash:5000'
 +      DOCKER_LABELS: 'yes'
     volumes:     volumes:
       - /var/run/docker.sock:/var/run/docker.sock       - /var/run/docker.sock:/var/run/docker.sock
Línia 181: Línia 182:
 </code> </code>
 [[https://logz.io/blog/logstash-grok/]] [[https://logz.io/blog/logstash-grok/]]
 +
 +procesar en ELK
 +
 +logspout -> logstash -> kibana
 +
 +  - debemos habilitar las DOCKER_LABELS como variable de entorno en el deploy de la imagen (cualquier valor lo activa)<code yaml; ejemplo.yaml>
 +version: '3'
 +
 +services:
 +   db:
 +     image: mysql:5.7
 +     volumes:
 +       - db_data:/var/lib/mysql
 +     restart: always
 +     environment:
 +       MYSQL_ROOT_PASSWORD: ${MYSQL_DATABASE_PASSWORD}
 +       MYSQL_DATABASE: wordpress
 +       MYSQL_USER: wordpress
 +       MYSQL_PASSWORD: wordpress
 +
 +   wordpress:
 +     image: wordpress:latest
 +     ports:
 +       - 80
 +     restart: always
 +     environment:
 +       WORDPRESS_DB_HOST: db:3306
 +       WORDPRESS_DB_USER: wordpress
 +       WORDPRESS_DB_PASSWORD: wordpress
 +     deploy:
 +       labels:
 +         logformat: 'combined'
 +
 +volumes:
 +    db_data:
 +</code>
 +  - añadimos una etiqueta en nuestro contenedor para poder discriminar su origen (y formato) -> NO
 +  - modificamos el logstash.conf para añadir un **if** por etiqueta y decirle que formato tiene<code>
 +if [docker][image] =~ /^cadena/ {
 +  grok {
 +    match => {"message" => "COMBINEDAPACHELOG"}
 +  }
 +}
 +</code>
 +    * [[https://nathanleclaire.com/blog/2015/04/27/automating-docker-logging-elasticsearch-logstash-kibana-and-logspout/]]
 +    * [[https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html]]
 +    * [[https://discuss.elastic.co/t/help-with-multiple-if-else-if-configuration/40417]]
 +
 +  * modificamos la configuración de **logstash.conf** para que tenga un nuevo INPUT (de syslog):<code>
 +input {
 +  syslog {
 +    codec => cef
 +    port => 12345
 +  }
 +}
 +</code>
 +<code /etc/rsyslog.d/50-default.conf>
 +*.* @@<IP>:<puerto> # tcp
 +</code>
 +  * facility.priority
 +  * @ -> UDP (pérdida de paquetes permitida)
 +  * @@ -> TCP (seguridad de entrega)
 +  * el **-** indica **buffered**, poco prioritario... sin **-**, real time
 +  * para volcar los logs a una dirección IP/Puerto hay que hacer lo anterior y habilitar el **module(load="imtcp")**
 +  * para ver que está escuchando: ''sudo lsof -ni:12345''
  
 == otros == otros
-  * [[whitedisplay.com]]+  * [[http://www.whitedisplay.com]]
   * grok debugger   * grok debugger
   * vim   * vim
  • info/cursos/pue/devops/sesion13.1553880926.txt.gz
  • Darrera modificació: 29/03/2019 10:35
  • per mate