Настройка 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
Собственно, — это все что нужно было сделать с 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 и вводим свои данные. У меня выглядит вот так:
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 и вводим свои данные.
Как это выглядит:
Я использую графану только в сочетании с заббикс. Выглядит очень круто. Не так ли?
Установка 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 и вводим свои данные.
Как это выглядит:
Как-то так.
Установка 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» завершена.