четверг, 29 декабря 2022 г.

Установка Grafana в RockyLinux 9. Подключение Grafana к Clickhouse. Подключение Grafana к MariaDB. M2Collector.

Установка grafana с примерками команд описана на сайте https://grafana.com/grafana/download. Для бесплатного использования необходимо выбирать для установки версию OSS, а не Enterprise

Для установки свежего пакета grafana (9.3) на сервер выполняем:
# cd /usr/src/
# wget https://dl.grafana.com/oss/release/grafana-9.3.2-1.x86_64.rpm
# yum install grafana-9.3.2-1.x86_64.rpm
# systemctl start grafana-server
# systemctl enable grafana-server

Сервер grafana работает на порту 3000
Открываем порт 3000 в firewalld:
# firewall-cmd --permanent --zone=public --add-port=3000/tcp
# firewall-cmd --reload

Обратиться к нему можно по url: http://IPадрес:3000
По умолчанию данные для входа admin / admin
После первого входа сразу будет предложено сменить пароль.

Для установки плагина для grafana, работающего с clickhouse из консоли сервера выполняем:
# grafana-cli plugins install vertamedia-clickhouse-datasource
# systemctl restart grafana-server

(Страница плагина https://grafana.com/grafana/plugins/vertamedia-clickhouse-datasource/)
Для работы с сервером MariaDB специального плагина не нужно. В комплекте с Grafana уже идет предустановленный плагин для работы с базой MySQL. Этот плагин подойдет для работы с MariaDB.

После установки Grafana первым делом необходимо добавить в систему источники данных, куда должна обращаться система для извлечения исходных данных.
Для добавления базы clickhouse выполняем следующее:
Слева снизу выбираем иконку настроек (шестеренку) и пункт меню "Data Sources"
В окне добавления источников данных нажимаем кнопку "Add data source" 


В поисковой строке набираем “clickhouse”. Затем кликаем по найденному плагину "Altinity plugin for ClickHouse".

 
В поле URL вводим URL для доступа к базе. В случае ELIS это http://10.10.49.165:8123.
В простейшем случае более ничего не требуется.
Пример:


Нажимаем кнопку "Save&Test". Источник данных будет добавлен в систему.

 
Для добавления базы MariaDB выполняем следующее:
Слева снизу выбираем иконку настроек (шестеренку) и пункт меню "Data Sources". В поисковой строке набираем “mysql” и кликаем по найденному плагину


В открывшемся окне нужно заполнить данные для доступа к базе данных MariaDB:
Host, Database, User, Password.
Пример:


Нажимаем кнопку "Save&Test". Источник данных будет добавлен в систему.

Для того что что бы отобразить информацию о самой базе ClickHouse можем воспользоваться готовым дашбордом с ресурса
https://grafana.com/grafana/dashboards/?search=clickhouse
Например, "ClickHouse ANAL" с ID=14719
Для того что бы создать на основе этого шаблона dashboard, слева выбираем Dashboards -> +Import
В поле с ID вписываем номер 14719, нажимаем "Load", затем выбираем источник данных, который создали ранее (имя по умолчанию "Altinity plugin for ClickHouse (default)") и нажимаем "Import". Будет создан новый dashboard, отражающий параметры базы ClickHouse.


Для того что что бы отобразить информацию о самой базе MariaDB можем воспользоваться готовым дашбордом с ресурса
https://grafana.com/grafana/dashboards/?search=clickhouse
Например, можно воспользоваться плагином «2MySQL Simple Dashboard 4 MariaDB» с ID 11679.
Для того что бы создать на основе этого шаблона dashboard, слева выбираем Dashboards -> +Import
В поле с ID вписываем номер 11679, нажимаем "Load", затем выбираем источник данных, который создали ранее (в нашем случае MySQL UHOTOOL-2) и нажимаем Import. Будет создан новый dashboard, который призван отражать параметры базы MariaDB. Но по умолчанию база MariaDB не готова отображать статистику своей работы. И dashboard будет выглядеть так:

 
Пока информации тут никой нет. Дело в том, что статистику взять не откуда. Что бы статистика работы MariaDB накапливалась в самой базе MariaDB необходимо воспользоваться решением my2Collector - https://github.com/meob/my2Collector
Нужно сказать и запустить скрипт my2.sql, который создаст дополнительную базу данных на сервере. В эту базу данных с периодичностью 10 минут будут записываться данные о работе сервера MariaDB.
Запуск скрипта выполняется так:
# mysql --user=root -h127.0.0.1 -p < my2.sql
Затем вводиться пароль, после чего сгенерируется новая база my2.
Пользователю, которого мы прописывали в качестве параметров к источнику данных в Grafana нужно дать право выполнять Select в базе данных my2. В нашем случае это выполняется для пользователя viewuser
(GRANT SELECT ON `my2`.* TO 'viewuser'@'%';)
Из представления дашборда сразу исчезнут ошибки, но данные появятся только спустя некоторое время, когда произойдет накопление.

Пример dashboard с данными:


Для создания своего дашборда, который бы брал данные из источников clickhouse или MariaDB нужно выбрать пункт меню слева Dashboards -> + New Dashboards. Затем кликнуть по «Add a new panel». Внизу в левой части экрана настраиваются метрики, которые нужно отобразить, в колонке справа настраивается внешний вид графиков, сверху слева – будет представление метрик.  

Пример запроса к источнику Clickhouse для отображения метрики утилизации CPU

SELECT
    $timeSeries as t,
    diffmetrics.value as cpu
FROM $table
WHERE
    $timeFilter
    and metric = 'CPU-Utilization'

Пример запроса к источнику MariaDB для показа количества вызовов пои данным radius аккаутинга:

Select
  Count(*) as q
From
  radacct
where
  acctsessiontime > 0
  and $__timeFilter(acctstarttime)








понедельник, 12 декабря 2022 г.

Apache перенаправление запросов RedirectMatch

Для того что бы заставить сервер Apache выполнять переадресацию запросов к ряду URL на другой сервер
нужно воспользоваться директивой RedirectMatch.

Данная директива имеет два параметра:
 - маску, с которой будет сравниваться поступившйи URL
 - путь назначения

Например, вот тут все запросу к URL к каталогу "_sakura" к файлам php, html, js
будут переадресовываться на ресурс http://10.10.9.252/
RedirectMatch "_sakura/(.*)\.html$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.php$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.js$" "http://10.10.9.252/"


Директивы следует вписывать в конфигурационный файл apache, в блок описывающий поведении директории.
Например сюда:
файл /etc/httpd/conf/httpd.conf
Раздел:
<Directory "/var/www/html">
....
RedirectMatch "_sakura/(.*)\.html$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.php$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.js$" "http://10.10.9.252/"
</Directory>