InfluxDB v2

Quelques commandes utiles pour interagir avec InfluxDB (v2) en ligne de commande.

Interroger un bucket InfluxDB via curl

Le langage de requêtage se nomme influx

1INFLUX_ORG_ID="xxxxxxxxxxxxxxxx"
2INFLUX_TOKEN="xxxxxxxxxxxxxxx"
3
4curl --request POST \
5  http://127.0.0.1:8086/api/v2/query?orgID=$INFLUX_ORG_ID \
6  --header 'Authorization: Token '$INFLUX_TOKEN'' \
7  --header 'Accept: application/csv' \
8  --header 'Content-type: application/vnd.flux' \
9  --data 'from(bucket:"captation") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "waiting_ingest") |> filter(fn: (r) => r._field == "value") |> last()'

retourne un contenu csv :

 1,result,table,_start,_stop,_time,_value,_field,_measurement,extension,group,hostname
 2,_result,0,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:27:05Z,2,value,waiting_ingest,ENV,SRV-VIS,B-SRV-VIS-250
 3,_result,1,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:41:02Z,83,value,waiting_ingest,HDR,SRV-VIS,B-SRV-VIS-250
 4,_result,2,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:27:05Z,2,value,waiting_ingest,M4A,SRV-VIS,B-SRV-VIS-250
 5,_result,3,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:41:02Z,90,value,waiting_ingest,MD5,SRV-VIS,B-SRV-VIS-250
 6,_result,4,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:41:02Z,2,value,waiting_ingest,MP4,SRV-VIS,B-SRV-VIS-250
 7,_result,5,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:21:05Z,2,value,waiting_ingest,MPA,SRV-VIS,B-SRV-VIS-250
 8,_result,6,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:41:02Z,83,value,waiting_ingest,epg,SRV-VIS,B-SRV-VIS-250
 9,_result,7,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:27:05Z,1,value,waiting_ingest,mp4,SRV-VIS,B-SRV-VIS-250
10,_result,8,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:27:05Z,2,value,waiting_ingest,rds,SRV-VIS,B-SRV-VIS-250
11,_result,9,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:27:05Z,2,value,waiting_ingest,srt,SRV-VIS,B-SRV-VIS-250
12,_result,10,2022-07-01T08:44:06.545845718Z,2022-07-01T09:44:06.545845718Z,2022-07-01T09:41:02Z,258,value,waiting_ingest,total,SRV-VIS,B-SRV-VIS-250

Interroger un bucket InfluxDB via php

1composer require influxdata/influxdb-client-php
2composer install
 1#!/usr/bin/env php
 2<?php
 3
 4require_once __DIR__ . '/vendor/autoload.php';
 5
 6$params = [
 7  "url" => "http://127.0.0.1:8086",
 8  "token" => "XXXxxx",
 9  "bucket" => "myBucket",
10  "org" => "myOrg",
11];
12
13$client = new \InfluxDB2\Client($params);
14
15$query  = 'from(bucket: "' . $params['bucket'] . '") ';
16$query .= ' |> range(start: -1h) ';
17$query .= ' |> filter(fn: (r) => r["_measurement"] == "uptime") ';
18$query .= ' |> last()';
19
20$res = $client->createQueryApi()->query($query);
21
22foreach ($res as $table) {
23   $rec = $table->records[0]->values;
24   $resDateTime = new \DateTimeImmutable($rec['_time']);
25}
26
27var_dump($res);

CLI

Voir la configuration du serveur

 1$ influx server-config
 2{
 3	"assets-path": "",
 4	"bolt-path": "/var/lib/influxdb/influxd.bolt",
 5	"e2e-testing": false,
 6	"engine-path": "/var/lib/influxdb/engine"
 7  (...)
 8	"vault-max-retries": 0,
 9	"vault-skip-verify": false,
10	"vault-tls-server-name": "",
11	"vault-token": ""
12}

Éditer la configuration du serveur

exemple de fichier /etc/influxdb/config.toml :

1bolt-path = "/var/lib/influxdb/influxd.bolt"
2engine-path = "/var/lib/influxdb/engine"
3log-level = "error"
4http-idle-timeout = "0"
5session-length = 86400
6reporting-disabled = true
7metrics-disabled = true

Suivre les logs (en root)

1journalctl -u influxdb -f

Lister les buckets

1$ influx bucket list
2ID			Name		Retention	Shard group duration	Organization ID		Schema Type
3XXX26253c0a3661e	_monitoring	168h0m0s	24h0m0s			218ccXXXac73b1af	implicit
4XXXcf10b0878d4ce	_tasks		72h0m0s		24h0m0s			218ccXXXac73b1af	implicit
5XXX6d3e6174d545d	captation	infinite	168h0m0s		218ccXXXac73b1af	implicit

Lister les organisations

1$ influx org list
2ID			Name
3218cc59XXX73b1af	MyOrg

Lister les membres

1$ influx user list
2ID			Name
308aXXXb81bee3000	admin
409aXXX93f100d000	tech

Liste les tableaux de bord

1$ influx dashboards
2ID			OrgID			Name				Description						Num Cells
308a6044ed0973000	218cc598ac73b1af	Captation - Vue générale								67
4090a2dd0bcd73000	218cc598ac73b1af	Débits par chaîne									2
5099a6ae7af833000	218cc598ac73b1af	Débits par station									3
609f0cfc475a20000	218cc598ac73b1af	Sondes température					4

