← Cloudflare One / cloudflare-one / tutorials
Мониторинг Cloudflare Tunnel с помощью Grafana
Grafana ↗ это инструмент с дашбордами, который визуализирует данные, хранящиеся в других базах данных. Вы можете использовать Grafana, чтобы преобразовать свои метрики туннеля в практически применимые данные.
Невозможно отправлять метрики напрямую из cloudflared в Grafana. Вместо этого cloudflared выполняет Prometheus ↗ конечная точка метрик, которую периодически опрашивает сервер Prometheus. Затем Grafana использует Prometheus как источник данных для отображения метрик администратору.
flowchart LR
subgraph 192.168.1.1
A[cloudflared]-->B[Metrics endpoint]
end
B--->C
subgraph 192.168.1.2
C[Prometheus server]-->D[Grafana dashboard]
end
В этом руководстве описано, как создать endpoint для метрик, настроить сервер Prometheus и просмотреть данные в Grafana.
Перед началом работы
- Вам потребуется Cloudflare Tunnel. Инструкции по созданию туннеля см. в нашем руководство по началу работы.
Создать конечную точку метрик
Если туннель был создан через CLI, выполните следующую команду на cloudflared сервер (192.168.1.1):
cloudflared tunnel --metrics 192.168.1.1:60123 run my-tunnelЕсли туннель был создан через панель управления, --metrics флаг нужно добавить в cloudflared конфигурацию системной службы. См. Добавить параметры запуска туннеля с инструкциями о том, как это сделать.
Настройте Prometheus
На сервере Prometheus и Grafana (192.168.1.2):
-
Скачать ↗ Prometheus.
-
Извлеките Prometheus:
tar xvfz prometheus-*.tar.gz cd prometheus-* -
Откройте
prometheus.ymlв текстовом редакторе и добавьтеcloudflaredзадание в конец файла:# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] ## Address of Prometheus dashboard - job_name: "cloudflared" static_configs: - targets: ["198.168.1.1:60123"] ## cloudflared server IP and the --metrics port configured for the tunnel -
Запустите Prometheus:
./prometheus --config.file="prometheus.yml"При желании Prometheus можно настроить как службу, чтобы не запускать его вручную после перезагрузки машины.
-
Откройте браузер и перейдите по адресу
http://localhost:9090/. У вас должен появиться доступ к панели управления Prometheus. -
Чтобы проверить, что Prometheus получает метрики туннеля, введите
cloudflared_tunnel_total_requestsв консоль выражений и выберите Выполнить.
См. Доступные метрики чтобы узнать, какие ещё метрики доступны.
Подключите Grafana к Prometheus
-
Скачать ↗ и установите Grafana.
-
Запустите Grafana как системную службу:
sudo systemctl daemon-reload sudo systemctl start grafana-server -
Убедитесь, что Grafana запущена:
sudo systemctl status grafana-server -
Откройте браузер и перейдите по адресу
http://localhost:3000/. HTTP-порт, который Grafana прослушивает по умолчанию:3000если вы не настроили другой порт. -
На странице входа введите учётные данные Grafana.
Чтобы протестировать без учетной записи, можно ввести
adminдля имени пользователя и пароля, чтобы пропустить шаг смены пароля. -
В Grafana перейдите в Соединения > Источники данных.
-
Выберите Добавьте новый источник данных и выберите Prometheus.
-
В URL-адрес сервера Prometheus поле введите IP-адрес и порт вашей панели мониторинга Prometheus (
http://localhost:9090). -
Выберите Сохранить и протестировать.
Создание дашборда Grafana
- В Grafana перейдите в Панели управления > Новое > Новый дашборд.
- Выберите Добавить визуализацию.
- Выберите Prometheus.
- В поле метрик введите
cloudflared_tunnel_total_requestsи выберите Запустить запросы. Появится график, показывающий количество запросов в зависимости от времени.
Вы можете добавлять операции к запросам, чтобы изменить отображаемые данные. Например, вместо всех запросов туннеля за всё время сбора метрик можно отобразить только запросы за последний период, например за день.