Инструменты пользователя

Инструменты сайта


databases:influx

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
databases:influx [2023/03/21 04:29]
admin
databases:influx [2023/10/30 13:21] (текущий)
admin
Строка 40: Строка 40:
 <summary>:!: Нагрузка (кардинальность) серий </summary> <summary>:!: Нагрузка (кардинальность) серий </summary>
 **Серия** это комбинация измерений и тегов. Считается **на одну базу данных** рекомендуется не более 1 миллиона, регулируется переменной "max-series-per-database", как уже было сказано выше\\ **Серия** это комбинация измерений и тегов. Считается **на одну базу данных** рекомендуется не более 1 миллиона, регулируется переменной "max-series-per-database", как уже было сказано выше\\
- 
 Растет считай экспоненциально, например есть таблица с двумя тегами, в первом три разных значения, во втором два, **кол-во комбинаций 3 * 2 = 6**\\ Растет считай экспоненциально, например есть таблица с двумя тегами, в первом три разных значения, во втором два, **кол-во комбинаций 3 * 2 = 6**\\
  
Строка 66: Строка 65:
  
 ===== Использование ===== ===== Использование =====
 +
 +<details>
 +<summary>:!: Установка</summary>
 +
 +**Подготовка сервера**\\
 +Для БД временных рядов важна синхронизация времени, настраиваем временную зону и ставим службу синхронизации времени\\
 +*В каталоге /usr/share/zoneinfo список всех возможных вариантов временных зон
 +<code bash>
 +\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
 +apt install chrony && sudo systemctl enable chrony
 +</code>
 +
 +<code bash>
 +   # Добавляем репозиторий
 +cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo
 +[influxdata]
 +name = InfluxData Repository - Stable
 +baseurl = https://repos.influxdata.com/stable/\$basearch/main
 +enabled = 1
 +gpgcheck = 1
 +gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
 +EOF
 +
 +dnf update
 +dnf install influxdb
 +systemctl start/enable
 +open firewall
 +</code>
 +
 +По умолчанию вход открытый, включить надо в конфиге, в блоке "http", параметр - **auth-enabled = true # Set to true**, но перед этим **создайте учетку**\\
 +
 +<code bash>
 +influx
 +> CREATE USER admin WITH PASSWORD '<password>' WITH ALL PRIVILEGES
 +> SHOW USERS
 +
 +> GRANT [READ,WRITE,ALL] ON "<database_name>" TO "<username>"
 +> REVOKE [READ,WRITE,ALL] ON "<database_name>" FROM "<username>"
 +> GRANT ALL PRIVILEGES TO "<username>"
 +> REVOKE ALL PRIVILEGES FROM "<username>"
 +> SHOW GRANTS FOR "<user_name>"
 +> SET PASSWORD FOR "<username>" = '<password>'
 +> DROP USER "<username>"
 +
 +> CREATE DATABASE
 +> DROP DATABASE
 +> DROP SERIES
 +> DROP MEASUREMENT
 +> CREATE RETENTION POLICY
 +> ALTER RETENTION POLICY
 +> DROP RETENTION POLICY
 +> CREATE CONTINUOUS QUERY
 +> DROP CONTINUOUS QUERY
 +</code>
 +
 +</details>
 +
 +
 **Авторизация**\\ **Авторизация**\\
 Сразу после установки авторизация отключена, т.к. нет пользователей, и по умолчанию "у всех все права"\\ Сразу после установки авторизация отключена, т.к. нет пользователей, и по умолчанию "у всех все права"\\
Строка 91: Строка 148:
 show users; show users;
 show grants for 'user'; show grants for 'user';
 +create user username with password 'pass';
 +grant READ on dbname to username;
 </code> </code>
  
Строка 193: Строка 252:
 BEGIN BEGIN
     SELECT count("value") AS CountRequests INTO metrics."15_day".BalancerRequestAccount_agr2 FROM metrics.autogen.BalancerRequestAccount GROUP BY TIME(5m)     SELECT count("value") AS CountRequests INTO metrics."15_day".BalancerRequestAccount_agr2 FROM metrics.autogen.BalancerRequestAccount GROUP BY TIME(5m)
 +END
 +</code>
 +
 +
 +<code sql>
 +CREATE CONTINUOUS QUERY <Имя объекта> ON mgaimport
 +BEGIN
 +    SELECT sum(counter) AS CountExceptRecords INTO <Имя БД>.autogen.<Имя новой таблицы> FROM mgaimport.autogen.<Существующая БД> WHERE resolution = 'exception' GROUP BY time(1m), db_name, log_type
 +END
 +
 +/*Еще пример агрегации*/
 +CREATE CONTINUOUS QUERY BalancerRequestAccount_agr ON metrics
 +BEGIN
 +SELECT sum("counter")
 +    INTO myDB.autogen.myTable_test_1m
 +FROM "myTable"
 +WHERE  time > now() - 5m 
 +   AND "errorType" =~ /^(1008|1042)$/
 +GROUP BY time(1m), field1, field2
 END END
 </code> </code>
databases/influx.1679372963.txt.gz · Последнее изменение: 2023/03/21 04:29 — admin