Я хотел написать про Grafana и его друзей Consul, Loki и т.п. потом передумал, это будет лютый лонгрид и поехали просто как графану установить.
Установка Grafana.
Импортируем ключ репозитория.
# wget -q -O gpg.key https://rpm.grafana.com/gpg.key
Создаем файл описания репозитория в файле /etc/yum.repos.d/grafana.repo.
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Обратите внимание, что из РФ в свете последних событий вас пошлют лесом с такой вот ошибкой.
Errors during downloading metadata for repository ‘grafana’:
– Status code: 403 for https://rpm.grafana.com/repodata/repomd.xml (IP: 151.101.130.217)
Error: Failed to download metadata for repo ‘grafana’: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
И в этом случае у нас есть два варианта. Можем поднять клон репозиория который мы скачаем через зарубежный прокси или напрямую укажем использовать прокси для этого репозиторя добавив наш прокси в конфигурационный файл одной строкой.
proxy=http://45.138.27.6:3128
Естественно, что вместо 45.138.27.6 надо будет указать ваш прокси сервер и если ипользуется авторизация, то запись будет выглядеть вот так.
proxy=http://user:password@proxy.example.com:3128
Теперь мы устанавливаем графану как сервис, активируем и запускаем.
# dnf install grafana
# systemctl enable grafana-server
# systemctl start grafana-server
Сервис доступен на порту 3000 и логин-пароль по умолчанию admin/admin. Если у вас активен Firewalld, то добавляем разрешения.
# firewall-cmd --permanent --add-port=3000/tcp
success
# firewall-cmd --reload
Графана готова и можно пробовать авторизоваться.

По IP-Port ходить не кошерно и сделаем реверс-прокси отсучением по IP-адресам внутренный сети примерно такого содержания (поправить по вкусу).
server {
listen 80;
include acme;
server_name sms-grafana.smsfinanceit.ru;
location / {
if ($request_method = GET) {
rewrite ^ https://$host$request_uri? permanent;
}
return 405;
}
}
server {
listen 443 ssl;
http2 on;
server_name sms-grafana.smsfinanceit.ru;
include acme;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_certificate /etc/letsencrypt/live/sms-grafana.smsfinanceit.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sms-grafana.smsfinanceit.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/sms-grafana.smsfinanceit.ru/chain.pem;
access_log /var/log/nginx/sms-grafana.smsfinanceit.ru_access.log;
error_log /var/log/nginx/sms-grafana.smsfinanceit.ru_error.log;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
send_timeout 120s;
resolver_timeout 120s;
client_body_timeout 120s;
client_max_body_size 50m;
client_body_buffer_size 200k;
location / {
allow 34.22.136.63;
deny all;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
add_header Strict-Transport-Security "max-age=31536000";
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_pass http://10.54.110.94:3000;
}
}
Конфиг достаточно типовой и особых вопросов думаю не вызывает.
Установка Prometheus
Сразу, чтобы два раза не вставать откроем нужные порты.
# firewall-cmd --permanent --zone=public --add-port=9090/tcp --add-port=9093/tcp --add-port=9094/{tcp,udp} --add-port=9100/tcp
# firewall-cmd --reload
Я честно говоря не пониаю за каким чертом они поставляют свое решение в виде tar.gz, а не репозиторием, хотя у них есть конечно докер образ, но мы решили bare-metal пусть так оно и будет. Посему скачиваем текущую стабильную версию с официального сайта https://prometheus.io/download/.
# wget https://github.com/prometheus/prometheus/releases/download/v2.54.1/prometheus-2.54.1.linux-amd64.tar.gz
Дальше по классике, все то что бы за нас сделал докер, мы сделаем руками. Создадим пользователя, распакуем образ, напишем скрипты для запуска и т.п. и если вам лень, то берите образ докера, там все тоже самое.
# useradd --no-create-home --shell /bin/bash prometheus
# usermod --home /opt/prometheus prometheus
# mkdir /etc/prometheus
# mkdir /var/lib/prometheus
....
Дальше лень копипастить.
В принципе ничего интересного расписывать, тупо раскидываем бинарники по каталогам, меняем владельца и погнали. Единственное, что стоит отметь два бинаря promtool и prometheus симлинками лучше загнать в /usr/local/bin/, чисто для красоты.
Теперь, мы попробуем запустить это чудо локально от имени пользователя которго мы создали и проверим, что оно у нас вообще запускается перед тем как сервис рисовать.
# su prometheus -s /bin/bash
$ /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/opt/prometheus/consoles --web.console.libraries=/opt/prometheus/console_libraries
Если веб-интерфейс на порту 9090 отображается, то значит мы все правильно сделали.

Рисуем сервис в файле /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/opt/prometheus/consoles --web.console.libraries=/opt/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Дальше, классика активируем и включаем. Тюнить все это хозайство будем позже.
# systemctl enable prometheus
# systemctl start prometheus