Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Monitoring RIPE Atlas measurements network with...

Monitoring RIPE Atlas measurements network with ELK

Avatar for I. Ortiz de Urbina Cazenave

I. Ortiz de Urbina Cazenave

November 17, 2014

Other Decks in Technology

Transcript

  1. Elasticsearch meetup | Amsterdam | 17 Nov 2014 Monitoring RIPE

    Atlas measurements network with ELK Andreas - [email protected] Iñigo - [email protected] - @ioc32 Science Division
  2. RIPE Atlas Andreas & Iñigo - ELS meetup - Nov

    2014 What is RIPE Atlas 2 Largest measurement network https://atlas.ripe.net
  3. RIPE Atlas Andreas & Iñigo - ELS meetup - Nov

    2014 Measurement Devices 3 v1 & v2: Lantronix XPort Pro v3: TP-Link TL-MR3020 RIPE Atlas anchor: Soekris net6501-70
  4. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas RIPE Atlas Numbers • ~7300 probes online • ~8000 users • ~6700 ongoing measurements - ~250 built-ins - ~6500 user defined measurements • ~2300 results per second • 40 infra production servers 4
  5. RIPE Atlas Andreas & Iñigo - ELS meetup - Nov

    2014 Infrastructure Overview 5
  6. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Why ELK? • Central Logging • Easy to setup and integrate with existing stacks • Out of the box data visualisation • Custom Dashboards 6
  7. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Logs • RIPE Atlas httpd access logs • RIPE Atlas Software (warning, error, critical) • Hadoop, HBase, zookeeper, Thrift2 • Other: - Syslog - ansible-playbook(1) - Custom scripts 7
  8. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Logging pipeline overview • Servers publish events to RabbitMQ broker • Dedicated vhost/exchange/queue per subsystem • Acknowledged messages, persistent when required • Workers consume events from queues • Perform arbitrary data transformation on raw data • Bulk index events • Elasticsearch and Kibana3 • Log search • Log analysis and visualisation 8
  9. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Cluster description • Small size: ~250M docs, 30+ indices, 200+ shards, ~1K events/sec • 3x dedicated servers (Dell PowerEdge C5000 chassis) • 4x 1TB disks (7.2K RPM), 32GB of RAM • No dedicated master node • Dedicated standalone cluster for monitoring and index management • PXE booted, RAM based root FS • Centos 6.5 9
  10. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Cluster description • elasticsearch-1.4.0-1, marvel 1.2.1 • Shard overallocation allowed • Primary shard number defaults to number of data nodes • Semi-structured logging • logstash/log4j-jsonevent-layout • Managed by Ansible playbooks • Support for standalone and distributed clusters • Support for dedicated and shared nodes • Dynamically template cluster recovery settings 10
  11. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Index management • Management operations • Create, close, delete, optimise • Update aliases • Every supported index gets: • 1 write alias (e.g. atlas-httpd_) • N read aliases (e.g. atlas-httpd_1w) • 1 index template • Currently supporting 7 indices for 2 teams • Workflows scheduled with Azkaban • virtualenv with elasticsearch/curator and custom scripts 11
  12. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Lessons learned • Strip disk IO across all 4 disks • Limit concurrent access if SSDs are not available • Assign and lock 50% of RAM, up to 32GB • mmapped shard indices • Disable • index auto-creation • discovery.zen.multicast • Pin package/plugin versions • Optimise bulk index requests with physical size in mind, not number of documents 13
  13. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Lessons learned • Beware of hot-spots, unbalanced cluster state when routing is turned on • When importing datasets, consider: • index refresh interval • async replication • number of replicas • Ensure access to resources • Open file descriptors, mmap counts, allocatable memory 14
  14. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Lessons learned • Use index templates • Custom mappings, settings and aliases • elasticsearch-py, basic tasks properly implemented • reindex(), scan(), streaming_bulk() • Multi-field type • Exclude fields from _all • Default settings “Just work” for the most part 15
  15. Andreas & Iñigo - ELS meetup - Nov 2014 RIPE

    Atlas Use cases • Reveal Bugs • Show different Outages • Monitoring Behaviours 16
  16. RIPE Atlas Andreas & Iñigo - ELS meetup - Nov

    2014 Other dashboards: API logs 25
  17. RIPE Atlas Andreas & Iñigo - ELS meetup - Nov

    2014 Other dashboards: RIS disk usage 27