log all the things
play

Log all the things! Honza Krl @honzakral Logs? Events! Log lines - PowerPoint PPT Presentation

Log all the things! Honza Krl @honzakral Logs? Events! Log lines Twitter feed Invoices Metrics Why? What happened last Tuesday? Grep? Multiple machines Multiple logs Analysis/Discovery Time period Time? Time?! Time! apache


  1. Log all the things! Honza Král @honzakral

  2. Logs?

  3. Events! Log lines Twitter feed Invoices Metrics

  4. Why?

  5. What happened last Tuesday?

  6. Grep? Multiple machines Multiple logs Analysis/Discovery Time period

  7. Time? Time?! Time! apache [23/Jan/2014:17:11:55 +0000] unix timestamp 1390994740 log4j [2014-01-29 12:28:25,470] postfix.log Feb 3 20:37:35 ISO 8601 2009-01-01T12:00:00+01:00

  8. Correlate events Web Server logs VS Load Balancer see immediately that caching is off static files leaking to gunicorn Web Server VS Database 500s VS Deploys new version has a bug Traffic VS Ad Campaigns

  9. Ideal state Central storage Even for data from different systems Enriched data IP -> location, hostname URL -> author, product, category Search user:honza status:404 Analysis Visualisations for easy pattern discovery

  10. Centralised Logging

  11. Steps Collect data Parse data Enrich data Store data Search and aggregate Visualize data

  12. Elastic Stack

  13. Steps in Elastic Stack Collect data Parse data Enrich data Store data Search and aggregate Visualize data

  14. Steps in Elastic Stack Collect data Parse data Enrich data Store data Search and aggregate Visualize data

  15. protocols: http: metricbeat: ports: [80, 8000] modules: - module: redis mysql: metricsets: ["info"] ports: [3306] hosts: ["host1"] period: 1s redis: enabled: true ports: [6379] - module: apache metricsets: ["info"] pgsql: hosts: ["host1"] ports: [5432] filebeat: period: 30s prospectors: enabled: true thrift: - paths: ports: [9090] - "logs/access.log" document_type: access multiline: pattern: ^# output: negate: true logstash: match: after hosts: ["localhost:5044"]

  16. Inputs Monitoring collectd, graphite, ganglia, snmptrap, zenoss Datastores elasticsearch, redis, sqlite, s3 Queues kafka, rabbitmq, zeromq Logging beats, eventlog, gelf, log4j, relp, syslog, varnish log drupal_dblog, gemfire, heroku, sqs, s3, twitter Platforms exec, generator, file, stdin, pipe, unix Local Protocol imap, irc, stomp, tcp, udp, websocket, wmi, xmpp

  17. Filters aggregate alter anonymize collate csv cidr clone cipher checksum date dns drop elasticsearch extractnumbers environment elapsed fingerprint geoip grok i18n json json_encode kv mutate metrics multiline metaevent prune punct ruby range syslog_pri sleep split throttle translate uuid urldecode useragent xml zeromq ...

  18. Outputs Store elasticsearch, gemfire, mongodb, redis, riak, rabbitmq, solr ganglia, graphite, graphtastic, nagios, opentsdb, statsd, zabbix Monitoring Notification email, hipchat, irc, pagerduty, sns gelf, http, lumberjack, metriccatcher, stomp, tcp, udp, websocket, Protocol xmpp google big query, google cloud storage, jira, loggly, riemann, s3, External service sqs, syslog, datadog External monitoring boundary, circonus, cloudwatch, librato Local csv, dots, exec, file, pipe, stdout, null

  19. 
 
 
 Distributed Search Engine Open Source 
 Document-based 
 Based on Lucene JSON over HTTP

  20. Data Management Cluster Collection of Nodes node 1 node 2 node 3 Index orders orders orders Collection of Shards 1 2 2 1 4 3 3 4 Shard products products products Unit of scale 1 2 Distributed across cluster Primary and replica

  21. Time based data flow replicas to speed up search Current on stronger boxes snapshot Week old keep only 1 replica Month old move to weaker boxes 2 months close the indices 3 months delete

  22. Architecture Collect Enrich Store Visualize

  23. Logging and Python

  24. Enhance your logs Track metrics execution time query time # of queries Include metadata user_id content Log as JSON

  25. Structlog Add structured info Track info through services Log to file Add filebeat to read the file

  26. Thanks! Honza Král @honzakral

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend