Вступление
Grafana - это программное обеспечение с открытым исходным кодом, которое преобразует несколько каналов из таких систем, как Graphite, Telegraf и InfluxDB, в красивые метрики на централизованной панели мониторинга.
В этом руководстве будет описан процесс установки веб-интерфейса Grafana.
Предпосылки
- Экземпляр сервера Ubuntu 16.04 LTS x64.
- Пользователь sudo (или root) .
- Необязательно: DNS-имя (для использования с сертификатами Let's Encrypt)
Обновите систему
Обновите вашу систему перед установкой Grafana.
apt-get update && apt-get upgrade
Подготовка брандмауэра
Сначала давайте немного укрепим изображение. Давайте также проверим, было ли ufw
включено предоставленное изображение.
root@vultr:~# ufw status
Status: inactive
По умолчанию он отключен, поэтому нам нужно добавить несколько правил:
- Правило 1: ssh: TCP-порт 22
- Правило 2: http: TCP-порт 3000 (порт Grafana по умолчанию)
Выполните следующие команды одну за другой.
ufw allow 22/tcp
ufw allow 3000/tcp
Включите службы брандмауэра.
ufw enable
Брандмауэр предложит диалоговое окно для принятия изменений. Просто нажмите Y.
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Установка Графана
По умолчанию Графана нет в репозиториях. Добавьте ключ репо и пакеты.
curl https://packagecloud.io/gpg.key | sudo apt-key add -
Затем добавьте репозиторий «packagecloud» в свои репозитории.
add-apt-repository "deb https://packagecloud.io/grafana/stable/debian/ stretch main"
Обновление apt
для получения последней информации из нашего недавно добавленного репозитория "packagecloud".
apt-get update
Теперь мы можем установить Графану.
apt-get install grafana
После установки Grafana начните с systemctl
.
systemctl start grafana-server
Это покажет работающий сервис Grafana.
systemctl status grafana-server
Запустите сервис Grafana при загрузке.
systemctl enable grafana-server
Отключение регистрации Grafana и анонимного доступа
Из коробки Grafana позволяет посетителям создавать учетные записи пользователей и просматривать информационные панели без регистрации. Это означает, что мы выставляем Grafana в публичный интернет. Но не волнуйтесь, давайте найдем и отключим эти настройки.
Сначала откройте файл конфигурации Grafana.
nano /etc/grafana/grafana.ini
Найдите allow_sign_up
настройки под [users]
заголовком.
[users]
# disable user signup / registration
;allow_sign_up = true
По умолчанию оно установлено на true
, поэтому измените его false
и раскомментируйте строку.
[users]
# disable user signup / registration
allow_sign_up = false
Затем убедитесь, что анонимный доступ отключен. Это можно найти в [auth.anonymous]
настройках.
[auth.anonymous]
# enable anonymous access
;enabled = false
Измените его false
и раскомментируйте строку.
[auth.anonymous]
enabled = false
Выйдите nano
и сохраните файл.
Чтобы активировать изменения, перезапустите Grafana.
systemctl restart grafana-server
Теперь убедитесь, что все работает, проверив статус сервиса Grafana.
systemctl status grafana-server
Демон Графана слушает порт 3000
. Чтобы перейти на панель инструментов Grafana, укажите в своем браузере http://192.168.0.1:3000
(замените этот IP реальным IP-адресом сервера) и используйте учетные данные по умолчанию, указанные ниже.
Username: admin
Password: admin
Включение сертификата HTTPS для Grafana (необязательно)
Это необязательный шаг. Если у нас настроено DNS-имя, мы можем использовать Let's HTTPS
encrypt, чтобы включить нашу новую установку Grafana.
Установка и настройка Nginx
Для этого мы будем использовать Nginx, так как это программное обеспечение способно использовать сертификаты Let's Encrypt.
Начните с установки Nginx.
apt-get install nginx
После установки отредактируйте конфигурацию по умолчанию.
nano /etc/nginx/sites-available/default
Замените конфигурацию по умолчанию следующей конфигурацией.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Это создаст прокси для сайта, работающего в порту 80
. Перезапустите Nginx и включите его при загрузке.
systemctl restart nginx
systemctl enable nginx
Убедитесь, что все работает.
systemctl status nginx
Отключите старый порт Grafana 3000
и разрешите движение через порт 80
.
ufw allow 80/tcp
ufw delete allow 3000/tcp
Установка Let's Encrypt
Прежде чем мы сможем использовать certbot, нам нужно добавить правильный PPA в систему, содержащую наши пакеты certbot.
add-apt-repository ppa:certbot/certbot
Нажмите, ENTERчтобы принять изменение конфигурации.
Обновление, apt
чтобы собрать новые пакеты.
apt-get update
Затем установите модуль Nginx для назначения сертификатов.
apt-get -y install python-certbot-nginx
Настройка сертификатов
Настройте брандмауэр, чтобы разрешить HTTPS
через брандмауэр.
ufw allow 443/tcp
Прежде чем мы сможем запросить новые сертификаты, нам нужно DNS-имя.
nano /etc/nginx/sites-available/default
Добавьте следующую server_name
настройку. Это наше DNS-имя.
server_name grafana.example.com;
Измените конфигурацию, чтобы отразить этот новый параметр.
server {
server_name grafana.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Убедитесь, что мы не допустили ошибок, и перезапустите Nginx.
nginx -t
systemctl restart nginx
Теперь запросите сертификат у certbot.
certbot --nginx -d grafana.example.com
Укажите адрес электронной почты и согласитесь с вопросами, заданными установщиком. Вы можете смело сказать «Нет», чтобы поделиться своей электронной почтой. Certbot автоматически спросит, что делать HTTPS
. Мы будем использовать вариант 2: перенаправить на HTTPS.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Автообновление сертификатов
Давайте зашифруем сертификаты, требующие обновления. К счастью, мы можем создать для этого задание cron. Начните с редактирования crontab.
crontab -e
Добавьте следующую строку.
05 2 * * * /usr/bin/certbot renew --quiet
Это проверит в 2:05 утра, если какие-либо сертификаты требуют обновления и обновит их.
Графана сейчас будет бежать HTTPS
. И последнее, что нужно изменить, это пароль администратора. Посетите вашу установку на https://grafana.example.net
. По умолчанию учетные данные для входа в систему - «admin / admin».
Чтобы изменить имя пользователя с правами администратора, щелкните значок cog слева, перейдите в «Конфигурация», затем «Администратор сервера» и нажмите имя пользователя с правами администратора.