Перейти к содержанию

Навигация

Grafana: различия между версиями

5008 байт добавлено ,  9 месяцев назад
 
(не показано 29 промежуточных версий 4 участников)
Строка 1: Строка 1:
{{Draft}}
{{DISPLAYTITLE: Использование Grafana с контроллером Wiren Board }}
[[Image: Grafana Dash Demo.png |600px|thumb|right| Пример дашборда в Grafana: выходной контроль устройств у нас на производстве ]]
== Введение ==
== Введение ==
'''Grafana''' — мультиплатформенное веб-приложение с открытым кодом, отображающее данные в виде графиков, диаграмм, индикаторов, а также другими способами. Конечные пользователи могут создавать сложные панели мониторинга с помощью интерактивного конструктора запросов. Умеет отправлять оповещения (alert). Расширяется с помощью системы плагинов.
'''Grafana''' — мультиплатформенное веб-приложение с открытым кодом, отображающее данные в виде графиков, диаграмм, индикаторов, а также другими способами. Конечные пользователи могут создавать сложные панели мониторинга с помощью интерактивного конструктора запросов. Умеет отправлять оповещения (alert). Расширяется с помощью системы плагинов.
Строка 9: Строка 10:
== Grafana Cloud ==
== Grafana Cloud ==
[[Image: Grafana Cloud.png |600px|thumb|right| Схема обмена данными при использовании Grafana Cloud]]
[[Image: Grafana Cloud.png |600px|thumb|right| Схема обмена данными при использовании Grafana Cloud]]
В состав Grafana Cloud уже есть база данных, поэтому устанавливать и настраивать базу данных не нужно.
В состав Grafana Cloud уже есть база данных, поэтому отдельно устанавливать и настраивать базу данных не нужно.


Схема работы:
Схема работы:
Строка 21: Строка 22:
# Найдите карточку '''Prometheus''' и нажмите кнопку '''Send Metrics'''.
# Найдите карточку '''Prometheus''' и нажмите кнопку '''Send Metrics'''.
# На открывшейся странице найдите и сохраните данные из полей:
# На открывшейся странице найдите и сохраните данные из полей:
#* ''Query Endpoint''
#* Query Endpoint
#* ''Remote Write Endpoint''
#* Remote Write Endpoint
#* ''Username / Instance ID''
#* Username / Instance ID
#* ''Password / API Key'', для генерации ключа нажмите '''Generate now'''.
#* Password / API Key, для генерации ключа нажмите '''Generate now'''.


<gallery widths=322px heights=200px perrow=2>
<gallery widths=322px heights=200px perrow=2>
Строка 34: Строка 35:
Telegraf — это сервис, который устанавливается на контроллер Wiren Board и отправляет данные в базу данных Grafana Cloud. Для выполнения команд, откройте консоль контроллера по [[SSH]].
Telegraf — это сервис, который устанавливается на контроллер Wiren Board и отправляет данные в базу данных Grafana Cloud. Для выполнения команд, откройте консоль контроллера по [[SSH]].


Установка Telegraf:
Установка:
# Установите дополнительные пакеты:
# Установите дополнительные пакеты:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
apt update && apt install apt-transport-https
apt update && apt install apt-transport-https
apt -y install gnupg
</syntaxhighlight>
</syntaxhighlight>
# Добавьте ключ репозитория telegraf:
# Добавьте ключ репозитория Telegraf:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add -
wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | apt-key add -
</syntaxhighlight>
</syntaxhighlight>
# Добавьте в список apt-репозиториев ссылку на репозиторий telegraf:
# Добавьте в список apt-репозиториев ссылку на репозиторий telegraf:
Строка 47: Строка 49:
source /etc/os-release  
source /etc/os-release  
</syntaxhighlight>
</syntaxhighlight>
#* Здесь <code>$VERSION_ID = "9"</code> и <code>stretch</code> — версия ОС:
#* Здесь <code>bullseye</code> — версия ОС:
#*:<syntaxhighlight lang="bash">
#*:<syntaxhighlight lang="bash">
test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | tee /etc/apt/sources.list.d/influxdb.list
echo "deb https://repos.influxdata.com/debian bullseye stable" | tee /etc/apt/sources.list.d/influxdb.list
</syntaxhighlight>
</syntaxhighlight>
# Обновите список пакетов и установите telegraf:
# Обновите список пакетов и установите Telegraf:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
apt update && apt install telegraf
apt update && apt install telegraf
</syntaxhighlight>
</syntaxhighlight>
# Запустите установленный сервис:
# Включите автозапуск сервиса:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
service telegraf start
systemctl enable telegraf
</syntaxhighlight>
</syntaxhighlight>


