
В этой статье мы узнаем, как легко интегрировать 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/

Скачайте и импортируйте ключ Grafana GPG с помощью следующей команды.
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null

Добавьте репозиторий пакетов 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

Обновление репозиториев
sudo apt-get update

После обновления репозитория. Установите Grafana Agent
sudo apt-get install grafana-agent

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

После этого включите агент grafana
sudo systemctl enable grafana-agent

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

Шаг #2:Установите интеграцию Linux Server для Grafana Cloud
Сначала войдите в Grafana Cloud и запустите экземпляр Grafana.

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

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

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

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


Шаг № 3:Изменение yaml-файла агента Grafana
Теперь вернитесь в облако Grafana и прокрутите страницу вниз.
В подготовленном файле конфигурации укажите значение для имени хоста. Здесь я указал monitoring-node

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

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


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
Введите пароль для аутентификации.

Если вы не знаете пароль, вы можете изменить его с помощью следующей команды.
sudo passwd ubuntu
прокрутите страницу вниз и нажмите на Тестовые соединения чтобы проверить, что агент собирает данные и отправляет их в Grafana Cloud.
Вы получите сообщение “Агент сейчас собирает данные с вашей машины.”

Шаг #4:Установите панели мониторинга и оповещения на Grafana Cloud
Далее нажмите на Установить чтобы установить предварительно настроенные панели и оповещения.

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

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

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

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