Créer un utilisateur

1influx user create --name username --password userpass --org-id XXxxXXxxXXxxXXxx --token TOKEN_WITH_WRITE_USER

Lister les tokens d'autorisation

1$ influx auth list
2ID			Description	Token												User Name	User ID			Permissions
308a603b8316e3000	admin		XXX==	admin		08a603b81bee3000	[read:/annotations write:/annotations read:/authorizations write:/authorizations read:/buckets write:/buckets read:/checks write:/checks read:/dashboards write:/dashboards read:/dbrp write:/dbrp read:/documents write:/documents read:/labels write:/labels read:/notebooks write:/notebooks read:/notificationEndpoints write:/notificationEndpoints read:/notificationRules write:/notificationRules read:/orgs write:/orgs read:/scrapers write:/scrapers read:/secrets write:/secrets read:/sources write:/sources read:/tasks write:/tasks read:/telegrafs write:/telegrafs read:/users write:/users read:/variables write:/variables read:/views write:/views read:/remotes write:/remotes read:/replications write:/replications]
40b8dd17c156e5000	tech		XXX==	admin		08a603b81bee3000	[read:orgs/218cc598ac73b1af/buckets/68b6d3e6174d545d]

Backuper le serveur

 1$ influx backup influxdb
 22026/04/30 15:42:21 INFO: Downloading metadata snapshot
 32026/04/30 15:42:21 INFO: Backing up TSM for shard 2863
 42026/04/30 15:42:21 WARN: Shard 2863 removed during backup
 52026/04/30 15:42:21 INFO: Backing up TSM for shard 2864
 62026/04/30 15:42:21 WARN: Shard 2864 removed during backup
 72026/04/30 15:42:21 INFO: Backing up TSM for shard 2865
 82026/04/30 15:42:21 WARN: Shard 2865 removed during backup
 92026/04/30 15:42:21 INFO: Backing up TSM for shard 2866
102026/04/30 15:42:21 WARN: Shard 2866 removed during backup
112026/04/30 15:42:21 INFO: Backing up TSM for shard 2867
122026/04/30 15:42:21 WARN: Shard 2867 removed during backup
132026/04/30 15:42:21 INFO: Backing up TSM for shard 2870
142026/04/30 15:42:21 WARN: Shard 2870 removed during backup
152026/04/30 15:42:21 INFO: Backing up TSM for shard 2871
162026/04/30 15:42:21 WARN: Shard 2871 removed during backup
172026/04/30 15:42:21 INFO: Backing up TSM for shard 2872
182026/04/30 15:42:21 WARN: Shard 2872 removed during backup
192026/04/30 15:42:21 INFO: Backing up TSM for shard 2833
202026/04/30 15:42:24 INFO: Backing up TSM for shard 2842
212026/04/30 15:42:28 INFO: Backing up TSM for shard 2851
222026/04/30 15:42:32 INFO: Backing up TSM for shard 2860
232026/04/30 15:42:35 INFO: Backing up TSM for shard 2869
24$ ls -al influxdb/
25total 96240
26drwxrwxr-x. 2 admindl     4096 30 avril 15:42 .
27drwxrwxr-x. 4 admindl       51 30 avril 15:41 ..
28-rw-------. 1 admindl 21785014 30 avril 15:42 20260430T134221Z.2833.tar.gz
29-rw-------. 1 admindl 21899549 30 avril 15:42 20260430T134221Z.2842.tar.gz
30-rw-------. 1 admindl 21780624 30 avril 15:42 20260430T134221Z.2851.tar.gz
31-rw-------. 1 admindl 21585591 30 avril 15:42 20260430T134221Z.2860.tar.gz
32-rw-------. 1 admindl 11209612 30 avril 15:42 20260430T134221Z.2869.tar.gz
33-rw-------. 1 admindl   255904 30 avril 15:42 20260430T134221Z.bolt.gz
34-rw-------. 1 admindl    11452 30 avril 15:42 20260430T134221Z.manifest
35-rw-------. 1 admindl     6959 30 avril 15:42 20260430T134221Z.sqlite.gz

Restaurer le serveur

Si nouveau serveur il faut quand même faire la conf initiale (créa 1er user, 1ère orga) et que le cli fonctionne

1$ influx restore influxdb --full
22026/04/30 16:18:41 INFO: Restoring KV snapshot
32026/04/30 16:18:44 WARN: Restoring KV snapshot overwrote the operator token, ensure following commands use the correct token
42026/04/30 16:18:44 INFO: Restoring SQL snapshot
52026/04/30 16:18:44 INFO: Restoring TSM snapshot for shard 2833
62026/04/30 16:18:45 INFO: Restoring TSM snapshot for shard 2842
72026/04/30 16:18:46 INFO: Restoring TSM snapshot for shard 2851
82026/04/30 16:18:46 INFO: Restoring TSM snapshot for shard 2860
92026/04/30 16:18:47 INFO: Restoring TSM snapshot for shard 2869

la clé d'api d'admin a été écrasée par celle de la sauvegarde. Le mode --full restaure user, buckets, dashboard, variables, labels ...

Ressources :

comments powered by Disqus