В предыдущей статье мы настраивали Prometheus Server. Пришло время настроить красивое графическое отображение с помощью Grafana Server.
1. Установка программы.
Белые классические графики — это классика, а хочется, чтоб всё было как на приборной панели современного самолёта! Чтоб приборчики всякие и экраны красивые.
За такую красоту отвечает графическая оболочка Grafana Server. Его сейчас и поставим.
Официальная ссылка на руководство по установке и настройке Grafana от разработчика Prometheus: prometheus.io.
Всё можно поставить вручную или через репозиторий.
Установим файловый менеджер и текстовый редактор в одном лице — Midnight Commander:
# yum -y install mc
1.1. Установка через репозиторий.
Ссылка на установку репозитория от разработчика Grafana: grafana.com.
Создадим файл репозитория:
# mcedit /etc/yum.repos.d/grafana.repo
Внесём в него тест:
[grafana]
name=grafana
baseurl=https://packages.grafana.com/enterprise/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Установим программное обеспечение:
# yum -y install grafana-enterprise
Если вы устанавливаете вручную с помощью YUM, то вам нужно будет вручную обновить Grafana для каждой новой версии.
Заходим на сайт разработчика Grafana: grafana.com.
В разделе установки этой графической оболочки ищем копируем ссылку на закачку пакета установщика с программой. В инструкции есть уже команда на закачку с правильной ссылкой. Используем ее.
Переместимся в папку пользователя под которым работаем:
# cd ~
Скачаем данный пакет установщика на сервер CentOS 7, в локальную папку пользователя:
# wget https://dl.grafana.com/oss/release/grafana-6.7.2-1.x86_64.rpm
Проверим, что он в папке:
# ls
Ответ: список содержимого папки + файл grafana-6.7.2-1.x86_64.rpm.
grafana-6.7.2-1.x86_64.rpm
Установим пакет из локальной папки, в которой мы находимся:
# sudo yum -y localinstall grafana-6.7.2-1.x86_64.rpm
В итоге получится вот это:
Дополнительную информацию смотрите в руководстве по установке Centos 7. Кому привычнее ставить из репозитория, то имеется официальный репозиторий пакетов YUM от разработчика Grafana. Ссылки на подробные ресурсы упоминались выше по тексту инструкции.
2. Запуск системной службы.
Чтобы запустить службу и убедиться, что она запущена:
# systemctl daemon-reload
# systemctl start grafana-server
Настройка Grafana Server для запуска при загрузке CentOS 7:
# systemctl enable grafana-server.service
Убедимся, что всё стартовало успешно:
# systemctl status grafana-server
Ответ:
3. Основные компоненты.
Основные компоненты, которые могут пригодиться:
- Бинарные файлы:
/usr/sbin/grafana-server
/usr/sbin/grafana-cli
- Копии
init.d
скрипта:/etc/rc.d/init.d
- Конфигурационный файл:
/etc/grafana/grafana.ini
- Сервис systemd с именем:
grafana-server
- Расположение log-файла по умолчанию:
/var/log/grafana/grafana.log
- Расположение sqlite3 database файла по умолчанию:
/var/lib/grafana/grafana.db
Теперь можно переходить к настройке Grafana Server в web-интерфейсе.
4. Открытие 3000 порта.
Web-интерфейс расположен по адресу http://localhost:3000/
. Если вам потребуется сменить 3000 порт на свой, то это можно будет сделать в файлах конфигурации позднее.
Откроем порт 3000:
- Если firewalld:
# firewall-cmd --zone=public --add-port=3000/tcp --permanent
# firewall-cmd --complete-reload
- Если iptables:
Открываем файл конфигурации iptables текстовым редактором:
# mcedit /etc/sysconfig/iptables
В разделе ‘OUTPUT ACCEPT
‘, добавляем строку:
-A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW -j ACCEPT
Перезапускаем iptables:
# systemctl restart iptables
5. Отключение регистрации и анонимного доступа.
Grafana предоставляет параметры, позволяющие посетителям создавать собственные учетные записи и просматривать панели мониторинга без регистрации. Поскольку Grafana доступна в Интернете, это может повлечь риски для безопасности. Однако если Grafana недоступна в Интернете или не работает с конфиденциальными данными, вы можете не блокировать эти функции.
Создадим резервную копию файла конфигурации:
# cp /etc/grafana/grafana.ini /etc/grafana/grafana.ini.original
Откройте главный конфигурационный файл Grafana:
# mcedit /etc/grafana/grafana.ini
Найдите директиву allow_sign_up
под заголовком [users]
.
...
[users]
# disable user signup / registration
;allow_sign_up = true
...
Если директива имеет значение true
, она добавляет на экран входа в систему кнопку Sign Up, что позволяет пользователям регистрироваться и получать доступ к Grafana.
Значение false
удаляет кнопку Sign Up и повышает безопасность и конфиденциальность Grafana.
Если вы не хотите разрешать анонимным посетителям регистрироваться, раскомментируйте эту директиву, удалив точку с запятой в начале строки, а затем установите значение false
.
...
[users]
# disable user signup / registration
allow_sign_up = false
...
Найдите директиву enabled
под заголовком [auth.anonymous]
.
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...
Значение true
в этой директиве дает незарегистрированным пользователям возможность получить доступ к вашим панелям мониторинга. Значение false
ограничивает доступ, и панели мониторинга смогут использовать только зарегистрированные пользователи.
Если вы не хотите разрешать анонимный доступ к панелям мониторинга, раскомментируйте эту директиву, а затем установите значение false
.
...
[auth.anonymous]
# enable anonymous access
enabled = false
...
Сохраните и закройте файл.
Перезапустите Grafana:
# systemctl restart grafana-server
Чтобы убедиться, что все работает, проверьте состояние Grafana:
# systemctl status grafana-server
Как и раньше, в выводе вы увидите active (running).
Если это не так, просмотрите сообщения терминала для получения дополнительной справки.
На данный момент Grafana полностью настроена и готова к использованию.
6. Grafana Server web-интерфейс.
Проследуем:
# http://IP-адрес:3000/
Если вы видите кнопку Sign Up или можете анонимно войти в систему, повторите предыдущие действия, чтобы устранить проблему, прежде чем продолжить работу.
Если кнопки Sign Up нет, то можете смело продолжать настройку дальше.
По умолчанию логин admin
и пароль тоже admin
.
После первого успешного ввода технического пароля и логина, Grafana Server предложит вам придумать и ввести свои рабочий пароль.
Воспользуемся этим и поменяем пароль на свой.
Внимание! Потом не забудьте поменять логин администратора Grafana Server и настроить анкету учетной записи администратора, настроить электронную почту, название организации и прочие мелочи.
Проходим дальше и попадаем в графическую инструкцию тех шагов, которые потребуется выполнить, чтобы начать пользоваться Grafana. Обратите внимание на верхнюю строку с пиктограммами, там отображается путь того, что нужно настроить для успешного ввода в эксплуатацию графической оболочки Grafana Server.
Чтобы начать что-то мониторить, нам нужен источник данных. Нажимаем Add data source.
Попадаем в меню выбора источников данных Grafana Server. Так как у нас уже установлен Prometheus Server, то пришло время их связать вместе в единый комплекс.
Примечание: Каждый сервер Prometheus – отдельный источник данных. Чтобы добавить несколько серверов Prometheus, нужно повторить инструкции данного раздела.
Здесь же в анкете есть вкладка Dashboards — это заранее сделанные для нас панели мониторинга от разработчиков Grafana. Позднее вы сами можете добавить или разработать свои панели мониторинга. Добавлять то, что предлагается в настройке по умолчанию не надо. Далее по инструкции мы добавим отличную панель Node Exporter Full.
Вернемся в анкету Settings, которую следует заполнить согласно тем параметрам, которые мы указывали для Prometheus Server по тексту инструкции выше. Возвращаемся на вкладку Settings и нажимаем кнопку зеленую кнопку Save & Test. Если все параметры введены верно, то тест будет пройден исправно и сохранение параметров засчитывается.
6.1. Создание панели мониторинга.
Для начала мониторинга, логично, создадим Панель мониторинга:
1. Нажмите кнопку Home —> New dashboard.
2. Нажмите кнопку Add Query. Grafana создает базовую графическую панель со сценарием Random Walk. Заполним анкету запросов по образцу из картинки. Источником Query выберем наш Prometheus Server. В качестве запроса используем запрос node_memory_MemFree_bytes
.
Сохраните приборную панель. Щелкните значок дискетки Save dashboard в верхнем правом углу экрана.
Важно! Нажмите кнопку Save в верхнем меню, чтобы сохранить новый дашборд в Grafana. В противном случае дашборд исчезнет из настроек после обновления браузера.
Поздравляю, вы начали что-то измерять с Grafana! У вас есть панель мониторинга и отображаются результаты. Не стесняйтесь экспериментировать с тем, что вы построили, продолжать добавлять другие источники данных.
Если вы знаете что вам нужно, создайте свою панель мониторинга. Если еще не знаете, предлагаю подключить готовые.
6.2. Подключение готовой панели мониторинга.
Для Grafana есть специальный портал, где можно бесплатно скачать готовые панели мониторинга под любые нужды и под любые запросы.
Ссылка на портал полезной Панелью: grafana.com.
Среди них есть она очень полезная панель. Называется она Node Exporter Full. В ней есть мониторинг всех важных параметров сервера.
Проследуем по ссылке на портале до Node Exporter Full: grafana.com.
Скачаем файл последней ревизии с панелью мониторинга Node Exporter Full. После скачивания файл будет называться node-exporter-full_rev16.json
.
Теперь этот файл импортируем в Grafana.
Выходим на Главную страницу приветствия —> нажимаем Home:
Выбираем импорт панели Import dashboard:
Переходим в окно импорта и нажимаем Upload .json file и импортируем файл node-exporter-full_rev16.json
.
Заполняем анкету панели своими данными и подключаем свой сервер для мониторинга по аналогии:
Нажимаем Import и панель мониторинга начинает отображать метрики нашего Prometheus Server:
Внимание! Панель мониторинга может минут 5 ничего не отображать или отображать что-то частично. Ничего страшного. Просто подождите пока все метрики наработают свою базу данных, чтобы вам что-то начать показывать на графиках. Через некоторое время зайдите в панель мониторинга и все панельки будет отображать информацию исправно.
Слева у каждой подпанели есть значок «птичка-галочка» (слева от начала заголовка каждой вкладки) за который можно свернуть или развернуть нужную вкладку общей панели мониторинга.
После всего этого нажимаем значок дискеты Сохранить (1) и наша панель мониторинга будет сохранена и привязана к Prometheus Server. Пометим ее в закладки значком Звездочки (2). Выйдем на Главную страницу (3) экрана приветствия Grafana Server.
Теперь у нас организован мониторинг основных параметров сервера на котором развернуты Prometheus Server с графической оболочкой Grafana Server.
Как ботать дальше с этими системами можно легко узнать в Интернете. Информации очень много. Системы достаточно популярные.
Если что-то появится интересное, то я обязательно добавлю эти готовые решения на свой сайт и ссылку на них в эту инструкцию.
7. Grafana Server через Nginx.
Если на сервере установлен Nginx и имеется доменное имя, можно пробросить пробросить через него вход в интерфейс Grafana Server.
Если у вас не поднят web-сервер, то вы можете создать его по инструкции: «CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем.»
Приступим к написанию файла конфигурации:
# mcedit /etc/nginx/conf.d/grafana_server.conf
Для этого в папке с конфигурациями Nginx создаем конфигурацию вот с таким текстом:
server {
listen 80;
server_name grafana-server.name.ru;
access_log /grafana-server/log/access.log;
error_log /grafana-server/log/error.log;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name mt.hamsterden.ru;
access_log /grafana-server/log/access.log;
error_log /grafana-server/log/error.log;
ssl_certificate /etc/letsencrypt/live/grafana-server.name.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana-server.name.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/grafana-server.name.ru/fullchain.pem;
location / {
# auth_basic "Воинское звание? Цель прибытия?";
# auth_basic_user_file /etc/nginx/htpasswd;
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Как его модифицировать и усилить вы можете почитать в руководствах для Nginx.
Перезапустим Nginx:
# systemctl restart nginx
Заходим в браузере:
# https://grafana-server.name.ru
8. Сброс до заводских настроек.
Для того, чтобы сбросить Grafana Server до заводских настроек, достаточно удалить файл grafana.db
, в каталоге /var/lib/grafana
.
После этого нужно будет заново настраивать администратора, учетные записи и источники данных. Вы получите полностью голую и чистую систему.
# rm -Rf /var/lib/grafana/grafana.db
Перезапустите Grafana:
# sudo systemctl restart grafana-server
Теперь при входе в Grafana Server вы должны будете проходить все этапы настройки заново.
9. Смена порта программы по умолчанию.
По умолчанию программа использует 3000 порт. Но его можно легко поменять в главном файле настроек программы grafana.ini
в каталоге /etc/grafana
.
Откройте главный конфигурационный файл Grafana:
# mcedit /etc/grafana/grafana.ini
Найдите директиву http_port
под заголовком [server]
.
[server]
...
# The http port to use
;http_port = 3000
...
Расскоментируйте ее и внесите правки номера своего порта:
[server]
...
# The http port to use
http_port = 3333
...
Сохраните и закройте файл.
Перезапустите Grafana:
# sudo systemctl restart grafana-server
Чтобы убедиться, что все работает, проверьте состояние Grafana:
# sudo systemctl status grafana-server
Как и раньше, в выводе вы увидите active (running).
Прежде чем переходить в web-интерфейс Grafana по новому порту не забудьте открыть новый порт, а так же внести правки в конфигурацию Nginx, иначе web-интерфейс будет недоступен.
Проследуем:
# http://IP-адрес:3333/
10. Список доступных метрик.
Список доступных метрик можно найти по ссылке:
# http://<your_server_ip>:9090/metrics
Все эти метрики можно скопировать и вставить в редактор запросов Grafana.
Чтобы изменения настроек вступили в силу, нужно сохранить дашборд.
11. Оригиналы источников информации.
- prometheus.io «Grafana | Prometheus».
- grafana.com«Install on RPM-based Linux (CentOS, Fedora, OpenSuse, Red Hat)».
- grafana.com«Node Exporter Fullby idealista».
- laurvas.ru «Осваиваем мониторинг с Prometheus. Часть 1. Знакомство и установка.».
- eax.me «Устанавливаем связку из Prometheus и Grafana».
- 8host.com «Установка и защита Grafana в Ubuntu 16.04».
- 8host.com «Добавление дашборда Prometheus в Grafana».
Источник: https://hamsterden.ru/grafana-server/