Maison > Opération et maintenance > Sécurité > Une lecture incontournable pour la surveillance de l'exploitation et de la maintenance : un guide d'utilisation InfluxDB incontournable qui peut être utilisé aux moments critiques

Une lecture incontournable pour la surveillance de l'exploitation et de la maintenance : un guide d'utilisation InfluxDB incontournable qui peut être utilisé aux moments critiques

WBOY
Libérer: 2023-06-09 13:40:49
avant
1675 Les gens l'ont consulté

​Qu'est-ce qu'InfluxDB

InfluxDB est une base de données séquentielle open source développée par InfluxData. Il est écrit en Go et se concentre sur les requêtes et le stockage hautes performances des données de séries chronologiques. InfluxDB est largement utilisé dans des scénarios tels que la surveillance des données des systèmes de stockage et des données en temps réel dans l'industrie de l'IoT. Les fonctionnalités techniques incluent :

  • InfluxDB utilise pleinement les caractéristiques du langage Go dans l'implémentation technique et peut être déployé indépendamment sans aucune dépendance externe [5].
  • InfluxDB fournit un langage de requête similaire à SQL et une série de fonctions intégrées pour permettre aux utilisateurs d'interroger des données.
  • Les données stockées dans InfluxDB sont logiquement composées d'une mesure, d'un groupe de balises, d'un groupe de champs et d'un horodatage :

Mesure : représentée par une chaîne La signification correspondante de chaque enregistrement. Par exemple, il peut s'agir de données de surveillance cpu_load​ ou de données de mesure Average_temperature

tag group : il se compose d'un ensemble de paires clé-valeur, qui représente une série d'informations d'attribut de l'enregistrement. Les mêmes données de mesure n'ont pas nécessairement le même groupe de balises et sont sans schéma. Les informations sur les balises sont indexées par défaut.

Groupe de champs : Il est également composé d'un ensemble de paires clé-valeur, qui représentent les informations de valeur spécifiques (avec le nom) de l'enregistrement. Les types de valeurs définissables dans le groupe de champs incluent : entier 64 bits, virgule flottante 64 bits, chaîne et booléen. Les informations sur les champs ne peuvent pas être indexées.

Horodatage : C'est l'attribut temporel de l'enregistrement. Si l'horodatage n'est pas explicitement spécifié lors de l'insertion des données, l'horodatage stocké dans la base de données par défaut sera l'heure d'entrée de l'enregistrement.

InfluxDB prend en charge l'insertion et les requêtes de données basées sur HTTP. Il accepte également les connexions directement basées sur les protocoles TCP ou UDP.

InfluxDB permet aux utilisateurs de définir des politiques de conservation des données (politiques de rétention) pour supprimer ou sous-échantillonner les données stockées pendant plus d'une période de temps spécifiée.

Opérations d'ajout, de suppression, de modification et de vérification

Entrez la ligne de commande influxDB

influx -precision rfc3339
Copier après la connexion

Opération de base de données InfluxDB

    # 🎜🎜#Afficher la base de données
  • show databases
    Copier après la connexion
    Nouvelle base de données
  • create database shhnwangjian
    Copier après la connexion
    Supprimer la base de données
  • #🎜 🎜 #
    drop database shhnwangjian
    Copier après la connexion
    #🎜🎜 #
  • Utiliser la base de données spécifiée
    use shhnwangjian
    Copier après la connexion
  • Opération de table de données InfluxDB
Dans InfluxDB, il n'y a pas de notion de table (table ), remplacé par MEASUREMENTS , les fonctions de MEASUREMENTS sont cohérentes avec les tables des bases de données traditionnelles, on peut donc également appeler MEASUREMENTS une table dans InfluxDB.

• Afficher toutes les tables

SHOW MEASUREMENTS
Copier après la connexion

• Créer une nouvelle table

Il n'y a pas d'instruction explicite pour créer une nouvelle table dans InfluxDB, vous pouvez seulement insérez des données pour créer une nouvelle table.

insert disk_free,hostname=server01 value=442221834240i
insert cpu_virtual_used_num,host=1 value=41556593150
Copier après la connexion

où disk_free​ est le nom de la table, le nom d'hôte​ est l'index (balise), value=xx est la valeur de l'enregistrement (champ), il peut y avoir plusieurs valeurs d'enregistrement et le système est livré avec des timestamps#🎜🎜 #

Ou lors de l'ajout de données, écrivez vous-même l'horodatage

insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
Copier après la connexion

• Supprimer le tableau

drop measurement disk_free
Copier après la connexion

Politiques de conservation des données (Politiques de rétention)

#🎜🎜 #influxDB ne fournit pas de méthode pour supprimer directement les enregistrements de données, mais il fournit une stratégie de conservation des données, qui est principalement utilisée pour spécifier la durée de conservation des données. Si la durée spécifiée est dépassée, cette partie des données sera supprimée. .

Afficher les politiques de rétention de la base de données actuelle

show retention policies on "db_name"
show retention policies on cdhnm
Copier après la connexion

    Créer de nouvelles politiques de rétention
  • create retention policy "rp_name" on "db_name" duration 3w replication 1 default
    create retention policy test on cdhnm duration 1h replication 1 default
    Copier après la connexion
    #🎜 🎜 #rp_name : Nom de la politique ;
    db_name : Nom de la base de données spécifique
  • 3w : Enregistrer pendant 3 semaines, les données avant 3 semaines seront supprimées, influxdb a divers paramètres d'événements, tels que comme : h (heure), d (jour), w (semaine) ; réplication 1 : nombre de copies, généralement 1 suffit

