Установка связки carbon + graphite + grafana + nginx + mysql для сбора и отображения метрик в ubuntu

Prometheus & InfluxDB Guidelines

Though this plugin was initially designed to support graphite, It is also capable of handling timeseries database like Prometheus & InfluxDB. In order to achieve this, you need to alias your timeseries/Prometheus/Infludb metrics to proper delimited format. Following screenshot explains plugin usage with Prometheus/InfluxDB where the metrics are aliased with pipe delimiter. This can be any delimiter like space, dot, etc.#

Optionally, you can experiement with the new tags feature instead of alias . (Not for production use)

WARNING : This may have bugs. Not suitable for production.

To use , tags from your series use as a delimiter as shown below. Then in the row / column, you can specify the tags surronded by double curly braces as shown below. Metric can be referred by {{metric_name}}}.

Rowname, Colname, Links, Tooltips and display template can also have this tag tokens.

Step 3 — Updating Credentials

Because every Grafana installation uses the same administrative login credentials by default, in this step, you’ll update the credentials to improve security.

Start by navigating to from your web browser. This will bring up the default login screen where you’ll see the Grafana logo, a form asking you to enter a User and Password, a Log in button, and a Forgot your password? link.

Enter admin into both the User and Password fields and then click on the Log in button.

On the next screen, you’ll be welcomed to the Home Dashboard. Here you can add data sources and create, preview, and modify dashboards.

Click on the small Grafana logo in the upper, left-hand corner of the screen to bring up the application’s main menu. Then, hover over the admin button with your mouse to open up a secondary set of menu options. Finally, click on the Profile button.

If you want, you can also change the UI Theme and Timezone to fit your needs and then press the Update button in the Preferences area to save your changes. Grafana offers Dark and Light UI themes, as well as a Default theme, which is set to Dark by default.

Finally, change the password associated with your account by clicking on the Change Password button at the bottom of the page. This will take you to the Change password screen.

Enter your current password, admin, into the Old Password field and then enter the password you’d like to start using into the New Password and Confirm Password fields.

Click Change Password to save the new information or press Cancel to abandon your changes.

From there, you’ll be returned to the User Profile page where you’ll see a green box in the upper, right-hand corner of the screen telling you that the User password changed.

You’ve now secured your account by changing the default credentials, so let’s also make sure that nobody can create a new Grafana account without your permission.

How to use

  1. Add the queries you want to the panel and give each of them a unique alias
  2. Choose the name of the panel to be displayed in the field.
    Note: this field supports Grafana templates, so if you repeat the panel the correct name will show
  3. Go to the Options tab, and choose how to treat each metric.
    1. For severity display, select one of the option types ( / / ) under . Enter the and thresholds for each of your queries.
      • You can configure when the alias name and its value will be displayed in the dashboard panel by changing the fields: ,
      • option makes equality check to the values
      • and options make range check with the values. The plugin automatically detects if higher values are good, or lower values are good by checking which threshold is higher/lower. i.e. if in your metric higher values are better, put a lower value in the threshold than the threshold.
    2. For disable display, select the option type under . Enter the for each of your queries.
    3. For display the text without any condition, select the option type under . The alias + the value of the metric will be shown on the panel by the value.
  4. If the query returns multiple values, choose the type of aggregation you want to be used ( will use first item from the result)

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

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

Скачайте ключ GPG Grafana с помощью , а затем на . Это добавит ключ в список надежных ключей установки APT, что позволит загрузить и проверить пакет Grafana с подписью GPG:

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

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

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

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

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

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

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

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

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

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

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

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

Install Grafana

Before you start! Please take a look at the official documentation!
http://docs.grafana.org/installation/debian/

Configure Apache as reverse proxy for Grafana

Create the file with the following content:

Notice: We added an automatically redirect from http to https using self-signed certificates.

Enable the new configuration

Now you should able to browse to the Grafana Frontend via .

Username:

Password:

The Grafana configuration is located at . I would recommend
you to take a look at this file.

Add Graphite as Datasource in Grafana

Configure Statusengine Worker to save Performance data to Graphite

Add your new Graphite instance to your Statusengine Worker Config in

Statusengine Worker use the «plaintext protocol», an TCP connection
to save metrics to Graphite.