Теперь его нужно настроить:
Настройка:
# Откройте файл настроек telegraf:
# Откройте файл настроек Telegraf:
#: <syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
mcedit /etc/telegraf/telegraf.conf
nano /etc/telegraf/telegraf.conf
</syntaxhighlight>
</syntaxhighlight>
# Секция '''inputs.mqtt_consumer''', поля ''servers'', ''topics'', ''data_format'' и ''data_type'':
# Секция '''inputs.mqtt_consumer''', поля ''servers'', ''topics'', ''data_format'' и ''data_type'':
Строка 152: Строка 154:
     Content-Encoding = "snappy"
     Content-Encoding = "snappy"
     X-Prometheus-Remote-Write-Version = "0.1.0"
     X-Prometheus-Remote-Write-Version = "0.1.0"
</syntaxhighlight>
# Закомментируйте секцию '''outputs.influxdb''':
#:<syntaxhighlight lang="bash">
# Configuration for sending metrics to InfluxDB
# [[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  # urls = ["unix:///var/run/influxdb.sock"]
  # urls = ["udp://127.0.0.1:8089"]
  # urls = ["http://127.0.0.1:8086"]
  ## The target database for metrics; will be created as needed.
  ## For UDP url endpoint database needs to be configured on server side.
  # database = "telegraf"
  ## The value of this tag will be used to determine the database.  If this
  ## tag is not set the 'database' option is used as the default.
  # database_tag = ""
  ## If true, the 'database_tag' will not be included in the written metric.
  # exclude_database_tag = false
  ## If true, no CREATE DATABASE queries will be sent.  Set to true when using
  ## Telegraf with a user without permissions to create databases or when the
  ## database already exists.
  # skip_database_creation = false
  ## Name of existing retention policy to write to.  Empty string writes to
  ## the default retention policy.  Only takes effect when using HTTP.
  # retention_policy = ""
  ## The value of this tag will be used to determine the retention policy.  If this
  ## tag is not set the 'retention_policy' option is used as the default.
  # retention_policy_tag = ""
  ## If true, the 'retention_policy_tag' will not be included in the written metric.
  # exclude_retention_policy_tag = false
  ## Write consistency (clusters only), can be: "any", "one", "quorum", "all".
  ## Only takes effect when using HTTP.
  # write_consistency = "any"
  ## Timeout for HTTP messages.
  # timeout = "5s"
  ## HTTP Basic Auth
  # username = "telegraf"
  # password = "metricsmetricsmetricsmetrics"
  ## HTTP User-Agent
  # user_agent = "telegraf"
  ## UDP payload size is the maximum packet size to send.
  # udp_payload = "512B"
  ## Optional TLS Config for use on HTTP connections.
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false
  ## HTTP Proxy override, if unset values the standard proxy environment
  ## variables are consulted to determine which proxy, if any, should be used.
  # http_proxy = "http://corporate.proxy:3128"
  ## Additional HTTP headers
  # http_headers = {"X-Special-Header" = "Special-Value"}
  ## HTTP Content-Encoding for write request body, can be set to "gzip" to
  ## compress body or "identity" to apply no encoding.
  # content_encoding = "gzip"
  ## When true, Telegraf will output unsigned integers as unsigned values,
  ## i.e.: "42u".  You will need a version of InfluxDB supporting unsigned
  ## integer values.  Enabling this option will result in field type errors if
  ## existing data has been written.
  # influx_uint_support = false
</syntaxhighlight>
</syntaxhighlight>
# Сохраните файл и закройте редактор.
# Сохраните файл и закройте редактор.


Проверьте, что Telegraf работает без ошибок:
Проверка работы:
# Остановите сервис:
# Остановите сервис:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
service telegraf stop
systemctl stop telegraf
</syntaxhighlight>
</syntaxhighlight>
# Запустите сервис в режиме отладки и убедитесь, что данные отправляются:
# Запустите сервис в режиме отладки и убедитесь, что данные отправляются:
Строка 185: Строка 267:
# Запустите сервис в автоматическом режиме:
# Запустите сервис в автоматическом режиме:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
service telegraf start
systemctl start telegraf
</syntaxhighlight>
</syntaxhighlight>


