Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux

Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux

Сейчас стало модно использовать разные «хипстерские штуки» и Grafana взяла тренд — это тулза для создания дашбордов по различным метрикам и графиков, которые берутся из других систем.   Я в своей статье, хотел бы рассказать как можно работать с grafana и собирать, строить и использовать различные дашборы для своих целей.

Это не означает что все что тут будет описано, вы должны у себя использовать, но если есть необходимость в этом — то можете настроить под свои нужды. Я для своих личных, ознакомительных целей, установил все это дело локально на машине и протестировал работу.

Установка grafana в Unix/Linux

И так, я начну с установки свой графаны:

Установка grafana в Unix/Linux

Хочу отметить следующее, — это то, что grafana слушает 3000-й порт и для удобства, я сейчас сделаю прокси на 80-й порт. Есть много прокси-сервисов, но я предпочитаю nginx. Я приведу статьи по установке nginx:

Установка PHP 7(php-fpm) с nginx 1.9 в Debian 8

Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7

Виртуальный хост для отдельного пользователя с PHP-FPM и nginx

Уcтановка nginx, MySQL, PHP (LEMP) stack на Debian/Ubuntu

Nginx уже имеется в системе, и сейчас нужно создать конфиг для графаны:

# vim /etc/nginx/conf.d/grafana.conf

И прописываем:

server {
 	listen 80;
 	server_name grafana.local;
 	access_log /var/log/nginx/access-grafana.log;
 	error_log /var/log/nginx/error-frafana.log info;
	location / {
		proxy_pass http://127.0.0.1:3000;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP        $remote_addr;
            	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
		}
}

Где:

  • grafana.local — это мое доменное имя ( я прописал в /etc/hosts свой IP и сопоставил его с grafana.local)

PS: Нужно прописать в исключения 3000-й и 80-й порты. Если используете iptables, то добавьте правило. Если SELinux, вот чтиво:

Настройка SELinux для Apache/Nginx в Unix/Linux

Отключить SELinux на CentOS

Собственно, — это все что нужно было сделать с nginx —  это и есть прокси. Переходим к конфигу графаны:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[paths]
data = /var/lib/grafana
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins

[server]
protocol = http
http_addr = 127.0.0.1
http_port = 3000
domain = localhost
root_url = http://localhost:3000

Вот такой конфиг заработает ( проверялось не одиножды)! Некоторые люди пишут, что можно выполнить следующую команду:

# setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server

Но я не проверял этого. Оставил на всякий случай.

Перезапускаем службы:

# service nginx restart
# service grafana-server

Переходим к установке и настройке дургих компонентов.

Установка MYSQL/MariaDB в Unix/Linux

Я тоже не буду приводить подробности по установке, а приведу чтиво:

Установка MySQL на Debian/Ubuntu/Linux Mint

Установка MySQL 5.5 на RHEL / CentOS и Fedora

Установка MariaDB 10 на CentOS 7

Вот может еще пригодится:

Разрешить доступ к MySQL с определенной подсети в Unix/Linux

Сейчас, я создаю пользователя, базу и пароль:

# mysql -uroot -p

Создаем базу и пользователя с паролем:

> create database grafana character set utf8 collate utf8_bin;
> grant all privileges on grafana.* to 'grafana'@'127.0.0.1' IDENTIFIED BY 'Your_passwd_user_grafana';
> flush privileges;

Заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> MYSQL и вводим свои данные. У меня выглядит вот так:

добавляем data source для grafana

добавляем data source для grafana

PS: Нам говорят что данный плагин находится в тестовом виде и его не особо стоит пока-что юзать.

Нажимаем на «Add», потом на «Save & Test» и у вас будет уже mysql. Открываем когфиг:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[database]
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = Your_passwd_user_grafana

Перезапускаем grafana-server:

# service grafana-server restart

После чего, в созданной БД, будут созданы таблицы для работы с графаной.

PS: Это довольно хороший способ хранить хранить, т.к легко можно создать бэкап и ничего не потерять.

Как по мне — очень хорошее решение. Идем далее….

Установка Zabbix в Unix/Linux

Я не буду сильно расписывать что и как ставится, вот чтиво:

Установка Zabbix + nginx+php-fpm + mariaDB в Unix/Linux

Чтобы заюзать grafana дашборд  и настроить все это дело с zabbix, нужно установить плагин (выполните установку на сервере где установлена графана):

# grafana-cli plugins install alexanderzobnin-zabbix-app

После установке каждого плагина, стоит перезапускать grafana сервер:

# service grafana-server restart

Сейчас, стоит активировать установленный плагин, для этого стоит зайти в панель самой графаны ( заюзайте ваш логин и пароль) и открыть «plugins» -> «zabbix» -> «enable».

Плагин активировали, но сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Zabbix и вводим свои данные.

Как это выглядит:

Dashboard grafana с CloudWatch

Dashboard grafana с CloudWatch

Я использую графану только в сочетании с заббикс. Выглядит очень круто. Не так ли?

Установка Graphite в Unix/Linux

Не было нужды в использовании ( я дополню статью). Но если имеется уже готовый сервер с графитом, то вы можете

добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Graphite и вводим свои данные.

Как-то так.

Установка Elasticsearch в Unix/Linux

Выполняем установку:

Установка ElasticSearch (один сервер) кластер в Unix/Linux

Сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Elasticsearch и вводим свои данные.

Как-то так.

Установка CloudWatch в Unix/Linux

Сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> CloudWatch и вводим свои данные.

Как это выглядит:

Dashboard grafana с CloudWatch

Dashboard grafana с CloudWatch

Как-то так.

Установка Prometheus в Unix/Linux

Установка этого чуда еще предстоит в будущем. Но если имеется уже сервер с CollectD, то можно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Prometheus и вводим свои данные.

Как-то так.

Установка InfluxDB в Unix/Linux

Выполняем установку:

Установка InfluxDB в Unix/Linux

Установка этого чуда еще предстоит в будущем. Но если имеется уже сервер с InfluxDB, то можно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> InfluxDB и вводим свои данные. Строим графики и наслаждаемся. Наверное стоит рассказать как строятся графики, но на все времени нет…. При первой возможности, обязательно дополню статью.

Как-то так.

 

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

Для начала, устанавливаем почтовый сервер, я описывал все это дело в своей статье:

Установка почтового сервера Postfix, Dovecot и SquirrelMail в CentOS/Redhat/Fedora

Удалить/Очистить/Сбросить очередь в postfix

Если имеется почтовый сервер, то нужно немного настроить конфиг графаны:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[smtp]
enabled = true
host = localhost:25
cert_file =
key_file =
skip_verify = true
from_address = admin@localhost
from_name = Grafana

Конечно же, перезапускаем сервер:

# service grafana-server restart

А сейчас, открываем графана:

Alerting -> Configure notifications ->  New Channel ->  Заполняем данные и пробуем отправить тестовое сообщение на почту.

Вот и все. Статья «Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux» завершена.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.