Remember to change the IP Address!

To enable the ne settings, restart Statusengine Worker

Create your first Grafana Dashboard

Now you can create the first Graph in Grafana. Thanks to the Grafana UI this is
super easy.

If you have gaps in your Graphs, set to

Configure Statusengine Ui to load Performance data from Graphite

In the last step you need to enable Graphite as Performance Data Backend for
Statusengine Ui. Open the file and
change the following values.

Remember to change the IP Address!

I recommend you to play around with Grafana and get in touch if you are new to it.

This is an example Dashboard I created:

Подготовка к обновлению

Перед обновление необходимо выполнить несколько важных шагов — обновление плагинов, создание дампа базы данных, копирование конфигурационных файлов.

Обновить плагины рекомендуется до обновления и после. Выполняется командой:

grafana-cli plugins update-all

Дамп базы данных

Мы будем резервировать данные в каталог /backup — создаем его командой:

mkdir /backup

Далее наши действия будут отличаться в зависимости от используемой СУБД. Проверить, какая база используется можно в конфигурационном файле графаны:

vi /etc/grafana/grafana.ini

В разделе мы найдем настройку для конкретной СУБД. Если же, все настройки закомментированы, то используется SQLite.

а) Если SQLite

Просто копируем файл /var/lib/grafana/grafana.db:

cp /var/lib/grafana/grafana.db /backup

б) Если MySQL/MariaDB

Делаем дамп командой:

mysqldump -u root -p grafana > /backup/grafana_mysql.sql

* где root — пользователь, под которым мы подключимся к серверу баз данных; grafana — название базы (необходимо заменить на ту, что используется в вашей системе). Подробнее про создание резервных копий mysql в инструкции Как сделать дамп базы MySQL / MariaDB.

в) Если PostgreSQL

Делаем дамп командой:

pg_dump grafana > /backup/grafana_backup

* подробнее о резервном копировании PostgreSQL в инструкции Резервное копирование PostgreSQL.

Копирование конфигов

Завершаем подготовительный этап копирование конфигурационных файлов в созданную ранее папку /backup. Для этого выполняем команды:

cp -R /etc/grafana /backup/etc_conf

cp -R /usr/share/grafana/conf /backup/usr_conf

* данной командой мы скопируем все содержимое каталога /etc/grafana в /backup/etc_conf, а /usr/share/grafana/conf — в /backup/usr_conf.

Установка

Установим ПО Graphite с плагинами, а также дополнительные пакеты. К ним относятся Python и Apache:

Важно! Когда на экране появится сообщение о совместном удалении информации при удалении приложения Graphite, выбираем ответ No. Чтобы отслеживать параметры работы, требуется специализированный сервис

В нашем случае — Carbon. Он установлен на предыдущем этапе, теперь внесем корректировки. Откроем через текстовый редактор Geany конфигурационный файл — его путь подчеркнут желтым цветом. Добавляем блок:

Чтобы отслеживать параметры работы, требуется специализированный сервис. В нашем случае — Carbon. Он установлен на предыдущем этапе, теперь внесем корректировки. Откроем через текстовый редактор Geany конфигурационный файл — его путь подчеркнут желтым цветом. Добавляем блок:

Важно! Операцию выполнять только через sudo. Скриншот №2

Корректировка конфигурации


Скриншот №2. Корректировка конфигурации.

Теперь хранение значений retentions в блоке collected составляет 60 секунд на протяжении семи дней.

Добавим в список разрешенных сервисов загрузку кэша Carbon. Вводим:

Находим строку CARBON_CACHE_ENABLED и присваиваем true. Сохраняем изменения, закрываем редактор. Перезапустим сервис carbon-cache, чтобы корректировки вступили в силу.

Установим СУБД PostgreSQL для работы с системой мониторинга. Добавим новое учетное имя, которое получит доступ к БД Graphite:

Утилита попросит придумать защитный ключ для учетного имени. Придумываем его, следуя советам: не менее девяти символов, включающих в себя спецсимволы, буквы, цифры и разный регистр.

Добавим пользователя к БД панели мониторинга и веб-интерфейсу:

Переключимся на пользователя и перейдем к конфигурированию Graphite.

Настройка Apache

Через редактор vi открываем шаблон конфигурации.

Находим раздел DATABASES. В строку USER вписываем новое учетное имя (graphite). В строке PASSWORD указываем пароль:


Скриншот №3. Редактируем конфигурацию.

Далее добавляем:

Поле TIME_ZONE заполняется в зависимости от региона пребывания. В нашем примере берем московское время.

Пробрасываем порты, чтобы получить доступ:

Сохраняем корректировки:

Перезапускаем службу PostgreSQL.

Чтобы избежать появления проблем в дальнейшем, активируем две команды.

Активируем БД с новыми параметрами:

Важно! В некоторых случаях после инициации базы данных требуется внести информацию о новом пользователе Django. Следуем подсказкам мастера при вводе данных

Следующий шаг — конфигурирование Apache под систему мониторинга. Сначала копируем конфигурацию из директории Graphite в Apache.

Теперь внесем изменения в него, используя текстовый редактор Geany:


Скриншот №4. Меняем порт.

Вносим информацию в СУБД:

Находим строку Listen 80 и дописываем Listen 8080. Сохраняем данные, закрываем конфигурацию.

Деактивируем веб-ресурс Apache, который используется по стандарту:

После инициируем сайт системы мониторинга:

Перезапустим сервис СУБД, чтобы изменения применились.

Step 4 — Disabling Grafana Registrations and Anonymous Access

Grafana provides options that allow visitors to create user accounts for themselves and preview dashboards without registering. When Grafana isn’t accessible via the internet or when it’s working with publicly available data like service statuses, you may want to allow these features. However, when using Grafana online to work with sensitive data, anonymous access could be a security problem. To fix this problem, make some changes to your Grafana configuration.

Start by opening Grafana’s main configuration file for editing:

Locate the following directive under the heading:

/etc/grafana/grafana.ini

Enabling this directive with adds a Sign Up button to the login screen, allowing users to register themselves and access Grafana.

Disabling this directive with removes the Sign Up button and strengthens Grafana’s security and privacy.

Uncomment this directive by removing the at the beginning of the line and then setting the option to :

/etc/grafana/grafana.ini

Next, locate the following directive under the heading:

/etc/grafana/grafana.ini

Setting to gives non-registered users access to your dashboards; setting this option to limits dashboard access to registered users only.

Uncomment this directive by removing the at the beginning of the line and then setting the option to .

/etc/grafana/grafana.ini

Save the file and exit your text editor.

To activate the changes, restart Grafana:

Verify that everything is working by checking Grafana’s service status:

Like before, the output will report that Grafana is .

Now, point your web browser to . To return to the Sign Up screen, bring your cursor to your avatar in the lower left of the screen and click on the Sign out option that appears.

Once you have signed out, verify that there is no Sign Up button and that you can’t sign in without entering login credentials.

At this point, Grafana is fully configured and ready for use. Next, you can simplify the login process for your organization by authenticating through GitHub.

Grafana как инструмент отладки

Дашборды Grafana главным образом помогают нам в отладке приложений. Если конечный клиент сообщает о проблеме, Grafana дает нам возможность отличить ошибки на стороне клиента/сервера от реальных ошибок или брешей в логике приложения. Мы отслеживаем все веб-запросы, инициированные клиентом (используя адрес электронной почты), администраторами приложений и самим приложением в течение заданного периода времени и методом исключения находим причину.

Мы также проводим отладку и исправляем ошибки, если замечаем на дашборде аномалию в графиках загрузки и производительности приложения. Следующий пример графика Grafana показывает время отклика на веб-запросы в течение определенного периода времени. Для каждого веб-запроса мы отслеживаем максимальное, минимальное и среднее время отклика. Если видим запрос, на обработку которого у нас ушло слишком много времени, масштабируем определенную часть графика и исследуем проблему.

Пример графика Grafana, отображающего время отклика на веб-запросы

Другой график показывает загрузку системы в течение установленного периода времени и полезен для отслеживания трафика. Если мы видим необычный всплеск активности, например, в нерабочее время или в выходные дни, мы исследуем его. Такой всплеск может быть вызван, например, сканерами Google, индексирующими контент веб-сайта, или вредоносными ботами, сканирующими нашу систему на наличие уязвимостей. Опять-таки, каждый случай исследуется и рассматривается соответствующим образом.

