Как интегрировать Linux Server для Grafana Cloud

В этой статье мы узнаем, как легко интегрировать Linux-серверы с Grafana Cloud. Grafana Cloud предлагает мощные возможности мониторинга и визуализации для вашей инфраструктуры, позволяя вам получить представление о производительности и здоровье ваших систем. Интеграция Linux-серверов с Grafana Cloud позволяет собирать метрики, журналы и трассировки с ваших серверов и визуализировать их в настраиваемых инструментальных панелях.

Предварительные условия

  • Аккаунт AWS с Ubuntu 22.04 LTS EC2 Instance.
  • Базовые знания о сервисах AWS и Grafana.
  • Учетная запись Grafana Cloud.

Создайте учетную запись Grafana Cloud, следуя официальной документации

Создать учетную запись Grafana Cloud

Шаг #1:Установите Grafana Agent на Ubuntu

Grafana Agent – это легкий агент с открытым исходным кодом, который собирает метрики, журналы и трассировки с ваших Linux-серверов и отправляет их в Grafana Cloud.

Итак, сначала создайте каталог для ключей apt

sudo mkdir -p /etc/apt/keyrings/
Как интегрировать Linux Server для Grafana Cloud 1

Скачайте и импортируйте ключ Grafana GPG с помощью следующей команды.

wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Как интегрировать Linux-сервер для Grafana Cloud 2

Добавьте репозиторий пакетов Grafana с помощью следующей команды.

echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
Как интегрировать Linux-сервер для Grafana Cloud 3

Обновление репозиториев

sudo apt-get update
Как интегрировать Linux Server для Grafana Cloud 4

После обновления репозитория. Установите Grafana Agent

sudo apt-get install grafana-agent
Как интегрировать Linux Server для Grafana Cloud 5

Запустите агент grafana, выполнив следующую команду

sudo systemctl start grafana-agent
Как интегрировать Linux Server для Grafana Cloud 6

После этого включите агент grafana

sudo systemctl enable grafana-agent
Как интегрировать Linux Server для Grafana Cloud 7

Вы можете проверить, работает ли он правильно или нет, выполнив следующую команду.

sudo systemctl status grafana-agent
Как интегрировать Linux Server для Grafana Cloud 8

Шаг #2:Установите интеграцию Linux Server для Grafana Cloud

Сначала войдите в Grafana Cloud и запустите экземпляр Grafana.

Как интегрировать Linux Server для Grafana Cloud 9

, затем на главной панели выберите Подключения > Добавить новые подключения.

Как интегрировать Linux Server для Grafana Cloud 10

Выберите сервер Linux

Как интегрировать Linux-сервер для Grafana Cloud 11

Нажмите на Grafana agent и выберите операционную систему, на которой работает ваш linux-сервер. Затем нажмите на кнопку Создать новый API-токен или можете использовать существующий, если он у вас есть, дайте имя токену политики доступа и нажмите на кнопку Создать токен.

В результате будет сгенерирован API-токен, который мы будем использовать для настройки агента grafana.

Как интегрировать Linux Server для Grafana Cloud 12

Скопируйте код и запустите его, чтобы установить и запустить агент grafana в качестве службы grafana-agent.service systemd.

Вставьте сгенерированный ранее ключ API-токена вместо “GCLOUD_RW_API_KEY

Как интегрировать Linux Server для Grafana Cloud 13
Как интегрировать Linux Server для Grafana Cloud 14

Шаг № 3:Изменение yaml-файла агента Grafana

Теперь вернитесь в облако Grafana и прокрутите страницу вниз.

В подготовленном файле конфигурации укажите значение для имени хоста. Здесь я указал monitoring-node

Как интегрировать Linux Server для Grafana Cloud 15

перейдите к файлу /etc/grafana-agent.yaml с помощью следующей команды.

sudo nano /etc/grafana-agent.yaml
Как интегрировать Linux Server для Grafana Cloud 16

Затем скопируйте строки кода Integration и logs из облака grafana и вставьте их в файл /etc/grafana-agent.yaml в соответствии с вашим окружением.

Как интегрировать Linux Server для Grafana Cloud 17
Как интегрировать Linux Server для Grafana Cloud 18
                                                                                                                                                                                   integrations:
  prometheus_remote_write:
  - basic_auth:
      password: glc_eyJvIjoiMTA5MTQwNCIsIm4iOiJzdGFjay04OTY4MzAtaW50ZWdyYXRpb24tcHJhc2FkLTQwIiwiayI6Ik8xMjUzcjd1SDdiZTY2QTZUSmlhbzZZaSIsIm0iOnsiciI6InByb2QtYXAtc291dGgtMSJ9fQ==
      username: 1507447
    url: https://prometheus-prod-43-prod-ap-south-1.grafana.net/api/prom/push
  agent:
    enabled: true
    relabel_configs:
    - action: replace
      source_labels:
      - agent_hostname
      target_label: instance
    - action: replace
      target_label: job
      replacement: "integrations/agent-check"
    metric_relabel_configs:
    - action: keep
      regex: (prometheus_target_sync_length_seconds_sum|prometheus_target_scrapes_.*|prometheus_target_interval.*|prometheus_sd_discovered_targets|agent_build.*|agent_wal_samples_appended_total|process_start_time_seconds)
      source_labels:
      - __name__
  # Add here any snippet that belongs to the `integrations` section.
  # For a correct indentation, paste snippets copied from Grafana Cloud at the beginning of the line.
  node_exporter:
    enabled: true
    # disable unused collectors
    disable_collectors:
      - ipvs #high cardinality on kubelet
      - btrfs
      - infiniband
      - xfs
      - zfs
    # exclude dynamic interfaces
    netclass_ignored_devices: "^(veth.*|cali.*|[a-f0-9]{15})$"
    netdev_device_exclude: "^(veth.*|cali.*|[a-f0-9]{15})$"
    # disable tmpfs
    filesystem_fs_types_exclude: "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|tmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
    # drop extensive scrape statistics
    relabel_configs:
    - replacement: 'monitoring-node'
      target_label: instance
    metric_relabel_configs:
    - action: drop
      regex: node_scrape_collector_.+
      source_labels:
      - __name__
    - action: keep
      regex: node_arp_entries|node_boot_time_seconds|node_context_switches_total|node_cpu_seconds_total|node_disk_io_time_seconds_total|node_disk_io_time_weighted_seconds_total|node_disk_read_bytes_total|node_disk_read_time_seconds_total|node_disk_reads_completed_total|node_disk_write_time_seconds_total|node_disk_writes_completed_total|node_disk_written_bytes_total|node_filefd_allocated|node_filefd_maximum|node_filesystem_avail_bytes|node_filesystem_device_error|node_filesystem_files|node_filesystem_files_free|node_files>
      source_labels:
      - __name__

logs:
  configs:
  - clients:
    - basic_auth:
        password: glc_eyJvIjoiMTA5MTQwNCIsIm4iOiJzdGFjay04OTY4MzAtaW50ZWdyYXRpb24tcHJhc2FkLTQwIiwiayI6Ik8xMjUzcjd1SDdiZTY2QTZUSmlhbzZZaSIsIm0iOnsiciI6InByb2QtYXAtc291dGgtMSJ9fQ==
        username: 854611
      url: https://logs-prod-028.grafana.net/loki/api/v1/push
    name: integrations
    positions:
      filename: /tmp/positions.yaml
    scrape_configs:
      # Add here any snippet that belongs to the `logs.configs.scrape_configs` section.
      # For a correct indentation, paste snippets copied from Grafana Cloud at the beginning of the line.
    - job_name: integrations/node_exporter_journal_scrape
      journal:
        max_age: 24h
        labels:
          instance: 'monitoring-node'
          job: integrations/node_exporter
      relabel_configs:
      - source_labels: ['__journal__systemd_unit']
        target_label: 'unit'
      - source_labels: ['__journal__boot_id']
        target_label: 'boot_id'
      - source_labels: ['__journal__transport']
        target_label: 'transport'
      - source_labels: ['__journal_priority_keyword']
        target_label: 'level'
    - job_name: integrations/node_exporter_direct_scrape
      static_configs:
      - targets:
        - localhost
        labels:
          instance: 'monitoring-node'
          __path__: /var/log/{syslog,messages,*.log}
          job: integrations/node_exporter

metrics:
  configs:
  - name: integrations
    remote_write:
    - basic_auth:
        password: glc_eyJvIjoiMTA5MTQwNCIsIm4iOiJzdGFjay04OTY4MzAtaW50ZWdyYXRpb24tcHJhc2FkLTQwIiwiayI6Ik8xMjUzcjd1SDdiZTY2QTZUSmlhbzZZaSIsIm0iOnsiciI6InByb2QtYXAtc291dGgtMSJ9fQ==
        username: 1507447
      url: https://prometheus-prod-43-prod-ap-south-1.grafana.net/api/prom/push
    scrape_configs:
      # Add here any snippet that belongs to the `metrics.configs.scrape_configs` section.
      # For a correct indentation, paste snippets copied from Grafana Cloud at the beginning of the line.
  global:
    scrape_interval: 60s
  wal_directory: /tmp/grafana-agent-wal

сохраните файл и перезапустите службу агента grafana

systemctl restart grafana-agent.service

Введите пароль для аутентификации.

Как интегрировать Linux Server для Grafana Cloud 19

Если вы не знаете пароль, вы можете изменить его с помощью следующей команды.

sudo passwd ubuntu

прокрутите страницу вниз и нажмите на Тестовые соединения чтобы проверить, что агент собирает данные и отправляет их в Grafana Cloud.

Вы получите сообщение “Агент сейчас собирает данные с вашей машины.

Как интегрировать Linux Server для Grafana Cloud 20

Шаг #4:Установите панели мониторинга и оповещения на Grafana Cloud

Далее нажмите на Установить чтобы установить предварительно настроенные панели и оповещения.

Как интегрировать Linux Server для Grafana Cloud 21

Теперь нажмите на Просмотр приборных панелей.

Как интегрировать Linux Server для Grafana Cloud 22

Вы увидите множество установленных предварительно собранных дашбордов. Сейчас мы выберем

Linux node/overviewDashboard.

Как интегрировать Linux Server для Grafana Cloud 23

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

Например, загрузка процессора, использование памяти, сетевой трафик и многое другое.

Как интегрировать Linux Server для Grafana Cloud 24

Заключение:

Интеграция Linux-серверов с Grafana Cloud позволяет получить ценные сведения о производительности и здоровье вашей инфраструктуры. Вы можете легко интегрировать Linux-сервер с Grafana Cloud. Следуя шагам, описанным в этом руководстве, вы сможете легко настроить мониторинг и визуализацию для ваших Linux-серверов и получить видимость их работы. Независимо от того, управляете ли вы одним сервером или масштабным развертыванием, Grafana Cloud предлагает инструменты, необходимые для эффективного мониторинга и оптимизации вашей инфраструктуры.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *