Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Drupaljam2015 logstash

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
IPv6 voor webbouwers
IPv6 voor webbouwers
Cargando en…3
×

Eche un vistazo a continuación

1 de 23 Anuncio

Más Contenido Relacionado

Similares a Drupaljam2015 logstash (20)

Más reciente (20)

Anuncio

Drupaljam2015 logstash

  1. 1. Centrale Logging Drupal Logging van meerdere Drupal-sites
  2. 2. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL AGENDA ● WIE ZIJN WIJ? ● BELANG VAN LOGGING? ● WAAROM CENTRALE LOGGING? ○ VOOR DRUPAL-DEVS ○ VOOR SYSOPS ● DE ELK-STACK ○ COMPONENTEN ● WAT LEVERT HET OP? ● ERVARINGEN TOT NU TOE ● VRAGEN?
  3. 3. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WIE ZIJN WIJ? ● Webscale ○ Hosting sinds 2001 ○ Hosting voor professionals ○ Gespecialiseerd in PHP frameworks ■ zoals Drupal ■ maar ook Symfony, Wordpress, Typo3 & Magento ○ ISO 9001 en 27001 NL datacenters ○ CISSP management ○ 100% open source ○ 300+ managed servers ○ 200+ Drupal sites ○ Webscale werkt voor: ■ Rijksoverheid, Gemeenten, Graydon, Jaguar Land Rover, ThiemeMeulenhoff ○ Webscale werkt met: ■ Cipix, d-Media, Merge, ezCompany
  4. 4. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL BELANG VAN LOGGING? ● Vastleggen van events ● Health-status van je applicatie / platform ● Troubleshooting ● Debugging ● Security ● Correlatie van events ● Statistieken gebruik
  5. 5. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAAROM CENTRALE LOGGING? Voor de Devs: ● Alle logging inzichtelijk vanuit een lokatie ● Doorzoekbaar middels queries ● Monitoren van nieuwe sites na deployment (ACC en PROD) ● Monitoren van bestaande sites na nieuwe updates ● Monitoren van koppelingen met externe systemen ● Periodieke controle (bijv. elke maand een rapportage t.b.v. audits)
  6. 6. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAAROM CENTRALE LOGGING? Voor de SysOps: ● Monitoren van errors ● Monitoren van ongewenst verkeer, proxy-requests, badbots, niet-legitieme requests ● Monitoren van performance ● Monitoren van verbruik resources, voor beslisvorming upgrades ● Correlaties leggen tussen events diverse logfiles van meerdere systemen ● Periodieke controle (bijv. elke maand een rapportage t.b.v. audits)
  7. 7. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAAROM CENTRALE LOGGING? Het probleem: ● Logdata is “ongestructureerd” en lastig doorzoekbaar ● Vaak op meerdere servers ● Zoeken op basis van grep, awk en regex-magic drupalsite.nl:80 80.60.70.109 - - [30/Mar/2015:12:26:22 +0200] "GET /sites/drupalsite.nl/files/styles/actionblock- image/public/uploads/actionblockimage/szwbannertoeslag300x250_0.gif?itok=0jUPhVnE HTTP/1.1" 200 39342 "http://www.kinderstadtilburg.nl/" "Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4" drupalsite.nl:80 80.60.70.109 - - [30/Mar/2015:12:26:22 +0200] "GET /sites/drupalsite.nl/modules/contrib/colorbox/styles/plain/images/loading_animation.gif HTTP/1.1" 200 2767 "http://www.drupalsite.nl/" "Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4" drupalsite.nl:80 80.60.70.109 - - [30/Mar/2015:12:26:22 +0200] "GET /sites/drupalsite.nl/themes/kinsbase/images/arrows.png HTTP/1.1" 200 408 "http://www.drupalsite.nl/" "Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4"
  8. 8. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAAROM CENTRALE LOGGING? De oplossing: ● Transporteer de logging naar een centrale lokatie ● Identificeren van velden op basis van “grok-filters” ● Filteren en verrijken van de data ● Maak van iedere logregel een json-document ● Sla het json-document op in ElasticSearch drupalsite.nl:80 80.60.70.109 - - [30/Mar/2015:12:26:22 +0200] "GET /sites/drupalsite.nl/files/styles/actionblock- image/public/uploads/actionblockimage/szwbannertoeslag300x250_0.g if?itok=0jUPhVnE HTTP/1.1" 200 39342 "http://www.drupalsite.nl/" "Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4" { "fqdn": "www01.drupal01.webscale.nl", "http_vhost": "drupalsite.nl", "http_port": "80", "http_clientip": "80.60.70.109", "http_ident": "-", "http_auth": "-", "http_timestamp": "30/Mar/2015:12:26:22 +0200", "http_method": "GET",
  9. 9. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAAROM CENTRALE LOGGING? Uiteindelijke situatie: ● Logging beschikbaar, doorzoekbaar en gevisualiseerd in Kibana
  10. 10. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL DE ELK-STACK ELASTICSEARCH LOGSTASH KIBANA
  11. 11. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL DE ELK-STACK ● Logstash-Forwarder ● Logstash-Receiver ● Redis ● Logstash-Indexer ● ElasticSearch ● Nginx / Kibana
  12. 12. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL DE ELK-STACK DRUPAL WEBSERVER LOGSTASH (INDEXER) LOGSTASH (RECEIVER) REDIS (MESSAGEQUEUE) ELASTICSEARCH KIBANA (WEBINTERFACE)
  13. 13. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL WAT LEVERT HET OP? ● Logging centraal beschikbaar ● Logging eenvoudig doorzoekbaar ● Devs hoeven niet meer via ssh in te loggen op server bij onderzoek ● Dashboards via een webinterface geven duidelijk overzicht van de status ● Debugging eenvoudiger ● Root-cause-analysis vele malen sneller bij problemen ● Statistieken over gebruik Drupal-Sites ● Periodieke audits kosten minder tijd
  14. 14. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL ERVARINGEN TOT NU TOE Positief: ● ELK is snel! ● Met de juiste opzet zeer stabiel ● Logstash-Forwarder lightweight en veilig (TLS) ● Logstash zeer flexibel en uitbreidbaar ● Makkelijk zoeken in Kibana ● Visualisaties veel eenvoudiger in Kibana4 ● Biedt al snel toegevoegde waarde
  15. 15. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL ERVARINGEN TOT NU TOE Negatief of wat kan beter: ● Maken grokfilters soms nog lastig ● Ontwikkeling van ELK gaat zeer snel, dus breekt soms bij nieuwe releases ● Documentatie en tutorials vaak out-of-date ● Schaalbare architectuur biedt wel wat uitdagingen ● Kibana nog beperkt in functionaliteit (t.o.v. bijv. Splunk) ● Kibana out-of-the-box geen authenticatie en autorisatie (wel met Shield-plugin)
  16. 16. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL ERVARINGEN TOT NU TOE Lessons Learned en plannen voor de toekomst: ● Centrale logging biedt zeker een flinke toegevoegde waarde ● Zowel voor de Devs als voor SysOps ● Let goed op “_grokparsefailures” ● grokdebug.herokuapp.com is een lifesaver! ● Nog meer logfiles opnemen ● Eventueel uitfaseren logstash-forwarder voor rsyslog (Jessie) ● Verder experimenteren met clustered-elasticsearch ● Implementeren authenticatie en authorisatie
  17. 17. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - DRUPAL LOG /var/log/drupal/drupal.log Apr 29 13:55:03 www01 drupal: 5|1430308503|cron|127.0.0.1|0||http://site|http://site.nl/index.php|||Cron run completed. Apr 29 14:00:02 www01 drupal: 5|1430308802|job_scheduler|127.0.0.1|0||http://site|http://site/index.php|||Finished processing scheduled jobs (0 sec s, 0 total, 0 failed). Apr 29 14:23:47 www01 drupal: 5|1430310227|user|109.232.42.91|0||https://www.site.nl|https://www.site.nl/|https://www.site.nl/||Login attempt failed for a.user.
  18. 18. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - LOGSTASH-FORWARDER /etc/logstash/logstash-forwarder.conf "network": { "servers": [ "java01.log01.webscale.nl:5000" ], "timeout": 15, "ssl ca": "/etc/logstash/java01.log01.webscale.nl.crt" }, "files": [{ "paths": [ "/var/log/drupal/drupal.log" ], "fields": { "type": "drupal", "fqdn": "www01.drupal01.webscale.nl" } }, { "paths": [ "/var/log/apache2/*access.log" ], "fields": { "type": "apache-vhost", "fqdn": "www01.drupal01.webscale.nl" } }, { "paths": [ "/var/log/apache2/*error.log" ], "fields": { "type": "apache-error", "fqdn": "www01.drupal01.webscale.nl" } } ] }
  19. 19. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - DRUPAL GROKFILTER DRUPAL_SYSLOGID [a-zA-Z0-9._-]+ DRUPAL_TYPE [a-zA-Z0-9._ -]+ DRUPAL_TIME %{MONTH} %{DAY} %{TIME} %{YEAR} DRUPAL_WATCHDOG %{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} %{DRUPAL_SYSLOGID:drupal_sylogid}: %{NUMBER:drupal_severity}|%{NUMBER:drupal_timestamp}|%{DRUPAL_TYPE:drupal_type}|%{IP:drupal_ip}|(?<drupal_uid>[^|]*)|(?<drupal_ username>[^|]*)|http(s)?://%{HOSTNAME:drupal_vhost}|(?<drupal_request>[^|]*)|(?<drupal_referer>[^|]*)|(?<drupal_link>[^|]*)| (?<drupal_message>.*) DRUPAL_WATCHDOG_VARNISH %{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} %{DRUPAL_SYSLOGID:drupal_sylogid}[%{NUMBER:drupal_syslogpid}]: %{NOTSPACE:varnish_interface} %{NOTSPACE:varnish_command} %{IP:varnish_source_ip} %{NUMBER:varnish_source_port} %{IP:varnish_destination_ip} %{NUMBER:varnish_destination_port} %{NOTSPACE:varnish_method} %{GREEDYDATA:varnish_message} DRUPAL_WATCHDOG_CRON %{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} %{DRUPAL_SYSLOGID:drupal_sylogid}: http(s)?://%{HOSTNAME:drupal_vhost}|%{NUMBER:drupal_timestamp}|%{DRUPAL_TYPE:drupal_type}|%{IP:drupal_ip}|(?<drupal_request>[^|] *)||%{NUMBER:drupal_severity}||(?<drupal_message>.*)
  20. 20. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - KIBANA DISCOVER drupal_severity:[1 TO 4] OR drupal_type:php
  21. 21. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - KIBANA VISUALIZE
  22. 22. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL SCREENSHOTS - KIBANA DASHBOARD
  23. 23. CENTRALE LOGGING DRUPALCENTRALE LOGGING DRUPAL VRAGEN?

×