Пример графика Grafana, отображающего загрузку приложения

Grafana имеет встроенный механизм оповещения (например, по электронной почте или с помощью уведомлений через Slack) согласно определенным правилам. Мы не используем эту возможность инструмента Grafana, поскольку у нас все уведомления настроены в Graylog. Однако некоторые проблемы с производительностью системы можно увидеть только после прогона программы, например, необычно долгое время отклика на веб-запрос. Мы не получим уведомления Graylog об этом, но аномалия будет четко видна на графике Grafana. Итак, оба инструмента дополняют друг друга, когда мы узнаем о какой-то проблеме: на высоком уровне мы проверяем Grafana, чтобы понять, что произошло и почему, а затем копаем глубже с помощью Graylog, используя конкретный идентификатор запроса.

В отличие от Graylog, используемого как для разрабатываемых, так и для используемых приложений, Grafana применяется только для используемых приложений. Единственным исключением, когда Grafana используется для приложения, которое все еще на этапе разработки, является тестирование производительности. Мы эмулируем загрузку системы с помощью JMeter, затем проверяем дашборды Grafana, чтобы увидеть, как она реагирует.

Подключение Zabbix к Grafana

Теперь нам нужно по очереди подключить все Zabbix сервера, данные из которых мы хотим видеть в Grafana. Для этого идем в Configuration -> Plugins. Мотаем в самый низ и находим там Zabbix.

Заходим в него и активируем, нажав Enable. Дальше идем в Data Sources. Опять же, мотаем в самый низ и выбираем Zabbix.

Здесь нам нужно заполнить параметры доступа к серверу Zabbix. Ко всем подключаемым серверам должен быть доступ со стороны Grafana. Так же нам нужен будет отдельный пользователь zabbix с доступом ко всем хостам, информацию с которых мы хотим видеть в Grafana.

Для теста можете взять того же админа, которым вы подключаетесь через веб интерфейс. Но в реальной эксплуатации рекомендую настроить отдельного пользователя zabbix для grafana с ограниченными правами. Например, сделать их только на чтение, если не планируется взаимодействие с серверами через графану.

URL должен заканчиваться на скрипт api_jsonrpc.php. То есть полный url до web интерфейса и скрипт на конце. И не забудьте выбрать версию сервера. Там по умолчанию стоит 3-я. Я сначала не заметил этого. Некоторое время пришлось разбираться с тем, почему нет подключения к zabbix. После того, как все настроите, нажимайте Save & Test. Должны увидеть сообщение, что все в порядке.

Таким же образом вам нужно добавить все сервера Zabbix, информацию с которых вы хотите видеть в общем дашборде Grafana.

Настройка плагинов

У множество встроенных плагинов.

Рассмотрим самые необходимые.

В тот же конфигурационный файл добавляем строку

И ниже вводим его настройки:

Плагин nginx

Тут всё немного интереснее.

Для начала необходимо настроить сам , а именно включить страницу .

Проверяем наличие необходимого модуля в составе :

Если вывод команды такой:

то всё отлично. В противном случае необходимо пересобрать с этим модулем, либо обновиться до последней версии , в составе которой есть этот модуль «из коробки».

Далее настраиваем , редактируем файл :

Теперь если в браузере открыть мы увидим 403 ошибку.
Это значит что левых пользователей сюда не пустят.

Теперь в конфигурационный файл добавляем строку:

И прописываем настройки:

Плагины memory, uptime, users и cpu

В тот же конфигурационный файл добавляем строки

Эти плагины не требуют настроек.
Думаю из названий понятно, за что отвечают эти плагины.

Плагин openvpn

Если Ваш сервер является сервером OpenVPN, то этот плагин поможет вывести некоторые данные.

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Со значениями настроек можете поиграться на Ваше усмотрение.

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин aggregation

С этим плагином я до конца ещё не разобрался, но судя по содержимому он отдаёт параметры и, возможно, имеет дополнительные настройки. Привожу настройки по умолчанию.

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин bind

Если на Вашем сервере установлен DNS-сервер , то включаем этот плагин.

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин df

