Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

Введение

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

В этом обучающем руководстве вы установите Grafana и защитите его сертификатом SSL и обратным прокси-сервером Nginx. После настройки Grafana у вас будет возможность настроить аутентификацию пользователя через GitHub, что позволит лучше организовать разрешения для вашей команды.

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

Для данного обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 20.04, настроенный в соответствии с указаниями обучающего модуля Начальная настройка сервера для Ubuntu 20.04, включая пользователя без привилегий root с привилегиями sudo и настроенный брандмауэр ufw.
  • Зарегистрированное полное доменное имя. В этом обучающем руководстве мы будем использовать your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.
  • Следующие записи DNS, настроенные для вашего сервера. Вы можете следовать указаниям руководства Настройка имени хоста с помощью DigitalOcean для получения информации о том, как их добавить.
  • Запись A, где your_domain указывает на публичный IP-адрес вашего сервера.
  • Запись A, где www.``your_domain указывает на публичный IP-адрес вашего сервера.
  • Nginx настроен в соответствии с руководством Установка Nginx в Ubuntu 20.04, включая блок сервера для вашего домена.
  • Блок сервера Nginx с настройкой Let’s Encrypt, который можно установить, следуя руководству Защита Nginx с помощью Let’s Encrypt в Ubuntu 20.04.
  • Дополнительно для настройки аутентификации GitHub вам потребуется учетная запись GitHub, связанная с организацией.

Шаг 1 — Установка Grafana

На этом первом шаге вы установите Grafana на сервер Ubuntu 20.04. Вы можете установить Grafana либо путем загрузки непосредственно с официального веб-сайта, либо через репозиторий APT. Поскольку репозиторий APT упрощает установку обновлений Grafana и управление ими, в этом обучающем руководстве мы будем использовать этот метод.

Скачайте ключ GPG Grafana с помощью [wget](https://www.gnu.org/software/wget/), а затем выведите результат на apt-key. Это добавит ключ в список надежных ключей установки APT, что позволит загрузить и проверить пакет Grafana с подписью GPG:

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

В этой команде опция -q выключает сообщение об обновлении статуса для wget, а -O выводит файл, который вы загрузили в терминал. Эти два варианта гарантируют, что в apt-key​​​ выводится только содержимое загруженных файлов.

Затем добавьте репозиторий Grafana в свои источники APT:

sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Обновите свой кэш APT для обновления списка пакетов:

sudo apt update

Теперь вы можете перейти к установке:

sudo apt install grafana

После установки Grafana используйте systemctl для запуска сервера Grafana:

sudo systemctl start grafana-server

Затем убедитесь в работе Grafana, проверив состояние службы:

sudo systemctl status grafana-server

Вывод должен выглядеть примерно так:

Output

● grafana-server.service - Grafana instance
     Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago
     Docs: http://docs.grafana.org
 Main PID: 15982 (grafana-server)
    Tasks: 7 (limit: 1137)
...

В этом выводе содержится информация о процессе Grafana, включая его статус, главный идентификатор процесса (PID) и многое другое. active (running) указывает, что процесс выполняется корректно.

Наконец, активируйте службу для автоматического запуска Grafana при загрузке:

sudo systemctl enable grafana-server

Результат будет выглядеть следующим образом:

Output
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

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

Grafana теперь установлен и готов к использованию. Затем вы защитите подключение к Grafana с помощью обратного прокси-сервера и сертификата SSL.

Шаг 2 — Настройка обратного прокси-сервера

Использование сертификата SSL гарантирует безопасность ваших данных путем шифрования подключения к Grafana и от него. Однако для использования этого подключения сначала необходимо перенастроить Nginx в обратный прокси-сервер для Grafana.

Откройте файл конфигурации Nginx, который вы создали при настройке блока сервера Nginx с помощью Let’s Encrypt в предварительных требованиях. Вы можете использовать любой текстовый редактор, но для этого обучающего руководства мы будем использовать nano:

sudo nano /etc/nginx/sites-available/your_domain

Найдите следующий блок:

/etc/nginx/sites-available/your_domain

...
    location / {
        try_files $uri $uri/ =404;
    }
...

Copy

Поскольку вы уже настроили Nginx для связи через SSL и поскольку весь веб-трафик на ваш сервер уже проходит через Nginx, вам просто нужно сообщить Nginx, чтобы он пересылал все запросы в Grafana, который работает в порту 3000 по умолчанию.

Удалите существующую строку try_files в этом location block и замените ее на proxy_pass:

/etc/nginx/sites-available/your_domain

...
    location / {
        proxy_pass http://localhost:3000;
    }
...

Copy

Это будет направлять прокси-сервер в соответствующий порт. После завершения сохраните и закройте файл, нажав CTRL+XY, а затем ENTER, если вы используете nano.

Теперь протестируйте новые настройки, чтобы убедиться, что все настроено правильно:

sudo nginx -t

Результат будет выглядеть следующим образом:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, активируйте изменения, перезагрузив Nginx:

sudo systemctl reload nginx

Теперь вы можете получить доступ к экрану входа по умолчанию Grafana, указав в адресной строке браузера https://``your_domain​​​. Если вы не можете получить доступ к Grafana, убедитесь, что брандмауэр установлен на разрешение приема трафика в порту 443, и затем отследите предыдущие инструкции.

После шифрования подключения к Grafana вы можете предпринять дополнительные меры защиты, начиная с изменения административных учетных данных Grafana по умолчанию.

#ubuntu

Установка и обеспечение безопасности Grafana в Ubuntu 20.04
1.20 GEEK