16 885
правок
(→Установка и настройка Telegraf: service → systemctl) |
|||
(не показаны 23 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE: Использование Grafana с контроллером Wiren Board }} | ||
[[Image: Grafana Dash Demo.png | | [[Image: Grafana Dash Demo.png |600px|thumb|right| Пример дашборда в Grafana: выходной контроль устройств у нас на производстве ]] | ||
== Введение == | == Введение == | ||
'''Grafana''' — мультиплатформенное веб-приложение с открытым кодом, отображающее данные в виде графиков, диаграмм, индикаторов, а также другими способами. Конечные пользователи могут создавать сложные панели мониторинга с помощью интерактивного конструктора запросов. Умеет отправлять оповещения (alert). Расширяется с помощью системы плагинов. | '''Grafana''' — мультиплатформенное веб-приложение с открытым кодом, отображающее данные в виде графиков, диаграмм, индикаторов, а также другими способами. Конечные пользователи могут создавать сложные панели мониторинга с помощью интерактивного конструктора запросов. Умеет отправлять оповещения (alert). Расширяется с помощью системы плагинов. | ||
Строка 11: | Строка 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 уже есть база данных, поэтому отдельно устанавливать и настраивать базу данных не нужно. | ||
Схема работы: | Схема работы: | ||
Строка 40: | Строка 39: | ||
#:<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/ | wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | apt-key add - | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Добавьте в список apt-репозиториев ссылку на репозиторий telegraf: | # Добавьте в список apt-репозиториев ссылку на репозиторий telegraf: | ||
Строка 49: | Строка 49: | ||
source /etc/os-release | source /etc/os-release | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#* Здесь <code> | #* Здесь <code>bullseye</code> — версия ОС: | ||
#*:<syntaxhighlight lang="bash"> | #*:<syntaxhighlight lang="bash"> | ||
echo "deb https://repos.influxdata.com/debian | echo "deb https://repos.influxdata.com/debian bullseye stable" | tee /etc/apt/sources.list.d/influxdb.list | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Обновите список пакетов и установите Telegraf: | # Обновите список пакетов и установите Telegraf: | ||
Строка 57: | Строка 57: | ||
apt update && apt install telegraf | apt update && apt install telegraf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Включите автозапуск сервиса: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl | systemctl enable telegraf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 65: | Строка 65: | ||
# Откройте файл настроек Telegraf: | # Откройте файл настроек Telegraf: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
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'': | ||
Строка 154: | Строка 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> | ||
# Сохраните файл и закройте редактор. | # Сохраните файл и закройте редактор. | ||
Строка 187: | Строка 267: | ||
# Запустите сервис в автоматическом режиме: | # Запустите сервис в автоматическом режиме: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl | systemctl start telegraf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 196: | Строка 276: | ||
# Найдите карточку '''Grafana''' и нажмите кнопку '''Log In'''. | # Найдите карточку '''Grafana''' и нажмите кнопку '''Log In'''. | ||
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''. | # Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''. | ||
# Откроется страница со списком источников данных, нажмите на кнопку '''Add | # Откроется страница со списком источников данных, нажмите на кнопку '''Add data source'''. | ||
# В открывшемся списке найдите '''Prometheus''' и нажмите кнопку '''Select'''. | # В открывшемся списке найдите '''Prometheus''' и нажмите кнопку '''Select'''. | ||
# На странице создания нового источника данных заполните: | # На странице создания нового источника данных заполните: | ||
Строка 282: | Строка 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]. Остальные пакеты ставятся как обычно — просто следуйте инструкции. | |||
Установите необходимое ПО: | Установите необходимое ПО: | ||
Строка 327: | Строка 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-брокера === | ||
Строка 339: | Строка 433: | ||
# Создайте файл конфигурации <code>bridge1.conf</code>: | # Создайте файл конфигурации <code>bridge1.conf</code>: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
nano /etc/mosquitto/conf.d/bridge1.conf | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Вставьте в него строки, в которых замените в двух местах '''AWQBNTYP''' на серийный номер контроллера, а '''192.168.2.36''' на IP-адрес брокера: | # Вставьте в него строки, в которых замените в двух местах '''AWQBNTYP''' на серийный номер контроллера, а '''192.168.2.36''' на IP-адрес брокера: | ||
Строка 356: | Строка 450: | ||
# Перезапустите mosquitto: | # Перезапустите mosquitto: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl restart mosquitto | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 460: | Строка 554: | ||
# Откройте веб-интерфейс Grafana. | # Откройте веб-интерфейс Grafana. | ||
# Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''. | # Слева на панели нажмите на «шестерёнку» и выберите пункт '''Data Sources'''. | ||
# Откроется страница со списком источников данных, который у нас будет пуст. Нажмите на кнопку '''Add | # Откроется страница со списком источников данных, который у нас будет пуст. Нажмите на кнопку '''Add data source'''. | ||
# В открывшемся списке найдите '''InfluxDB''' и нажмите кнопку '''Select'''. | # В открывшемся списке найдите '''InfluxDB''' и нажмите кнопку '''Select'''. | ||
# На странице создания нового источника данных заполните: | # На странице создания нового источника данных заполните: | ||
Строка 510: | Строка 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: Визуализация работы производственной линии] |