Установка metricbeat

  1. Качаем и устанавливаем metricbeat
    sudo curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.11.1-x86_64.rpm
    sudo rpm -vi metricbeat-7.11.1-x86_64.rpm
    
  2. Активируем автозагрузку и запускаем metricbeat
    sudo systemctl enable metricbeat
    sudo systemctl start metricbeat
    

Активируем модули

  1. Для просмотра всех возможных модулей выполняем
    sudo metricbeat modules list
    
  2. Активируем нужные нам модули
    metricbeat modules enable linux logstash
    
  3. Также не лишним будет глянуть файл /etc/metricbeat/metricbeat.reference.yml

Настраиваем куда слать логи

  1. Прописываем куда слать логи
    sudo vim /etc/metricbeat/metricbeat.yml
    
    #для elasticsearch
    output.elasticsearch:
      hosts: ["elk-node3.my.lan:5122", "elk-node2.my.lan:5122","elk-node1.my.lan:5122"]
      #или http
      protocol: "https"
      username: "user"
      password: "PASSWORD"
    #для logstash
    output.logstash:
      hosts: ["elk-node3.my.lan:5044", "elk-node2.my.lan:5044","elk-node1.my.lan:5044"]
      loadbalance: true
    
  2. Если вы используете logstash то придётся вручную создать `index в кластере. Для этого:
    • Создаём роль через kibana
      POST  _xpack/security/role/metricbeat_internal
      {  "cluster":  ["monitor","read_ilm","manage_ilm","manage"],  "indices":  [  {  "names":  [  "metricbeat-*"],  "privileges":  ["create_index","manage"]  }  ]  }
      
    • Создаём пользователя через kibana
      POST  /_xpack/security/user/metricbeat_internal  
      {  "password"  :  "YOUR_PASSWORD",  "roles"  :  [  "kibana_admin","metricbeat_internal" ],  "full_name"  :  "Internal Metricbeat User"  }
      
    • Настраиваем output.elasticsearch как выше
    • Создаём индекс вручную
      sudo metricbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["https://elk-node3.my.lan:9122", "https://elk-node2.my.lan:9122","https://elk-node1.my.lan:9122"]'
      
    • Комментируем output.elasticsearch
  3. Перезапускаем metricbeat
    sudo systemctl restart metricbeat
    

Доступ к метрикам

Если всё проделано правильно, то в kibana появится индекс типа metricbeat-7.11.0-2021.02.18-000001. И пройдя по ссылке вы увидите метрики.

enter image description here

Создание пользователя для выгрузки dashboard в kibana

Metricbeat поставляется в комплекте с примерами dashboard Kibana, визуализацией и поиском для визуализации данных Metricbeat в Kibana. Для того, чтобы это использовать вы должны выгрузить это с metricbeat в kibana.

  1. Создаём пользователя metricbeat_internal с ролью kibana_admin через kibana (dev tools)
    POST  /_xpack/security/user/metricbeat_internal  
    {  "password"  :  "YOUR_PASSWORD",  "roles"  :  [  "kibana_admin"],  "full_name"  :  "Internal Metricbeat User"  }
    
  2. Выставляем настройки для подключения к Kibana
    sudo vim /etc/metricbeat/metricbeat.yml
    
    setup.dashboards.enabled: true
    setup.kibana:
      host: "elk-kibana.my.lan:5601"
      #либо http
      protocol: "https"
      username: "metricbeat_internal"
      password: "YOUR_PASSWORD"
    
  3. Перезапускаем metricbeat
    sudo systemctl restart metricbeat
    
  4. проверяем что у нас создались dashboards по url enter image description here

Использование keystore

Конечно если вы беспокоитесь хоть немного о безопасности вы не захотите хранить пароли так просто в открытом виде, в текстовом файле. Вы можете использовать хранилище ключей Metricbeat для безопасного хранения секретных значений для использования в настройках конфигурации.

После добавления ключа и его секретного значения в хранилище ключей вы можете использовать ключ вместо секретного значения при настройке конфиденциальных параметров.

  1. Создание keystore
    sudo metricbeat keystore create
    
  2. Добавляем секретное значение, например логин и пароль
    sudo metricbeat keystore add MY_USR
    sudo metricbeat keystore add MY_PWD
    sudo metricbeat keystore list
    
  3. Используем значения в файле конфигурации
    sudo vim /etc/metricbeat/metricbeat.yml
    
    setup.kibana:
      username: "${MY_USR}"
      password: "${MY_PWD}"
    

Для того чтобы проверить что это сработало можно удалить все dasboard в kibana и перезапустить metricbeat.