Строка 194: Строка 276:
# Найдите карточку '''Grafana''' и нажмите кнопку '''Log In'''.
# Найдите карточку '''Grafana''' и нажмите кнопку '''Log In'''.
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''.
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''.
# Откроется страница со списком источников данных, нажмите на кнопку '''Add sata source'''.
# Откроется страница со списком источников данных, нажмите на кнопку '''Add data source'''.
# В открывшемся списке найдите '''Prometheus''' и нажмите кнопку '''Select'''.
# В открывшемся списке найдите '''Prometheus''' и нажмите кнопку '''Select'''.
# На странице создания нового источника данных заполните:
# На странице создания нового источника данных заполните:
Строка 280: Строка 362:
sudo apt update
sudo apt update
</syntaxhighlight>
</syntaxhighlight>
Если во время установки Grafana по инструкции выше возникнет ошибка <code>gpg: no valid OpenPGP data found</code> — [https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/ установите Grafana в docker]. Причина описана тут: [https://community.grafana.com/t/cant-download-grafana-9-0-2-from-russia/68391 Can’t download grafana 9.0.2 from russia]. Остальные пакеты ставятся как обычно — просто следуйте инструкции.


Установите необходимое ПО:
Установите необходимое ПО:
Строка 325: Строка 409:
# Откройте браузер и введите в адресную строку <code>http://192.168.2.36:3000</code>, где '''192.168.2.36''' — IP-адрес вашего сервера с Grafana.
# Откройте браузер и введите в адресную строку <code>http://192.168.2.36:3000</code>, где '''192.168.2.36''' — IP-адрес вашего сервера с Grafana.
# Введите логин/пароль '''admin'''/'''admin'''. После первого входа задайте новый пароль.
# Введите логин/пароль '''admin'''/'''admin'''. После первого входа задайте новый пароль.
Если вы забыли введённый пароль, то его можно сбросить:
# Подключитесь к контроллеру по [[SSH]].
# Введите команду:
#: <syntaxhighlight lang="bash">
grafana-cli --homepath "/usr/share/grafana/" admin reset-admin-password admin
</syntaxhighlight>
# Перезапустите сервис:
#:<syntaxhighlight lang="bash">
systemctl restart grafana-server
</syntaxhighlight>
# После этого зайдите в веб-интерфейс Grafana и создайте новый пароль.


=== Установка MQTT-брокера ===
=== Установка MQTT-брокера ===
Строка 337: Строка 433:
# Создайте файл конфигурации <code>bridge1.conf</code>:
# Создайте файл конфигурации <code>bridge1.conf</code>:
#: <syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
mcedit /etc/mosquitto/conf.d/bridge1.conf
nano /etc/mosquitto/conf.d/bridge1.conf
</syntaxhighlight>
</syntaxhighlight>
# Вставьте в него строки, в которых замените в двух местах '''AWQBNTYP''' на серийный номер контроллера, а '''192.168.2.36''' на IP-адрес брокера:
# Вставьте в него строки, в которых замените в двух местах '''AWQBNTYP''' на серийный номер контроллера, а '''192.168.2.36''' на IP-адрес брокера:
Строка 354: Строка 450:
# Перезапустите mosquitto:
# Перезапустите mosquitto:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
service mosquitto restart
systemctl restart mosquitto
</syntaxhighlight>
</syntaxhighlight>


Строка 458: Строка 554:
# Откройте веб-интерфейс Grafana.
# Откройте веб-интерфейс Grafana.
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''.
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''.
# Откроется страница со списком источников данных, который у нас будет пуст. Нажмите на кнопку '''Add sata source'''.
# Откроется страница со списком источников данных, который у нас будет пуст. Нажмите на кнопку '''Add data source'''.
# В открывшемся списке найдите '''InfluxDB''' и нажмите кнопку '''Select'''.
# В открывшемся списке найдите '''InfluxDB''' и нажмите кнопку '''Select'''.
# На странице создания нового источника данных заполните:
# На странице создания нового источника данных заполните:
Строка 508: Строка 604:
Image: Grafana - 5. WB Dashboard.png | Созданный дашборд с панелью
Image: Grafana - 5. WB Dashboard.png | Созданный дашборд с панелью
</gallery>
</gallery>
== Установка Grafana на Amazon WS ==
Видеоурок от нашего партнёра SetPoint.
{{YouTube
| link= kPzo9V_4Wxg
| text= Установка Grafana на Amazon WS
| width=600
| nofloat=true
}}
== Установка Grafana в Docker ==
Видеоурок от пользователя Paul Strong.
{{YouTube
| link= -Avk3_BRCO0
| text= Визуализация значений из Wiren Board MQTT в Grafana
| width=600
| nofloat=true
}}


== Полезные ссылки ==
== Полезные ссылки ==
* [https://grafana.com/docs/grafana/latest/installation/debian Оригинальная инструкция установки Grafana в Debian]
* [https://grafana.com/docs/grafana/latest/installation/debian Оригинальная инструкция установки Grafana в Debian]
* [https://docs.influxdata.com/telegraf/v1.19/introduction/installation/ Оригинальная инструкция по установке Telegraf].
* [https://docs.influxdata.com/telegraf/v1.19/introduction/installation/ Оригинальная инструкция по установке Telegraf].
* [https://habr.com/ru/post/516772/ Grafana+Zabbix: Визуализация работы производственной линии]