Slide 1

Slide 1 text

Infrastructure monitoring with Elastic Carlos Pérez-Aradros Herce - Platform Integrations Tech Lead 19 Nov 2020

Slide 2

Slide 2 text

Carlos Pérez-Aradros Herce Tech lead - Integrations platforms [email protected] exekias

Slide 3

Slide 3 text

Elastic is a search company.

Slide 4

Slide 4 text

Search. Observe. Protect.

Slide 5

Slide 5 text

3 solutions Elastic Enterprise Search Elastic Security Elastic Observability

Slide 6

Slide 6 text

Elastic Enterprise Search Elastic Security Elastic Observability Kibana Elasticsearch Beats Logstash 3 solutions powered by 1 stack Elastic Stack

Slide 7

Slide 7 text

SaaS Orchestration Elastic Cloud on Kubernetes Elastic Cloud Elastic Cloud Enterprise Elastic Enterprise Search Elastic Security Elastic Observability Kibana Elasticsearch Beats Logstash Deploy anywhere. Powered by the Elastic Stack 3 solutions Deployed anywhere

Slide 8

Slide 8 text

Elastic Observability Logs Metrics APM Uptime

Slide 9

Slide 9 text

Unified visibility across your entire ecosystem Bring your logs, metrics, and traces together into a single stack so you can monitor, detect, and react to events with speed. ELASTIC OBSERVABILITY

Slide 10

Slide 10 text

Cloud monitoring

Slide 11

Slide 11 text

You don’t choose multi-cloud; multi-cloud chooses you. Enterprise Cloud Strategy More than 1000 employees Multiple public Single public Single private Multi-cloud 93% Source: Flexera 2020 State of the Cloud Report Hybrid cloud 87% 6% 6% 1%

Slide 12

Slide 12 text

Beats: The Lightweight Shippers of the Elastic Stack auditbeat filebeat heartbeat metricbeat packetbeat winlogbeat

Slide 13

Slide 13 text

On-Premises alerting User group A User group B Observability With Multi-Cloud

Slide 14

Slide 14 text

APM Logs&Metrics API API Azure Monitor Event Hub APM GCP Stackdriver Logs&Metrics API APM Logs&Metrics API AWS CloudWatch CCS CCS CCS Future: Multi-Cloud and Cross Cluster

Slide 15

Slide 15 text

Method 1 Metrics Azure Services GCP Services Stackdriver Monitoring Monitor CloudWatch Method 2 AWS Services

Slide 16

Slide 16 text

Configuration Example – module: aws period: 5m metricsets: – ec2 credential_profile_name: elastic – module: googlecloud period: 1m metricsets: – compute region: "us-" project_id: "elastic-observability" credentials_file_path: "/Desktop/gcp_creds.json" exclude_labels: false – module: azure period: 300s metricsets: – compute_vm client_id: '$AZURE_CLIENT_ID""}' client_secret: '$AZURE_CLIENT_SECRET""}' tenant_id: '$AZURE_TENANT_ID""}' subscription_id: '$AZURE_SUBSCRIPTION_ID""}' refresh_list_interval: 600s

Slide 17

Slide 17 text

GCP BigQuery AWS Cost Explorer AWS CloudWatch Azure Cost Management Billing Billing

Slide 18

Slide 18 text

AWS Services Azure Services GCP Services SQS S3 CloudWatch Event Hub PubSub Logs

Slide 19

Slide 19 text

filebeat.inputs: – type: awscloudwatch credential_profile_name: elastic-beats log_group_arn: arn:aws:logs:us-east-1123:log-group:test:* region: us-east-1 scan_frequency: 30s start_position: beginning api_timeout: 5m filebeat.inputs: – type: s3 queue_url: https://sqs.us-east-1.amazonaws.com/123/test-fb-ks credential_profile_name: elastic-beats json.message_key: Records Configuration Example Using Inputs

Slide 20

Slide 20 text

Kubernetes monitoring

Slide 21

Slide 21 text

cluster Kubernetes: pods, nodes, cluster node kubelet proxy node kubelet proxy node kubelet proxy node kubelet proxy - pod schedule

Slide 22

Slide 22 text

Monitoring kubernetes environments

Slide 23

Slide 23 text

Monitoring kubernetes environments - What to monitor - Hosts - Containers - Containerized applications - Kubernetes components - Metrics sources - cAdvisor, kubelet - kube-state-metrics - Prometheus - APM Metricbeat Heapster Prometheus ... Elasticsearch Kibana

Slide 24

Slide 24 text

Metadata processors - ECS Enrich events with useful metadata to correlate logs, metrics & traces • cloud.availability_zone • cloud.region • cloud.instance_id • cloud.machine_type • cloud.project_id • cloud.provider • docker.container.id • docker.container.image • docker.container.name • docker.container.labels • kubernetes.pod.name • kubernetes.namespace • kubernetes.labels • kubernetes.annotations • kubernetes.container.name • kubernetes.container.image add_cloud_metadata add_docker_metadata add_kubernetes_metadata

Slide 25

Slide 25 text

Kubernetes deployment Node 1 Metricbeat Filebeat Node 2 Metricbeat Filebeat Node n Metricbeat Filebeat Filebeat DaemonSet Metricbeat DaemonSet

Slide 26

Slide 26 text

Inventory view Birds-eye view of your kubernetes clusters

Slide 27

Slide 27 text

Node Metricbeat Autodiscover Oh no! My applications are moving! Logs Metrics nginx Elasticsearch metricbeat.autodiscover: providers: - type: kubernetes host: ${HOSTNAME} templates: - condition.contains: kubernetes.container.name: nginx config: - module: nginx period: 10s metricsets: ["stubstatus"] hosts: ["${data.host}:8080"]

Slide 28

Slide 28 text

Metricbeat Autodiscover

Slide 29

Slide 29 text

Hints based auto-discovery - Hints tell Metricbeat how to get metrics for the given container. - It looks for hints in K8s Pod annotations or Docker labels which have the prefix co.elastic.metrics . - As soon as the container starts, Metricbeat will check if it contains any hints and launch the proper config for it. metricbeat.autodiscover: providers: - type: kubernetes hints.enabled: true annotations: co.elastic.metrics/module: prometheus co.elastic.metrics/metricsets: collector co.elastic.metrics/hosts: '${data.host}:9090' co.elastic.metrics/period: 1m

Slide 30

Slide 30 text

Demo time

Slide 31

Slide 31 text

Service: “beats-demo” LoadBalancer Deployment: “beats-demo“ Demo scenario: http://34.77.157.229 Pod Pod ... Deployment: “mysql“ Logs Metrics Network analytics App Performance Metrics Pod

Slide 32

Slide 32 text

Elastic is a Search Company. www.elastic.co Thank You