default : défini comme politique par défaut#🎜🎜 ##🎜 ; 🎜#

Modifier les politiques de rétention

alter retention policy “rp_name” on “db_name” duration 30d default
alter retention policy autogen on cdhnm duration 1h default
Copier après la connexion

Modifier la politique de données

alter retention policy autogen on cdhnm duration 0h replication 1 default
Copier après la connexion
  • Supprimer les politiques de rétention# 🎜🎜#
  • drop retention policy “rp_name” on “db_name"
    drop retention policy test on cdhnm
    Copier après la connexion
Requête de données
    select * fromcpu_virtual_used_num
    Copier après la connexion
  • Insérer des données
Insérer des données lors de la création d'un tableau
    insert disk_free,hostname=server01 value=442221834240i
    insert cpu_virtual_used_num,host=470b14f0-e869-43ed-a8e6-fd634258271f,hostname=server01 value=0.3 1557023160
    Copier après la connexion
  • Supprimer des données
influxDB ne fournit pas de méthode pour supprimer directement les enregistrements de données, mais il fournit une stratégie de conservation des données, qui est principalement utilisée pour spécifier la durée de conservation des données. Si la durée spécifiée est dépassée, cette partie du. les données seront supprimées. Créez une nouvelle politique d'expiration de base de données pour les clés d'au moins une heure à partir de cluster_metric

Problème de fuseau horaire

Lors de l'utilisation d'InfluxDB, j'ai constaté que, parce qu'InfluxDB utilise l'heure UTC, les problèmes de fuseau horaire sont souvent rencontré lors des requêtes

# 🎜🎜#1. Format de l'heure

InfluxDB En plus de prendre en charge epoch_time, il prend également en charge rfc3339_date_time_string et rfc3339_like_date_time_string.

epoch_time

Certaines explications théoriques sont le temps qui s'est écoulé depuis le Temps Universel Coordonné (jeudi 1er janvier 1970). Par exemple, ce que nous obtenons en utilisant System.currentTimeMillis() dans un programme Java est cette fois-ci. Généralement, il s'agit d'une précision de niveau milliseconde (ms), c'est-à-dire de type Long de 13 bits. Dans InfluxDB, la précision des horodatages peut atteindre le niveau de la nanoseconde (ns), qui est de type Long 19 bits.

rfc3339_date_time_string

rfc3339时间格式是ietf协会定义的一种时间格式,这个名字是因为它被定义在rfc3339中。感兴趣的同学可以自己查看上面的连接。InfluxDB中rfc3339的时间格式是这样的:

‘YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ’
Copier après la connexion

其中nnnnnnnnn是可选的,如果不写则会被设置为000000000。注意,如果使用这种时间格式,需要使用单括号(’)将时间括起来。

rfc3339_like_date_time_string

因为rfc3339_date_time_string的格式确实比较反人类,所以InfluxDB也支持这种人类阅读更友好的格式:

‘YYYY-MM-DD HH:MM:SS.nnnnnnnnn’
Copier après la connexion

其中HH:MM:SS.nnnnnnnnn是可选的,如果不填写会被设置为00:00:00.000000000。所以查询时可以设置到天、小时、分钟、秒等不同精度。这种时间格式同样要求被单括号括起来。

2、调整时间戳精度

InfluxDB默认东时间是纳秒(ns),即19位时间戳。但是一般情况下时间精度不会这么高。所以如果使用秒级精度查询:

select * from cpu_virtual_used_num where time >= 1435333209s and time <= 1542964713s
Copier après la connexion

如果使用毫秒级精度查询:

select * from cpu_virtual_used_num where time >= 1435333209000ms and time <= 1542964714000ms
Copier après la connexion

3、调整时区

如果需要使用北京时间(东八区),可以在SQL中使用tc关键字:

select * from cpu_virtual_used_num where time >= '2018-11-23 14:30:39' and time <= '2019-11-23 14:32:32' tz('Asia/Shanghai')
Copier après la connexion

4、UTC时间与Beijing时间转换

Timestamp时间列

既然是时间序列数据库,influxdb 的数据都有一列名为 time 的列,里面存储 UTC 时间戳。

Influxdb 时间转成北京时间:UTC time + 8 hours = Beijing time

sql语句

influx -precision rfc3339 
show retention policies on cdhnm
alter retention policy autogen on cdhnm duration 1h default
create retention policy test on cdhnm duration 1h replication 1 default
drop retention policy test on cdhnm 
insert cpu_virtual_used_num,host=470b14f0-e869-43ed-a8e6-fd634258271f,hostname=server01 value=0.9 1557045292000000000
select * from cpu_virtual_used_num where time >= '2018-11-23 14:30:39' and time <= '2019-11-23 14:32:32' tz('Asia/Shanghai')
delete from cpu_virtual_used_num
Copier après la connexion

启动服务

切换到root用户
命令:su
输入密码:123456
Copier après la connexion

启动:

sudo service influxdb start
Copier après la connexion

重启:

service influxdb restart
Copier après la connexion

切换到普通用户:

命令:exit

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal