Главная

Monday, 27 December 2021

Прячем Grafana за Nginx.

Всем привет. 

Задача №1 - спрятать Grafana за Nginx по ссылке http://myserver1. Полагаем что наш Nginx по умолчанию отдает index.html.

Переходим в папку Nginx sites-enabled:

cd /etc/nginx/sites-enabled

Создаем новую конфигурацию Nginx для Grafana:

sudo nano myserver1.conf

Название файла конфигурации точно такое же как и сайта, в моем случае "myserver1".

Указываем в нем следующее:

server {

    listen 80;

    listen [::]:80;

    server_name  myserver1;

    location / {

        proxy_pass http://localhost:3000/;

    }

}

Сохраняем и провереям созданный конфиг:

>Nginx -t 

Перезапускаем nginx:

sudo service nginx restart

sudo service nginx status

Имеем Grafana по адресу:

http://myserver1

Это хорошо работает если Grafana на отдельном сервере. Если она на том же сервер что и Zabbix,  то лучше добавить немного безопасности для Grafana. Поэтому ставим следующую задачу.

Задача №2 - спрятать Grafana за Nginx с HTTPS по ссылке https://myserver1/grafana, где myserver1 dns-имя вашего сервера которое должно резолвится до перевода. Если вам некогда возиться з DNS, то указывайте ip-адрес сервера вместо myserver1.

Первым делом настраиваем Grafana в файле конфигурации:

sudo nano /etc/grafana/grafana.ini

Изменяем параметры:

domain = myserver1

root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/

serve_from_sub_path = true


Далее необходимо создать конфиг для nginx:

sudo nano /etc/nginx/conf.d/grafana.conf

уже с таким содержанием:

server {

 listen 443 ssl http2;

 server_name myserver1;

 index index.html index.htm;

 location /grafana/ {

 proxy_pass http://localhost:3000/;

 proxy_set_header Host $host;

 } 

 ssl_certificate /etc/ssl/nginx-selfsigned.crt;

 ssl_certificate_key /etc/ssl/nginx-selfsigned.key;

 ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4:!RSA+3DES;

 ssl_prefer_server_ciphers on;

 ssl_protocols TLSv1.1 TLSv1.2;

 add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

 add_header X-XSS-Protection "1; mode=block";

 add_header X-Frame-Options "SAMEORIGIN";

 add_header X-Content-Type-Options nosniff;

}

Создаем SSL-сертификаты если nginx их еще не имеет:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx-selfsigned.key -out /etc/ssl/nginx-selfsigned.crt

Проверяем nginx:

> nginx -t

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

nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапускаем юниты:

systemctl restart grafana-server nginx

Теперь наша Grafana будет доступна по https-адресу:

https://myserver1/grafana


Успехов.


No comments:

Post a Comment

А что вы думаете по этому поводу?