— отображение свободного и занятого пространства на всех смонтированных разделах.

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин disk

Работает аналогично плагину выше, но выводит несколько другие метрики

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин ping

Проверяет доступность и время ответа от заданного домена

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

Плагин write_graphite

Основной плагин, ради которого пишется данная статья. Отправка данных в .

В тот же конфигурационный файл добавляем строку

И прописываем настройки:

(Дополнительно) Шаг 6 — Настройка Grafana в качестве приложения OAuth для GitHub

Чтобы завершить аутентификацию GitHub для настройки Grafana, вы внесете некоторые изменения в файлы конфигурации Grafana.

Для начала откройте главный файл конфигурации Grafana.

Найдите заголовок и раскомментируйте этот раздел, удалив ​​​ в начале каждой строки, кроме и , которые не будут изменены в этом обучающем руководстве.

Затем выполните следующие изменения:

Установите и вместо . Это позволит выполнить аутентификацию GitHub разрешит членам дозволенной организации самостоятельно создавать учетные записи

Обратите внимание, что эта настройка отличается от свойства в ​​​, которое вы изменили в .
Установите и ​​​ вместо значений, полученных во время создания приложения OAuth для GitHub.
Установите ​​​ в качестве имени вашей организации, чтобы только члены вашей организации могли регистрироваться и входить в Grafana.

Полная конфигурация будет выглядеть следующим образом:

/etc/grafana/grafana.ini

Теперь вы сообщили Grafana всю необходимую информацию о GitHub. Чтобы завершить настройку, вам нужно будет активировать переадресации за обратным прокси-сервером. Это выполняется путем установки значения под заголовком .

/etc/grafana/grafana.ini

Сохраните конфигурацию и закройте файл.

Затем перезапустите Grafana для активации изменений:

Наконец, убедитесь, что служба запущена и работает.

Вывод будет указывать, что служба ​​​.

Теперь протестируйте новую систему аутентификации, перейдя на . Если вы уже вошли в Grafana, наведите мышку на аватар для входа в нижнем левом углу экрана и нажмите Sign out (Выход) в дополнительном меню, которое появляется рядом с вашим именем.

На странице входа вы увидите новый раздел под начальной кнопкой Log in (Вход), который включает кнопку Sign in with GitHub (Регистрация с помощью GitHub) с логотипом GitHub.

Нажмите на кнопку Sign in with GitHub (Регистрация с помощью GitHub) для перенаправления на GitHub, где вы зарегистрируете свою учетную запись GitHub и подтвердите свое намерение авторизовать Grafana (Authorize Grafana).

Нажмите на зеленую кнопку Authorize your_github_organization (Авторизовать your_github_organization).

Примечание. Убедитесь, что ваша учетная запись GitHub принадлежит к утвержденной организации, а ваш адрес электронной почты Grafana соответствует вашему адресу электронной почты GitHub. Если вы попытаетесь аутентифицировать учетную запись GitHub, которая не принадлежит к утвержденной организации, вы получите сообщение Login Failed (Ошибка входа) с текстом User not a member of one of the required organizations (Пользователь не является участником ни одной из утвержденных организаций).

Теперь вы выполните вход с помощью существующей учетной записи Grafana. Если учетная запись уже не существует для пользователя, в качестве которого вы выполнили вход, Grafana создаст новую учетную запись пользователя с разрешениями для просмотра (Viewer), чтобы новые пользователи могли использовать только существующие панели управления.

Чтобы изменить разрешения по умолчанию для новых пользователей, откройте главный файл конфигурации Grafana для редактирования.

Найдите директиву под заголовком и раскомментируйте настройку, удалив в начале строки.

Измените директиву на одно из следующих значений:

  • — может использовать только существующие панели управления
  • ​​​ — может использовать, изменять и добавлять панели управления
  • — имеет разрешение выполнять все действия

В этом руководстве будет установлено автоматическое присвоение :

/etc/grafana/grafana.ini

После сохранения изменений закройте файл и перезапустите Grafana:

Проверьте состояние службы:

Как и ранее, состояние будет выглядеть как ​​​.

На этом этапе вы полностью настроили Grafana, чтобы члены вашей организации GitHub могли регистрироваться и использовать вашу установку Grafana.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector