$30 off During Our Annual Pro Sale. View Details »

Monitoramento de Aplicações com Prometheus, Gra...

Monitoramento de Aplicações com Prometheus, Grafana, AlertManager e VictoriaMetrics

Palestra apresentada por Aécio Pires aos alunos da disciplina sobre Monitoramento de Aplicações e Infraestrutura no IFPB.

Obrigado aos professores Pedro Carvalho Filho e Ruan Gomes pelo convite.

A palestra aborda o tema Observabilidade com enfoque no monitoramento de métricas de aplicações e infraestrutura de rede de computadores utilizando as ferramentas: Prometheus, Grafana, AlertManager, VictoriaMetrics e Kubernetes.

Aecio Pires

May 25, 2021
Tweet

More Decks by Aecio Pires

Other Decks in Technology

Transcript

  1. Cloud Architect na Mestre em Tecnologia da Informação pelo Colaborador

    em projetos open source: ◦ Zabbix-BR ◦ VictoriaMetrics (Helm Charts) ◦ Sensedia-OpenTools ◦ Descomplicando o Kubernetes ◦ Cetic/Helm-Zabbix Sobre mim... aeciopires.com @aeciopires linkedin.com/in/aeciopires github.com/aeciopires
  2. • A observabilidade permite que você entenda por que algo

    está errado, enquanto o monitoramento apenas avisa quando algo está errado. Não é um conceito novo e tem sua origem na teoria de engenharia e controle, onde foi introduzida pelo engenheiro húngaro-americano Rudolf E. Kálmán. • Yuri Shkuro, explica a diferença da seguinte maneira: ◦ O monitoramento mede o que você decide que é importante com antecedência; ◦ A observabilidade é a habilidade de fazer perguntas que você não sabe de antemão sobre seu sistema. • A observabilidade engloba a coleta, visualização e análise de métricas, eventos, logs e traces (ou M.E.L.T.) Fonte: https://newrelic.com/resources/ebooks/what-is-observability-pt https://www.infoq.com/presentations/uber-microservices-distributed-tracing Observabilidade
  3. • https://openapm.io/landscape • https://awesomeopensource.com/projects/observability • https://github.com/dukelion/awesome-observability • https://github.com/adriannovegil/awesome-observability • https://github.com/crazy-canux/awesome-monitoring

    • https://project-awesome.org/n1trux/awesome-sysadmin • https://github.com/Enapiuz/awesome-monitoring • http://canuxcheng.com/awesome-monitoring/ Bônus: Ferramentas de Observabilidade
  4. • É um kit de ferramentas de monitoramento e alerta

    open source criado em 2012 na SoundCloud. • Desde 2016, o Prometheus faz parte da CNCF- Cloud Native Computing Foundation. • Raspa (scraping) as métricas exportadas por uma ou mais aplicações. • Possui integrações com vários sistemas para visualização das métricas coletadas, envio de alertas, armazenamento de métricas a longo prazo. • Arquitetura modular e escrito em Go. Site: https://prometheus.io Github: https://github.com/prometheus/prometheus Exporters: https://prometheus.io/docs/instrumenting/exporters Fonte: https://prometheus.io/docs/introduction/overview Prometheus
  5. • Kubernetes é uma plataforma portável, extensível e de código

    fonte aberto que gerencia cargas de trabalho e aplicações executadas em contêineres, além de facilitar a configuração declarativa e a automação. • O Kubernetes automatiza o ciclo de vida de aplicações sem estados (stateless). • “Operators são uma forma de empacotar, implantar e administrar aplicações no Kubernetes. Eles automatizam o ciclo de vida de aplicações complexas, com estados (stateful), permitindo que um cluster Kubernetes tenha capacidades específicas de uma aplicação.” • Os Operators conhecem o estado interno de suas aplicações, de modo que podem coordenar a instalação e os upgrades, atuar na reparação de falhas e automatizar trabalhos de manutenção repetitivos. Kubernetes: Operator Hub: Site: https://kubernetes.io Site: https://operatorhub.io Código fonte: https://github.com/kubernetes/kubernetes Código fonte: https://bit.ly/30w9N7f Fonte: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes https://novatec.com.br/livros/operadores-kubernetes Kubernetes & Operators
  6. • https://kubernetes.io/docs • https://github.com/badtuxx/DescomplicandoKubernetes • http://blog.aeciopires.com/primeiros-passos-com-docker • https://speakerdeck.com/mrbobbytables/introduction-to-kubernetes-workshop • https://www.digitalocean.com/community/books/digitalocean-ebook-kubernetes-for-full-stack-developers

    • https://codelabs.developers.google.com/codelabs/k8s-kickstart • https://twitter.com/learnk8s • https://learnk8s.io/kubernetes-resources • https://learnk8s.io/blog • https://kubernetes.io/docs/reference/kubectl/cheatsheet • https://tinyurl.com/y52rm9wf • https://github.com/dennyzhang/cheatsheet-kubernetes-A4 • https://tinyurl.com/y56rsegg • https://github.com/RehanSaeed/Kubernetes-Cheat-Sheet Bônus: Docs sobre Kubernetes
  7. • Realiza o deploy e gerenciamento nativo do Prometheus em

    clusters Kubernetes, bem como de outros componentes de monitoramento relacionados, tais como: Grafana, AlertManager, VictoriaMetrics, entre outros. • O objetivo é simplificar e automatizar a configuração de uma stack de monitoramento baseada no Prometheus para clusters Kubernetes. • Instalação: Helm + Shell Script https://github.com/Sensedia/open-tools/tree/master/prometheus/install_prometheus-operator_k8s Código fonte: https://github.com/prometheus-operator/prometheus-operator Helm repo: https://prometheus-community.github.io/helm-charts Docs: https://prometheus-operator.dev/docs/prologue/introduction https://github.com/prometheus-operator/prometheus-operator/tree/master/Documentation Prometheus Operator
  8. • Funciona de forma integrada com o Prometheus para avaliar

    regras de alerta e enviar notificações por e-mail, Jira, Slack e outros sistemas suportados. Site: https://prometheus.io/docs/alerting/latest/alertmanager/ Github: https://github.com/prometheus/alertmanager AlertManager
  9. • Uma solução de análise e observabilidade que suporta vários

    sistemas de coleta de log e métricas. Quando está integrado ao Prometheus, o Grafana exibe métricas em painéis elegantes e úteis para diferentes áreas de uma organização. • Desde 2014 por Torkel Ödegaard. • É desenvolvido pela Grafana Labs e por pessoas da comunidade. • Possui integrações com vários sistemas de coleta de métricas e logs. • Arquitetura modular e escrito em Go. Site: https://grafana.com Github: https://github.com/grafana/grafana Loki: https://github.com/grafana/loki Tempo: https://github.com/grafana/tempo Tanka: https://github.com/grafana/tanka Agent: https://github.com/grafana/agent Grafana
  10. • Uma solução de monitoramento e banco de dados de

    série temporal rápida, econômica e escalonável. Mas, em nosso caso, ele é usado para armazenamento de longo prazo e centralizado das métricas coletadas por diferentes servidores Prometheis (o plural de Prometheus). • Desde 2018, criado por Aliaksandr Valialkin. • É mantido pela empresa de mesmo nome e também pela comunidade de desenvolvedores. • Possui integrações com vários sistemas para visualização das métricas e envio de alertas. • Arquitetura modular e escrito em Go. Site: https://victoriametrics.com Github: https://github.com/VictoriaMetrics/VictoriaMetrics VictoriaMetrics
  11. • https://docs.victoriametrics.com • https://smarketshq.com/monitoring-kubernetes-clusters-41a4b24c19e3 • https://medium.com/faun/comparing-thanos-to-victoriametrics-cluster-b193bea1683 • https://medium.com/@valyala/billy-how-victoriametrics-deals-with-more-than-500-billion-rows-e82ff8f725da • https://medium.com/@valyala/evaluating-performance-and-correctness-victoriametrics-response-e27315627e87

    • https://medium.com/faun/victoriametrics-achieving-better-compression-for-time-series-data-than-gorilla-317bc1f95932 • https://blog.usejournal.com/open-sourcing-victoriametrics-f31e34485c2b • https://medium.com/@valyala/analyzing-prometheus-data-with-external-tools-5f3e5e147639 • https://medium.com/@valyala/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893 • https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282 • https://medium.com/@valyala/high-cardinality-tsdb-benchmarks-victoriametrics-vs-timescaledb-vs-influxdb-13e6ee64dd6b • https://medium.com/@valyala/when-size-matters-benchmarking-victoriametrics-vs-timescale-and-influxdb-6035811952d4 • https://medium.com/faun/victoriametrics-creating-the-best-remote-storage-for-prometheus-5d92d66787ac • https://medium.com/miro-engineering/prometheus-high-availability-and-fault-tolerance-strategy-long-term-storage-with-victoria metrics-82f6f3f0409e • https://medium.com/@romanhavronenko/victoriametrics-how-to-migrate-data-from-prometheus-filtering-and-modifying-time-s eries-6d40cea4bf21 Bônus: Docs sobre VictoriaMetrics
  12. • A Era da Observabilidade - New Relic • Desenvolvimento

    orientado pela observabilidade - Jennifer Riggins • DevOps measurement: Monitoring and observability - Google • Google’s Approach to Observability - Jaana Dogan • Medição de DevOps: monitoramento e observabilidade - Google • Observabilidade e microservices: por que precisamos de tracing e métricas eficazes - Mark Little • Observabilidade em escala: construindo o ecossistema de alerta da Uber - Shreyas Srivatsan • Observabilidade já ouviu falar? Use esse conceito em suas aplicações em .Net Core - Parte 1 - Fernando Mendes • O que é observabilidade e qual a diferença para a monitoração? - Pedro César Tebaldi Gomes Referências Observabilidade
  13. • Awesome Prometheus • Book: Monitoring with Prometheus - James

    Turnbull • Book: Prometheus: Up & Running - Brian Brazil • Book: ands-On Infrastructure Monitoring with Prometheus - Joel Bastos e Pedro Araújo • Instalando o Prometheus via Docker - Aécio Pires • Manual do Prometheus • Monitoring Kubernetes with Prometheus - Tobias Schmidt • Monitoring Kubernetes with Prometheus - Henri Dubois-Ferriere • Monitoring Kubernetes with Prometheus - Tom Wilkie • Monitoring in Kubernetes with Prometheus and Grafana - Josh Wood • Monitoring in Kubernetes with Prometheus and Grafana - Bastian Hofmann • Monitoring Applications with Prometheus and Grafana - Nancy Chauhan • Monitorando aplicações distribuídas nativas em cloud com Prometheus - Edilson Azevedo • Primeiros Passos com Prometheus - Aécio Pires • Prometheus 101 - Getting you started - Alexander Schwartz Referências Prometheus
  14. • Criando operators para Kubernetes usando Go - Matheus Moraes

    • Extending Kubernetes 101 - Michael Hausenblas • Implementing Microservices as Kubernetes Operators - Naveen Malik • Kubernetes Operators: Managing complex software with software - Josh Wood • Livro: Operadores de Kubernetes - Jason Dobies e Joshua Wood • Primeiros passos com Docker, Kubernetes, Helm e Istio - Aécio Pires • Writing a Custom Kubernetes Operator - Aaron Levy Referências Kubernetes & Operator
  15. • End to-end monitoring with the prometheus operator - Max

    Inden • Monitorando aplicações Spring Boot no Kubernetes com Prometheus Operator e Grafana - Jean Morais • Prometheus Operator, a tale about container monitoring at iFood (volume I) - Daniel Requena • Kube-prometheus • Kube-prometheus-stack • Prometheus-Operator Referências Prometheus Operator