Heim >Betrieb und Instandhaltung >Sicherheit >Eine Pflichtlektüre für die Betriebs- und Wartungsüberwachung: Ein unverzichtbarer InfluxDB-Nutzungsleitfaden, der in kritischen Momenten verwendet werden kann

Eine Pflichtlektüre für die Betriebs- und Wartungsüberwachung: Ein unverzichtbarer InfluxDB-Nutzungsleitfaden, der in kritischen Momenten verwendet werden kann

WBOY
WBOYnach vorne
2023-06-09 13:40:491670Durchsuche

​Was ist InfluxDB?

InfluxDB ist eine von InfluxData entwickelte Open-Source-Sequenzdatenbank. Es ist in Go geschrieben und konzentriert sich auf die leistungsstarke Abfrage und Speicherung von Zeitreihendaten. InfluxDB wird häufig in Szenarien wie der Überwachung von Daten von Speichersystemen und Echtzeitdaten in der IoT-Branche eingesetzt. Zu den technischen Merkmalen gehören:

  • InfluxDB nutzt die Eigenschaften der Go-Sprache hinsichtlich der technischen Implementierung vollständig aus und kann unabhängig und ohne externe Abhängigkeiten bereitgestellt werden [5].
  • InfluxDB bietet eine SQL-ähnliche Abfragesprache und eine Reihe integrierter Funktionen, um Benutzern das Abfragen von Daten zu erleichtern.
  • Die in InfluxDB gespeicherten Daten setzen sich logisch aus Messung, Tag-Gruppe, Feldgruppe und einem Zeitstempel zusammen:

Messung: Eine Zeichenfolge repräsentiert die entsprechende Bedeutung des Datensatzes. Beispielsweise kann es sich um Überwachungsdaten „cpu_load“ oder Messdaten „average_temperature“ handeln. Tag-Gruppe: Sie besteht aus einer Reihe von Schlüssel-Wert-Paaren, die eine Reihe von Attributinformationen des Datensatzes darstellen. Dieselben Messdaten müssen nicht unbedingt dieselbe Tag-Gruppe haben und sind schemafrei. Tag-Informationen werden standardmäßig indiziert.

Feldgruppe: Sie besteht ebenfalls aus einer Reihe von Schlüssel-Wert-Paaren, die die spezifischen Wertinformationen (mit einem Namen) des Datensatzes darstellen. Zu den definierbaren Werttypen in der Feldgruppe gehören: 64-Bit-Ganzzahl, 64-Bit-Gleitkomma, Zeichenfolge und Boolescher Wert. Feldinformationen können nicht indiziert werden.

Zeitstempel: Dies ist das Zeitattribut des Datensatzes. Wenn der Zeitstempel beim Einfügen von Daten nicht explizit angegeben wird, ist der in der Datenbank standardmäßig gespeicherte Zeitstempel der Eintragszeitpunkt des Datensatzes.

InfluxDB unterstützt HTTP-basiertes Einfügen und Abfragen von Daten. Es akzeptiert auch Verbindungen direkt, die auf den Protokollen TCP oder UDP basieren.

InfluxDB ermöglicht es Benutzern, Datenaufbewahrungsrichtlinien (Aufbewahrungsrichtlinien) zu definieren, um Daten zu löschen oder herunterzurechnen, die länger als eine bestimmte Zeit gespeichert sind.

Vorgänge hinzufügen, löschen, ändern und prüfen

InfluxDB-Befehlszeile eingeben

influx -precision rfc3339

InfluxDB-Datenbankoperation

Datenbank anzeigen
  • show databases
Neue Datenbank
  • create database shhnwangjian
Löschen. Datenbank
  • drop database shhnwangjian
Verwenden Sie „Datenbank angeben“
  • use shhnwangjian
  • InfluxDB-Datentabellenoperationen

In InfluxDB gibt es kein Tabellenkonzept. Stattdessen sind MESSUNGEN die gleichen wie die von Tabellen in herkömmlichen Datenbanken, daher können wir auch MESSUNGEN a nennen Tabelle in InfluxDB.

• Alle Tabellen anzeigen

SHOW MEASUREMENTS

• Eine neue Tabelle erstellen

Es gibt keine explizite Anweisung zum Erstellen einer neuen Tabelle in InfluxDB. Sie können eine neue Tabelle nur durch Einfügen von Daten erstellen.

insert disk_free,hostname=server01 value=442221834240i
insert cpu_virtual_used_num,host=1 value=41556593150

wobei disk_free​ der Tabellenname ist, hostname​ der Index (Tag), value=xx der Datensatzwert (Feld), es können mehrere Datensatzwerte vorhanden sein, das System verfügt über zusätzliche Zeitstempel

oder Sie können schreiben Geben Sie beim Hinzufügen von Daten selbst einen Zeitstempel ein Wenn die Datenaufbewahrungszeit die angegebene Zeit überschreitet, löschen Sie einfach diesen Teil der Daten.

Sehen Sie sich die aktuellen Datenbank-Aufbewahrungsrichtlinien an.

insert disk_free,hostname=server01 value=442221834240i 1435362189575692182

Neue Aufbewahrungsrichtlinien erstellen Gespeichert Gelöscht, influxdb hat verschiedene Ereignisparameter, wie zum Beispiel: h (Stunde), d (Tag), w (Woche); Replikation 1: Anzahl der Kopien, normalerweise reicht 1 aus;

Aufbewahrungsrichtlinien ändern

    drop measurement disk_free
  • Datenrichtlinien ändern
    show retention policies on "db_name"
    show retention policies on cdhnm
  • Aufbewahrungsrichtlinien löschen

create retention policy "rp_name" on "db_name" duration 3w replication 1 default
create retention policy test on cdhnm duration 1h replication 1 default

Daten abfragen

alter retention policy “rp_name” on “db_name” duration 30d default
alter retention policy autogen on cdhnm duration 1h default

Daten einfügen und gleichzeitig eine Tabelle erstellen Zeit

alter retention policy autogen on cdhnm duration 0h replication 1 default

Daten löschen

influxDB wird nicht bereitgestellt. Diese Methode löscht Datensätze direkt, stellt jedoch eine Datenaufbewahrungsstrategie bereit, die hauptsächlich zur Angabe der Datenaufbewahrungszeit verwendet wird. Wenn die angegebene Zeit überschritten wird, wird dieser Teil der Daten gelöscht. Erstellen Sie eine neue Datenbank-Ablaufrichtlinie für mindestens eine Stunde festgestellt, dass aufgrund der Verwendung von InfluxDB die Zeit UTC ist und beim Abfragen von
  • 1 Zeitformat
InfluxDB zusätzlich zur Unterstützung von epoch_time auch rfc3339_date_time_string und rfc3339_like_date_time_string unterstützt.
  • epoch_time
Einige theoretische Erklärungen beziehen sich auf die Zeit, die seit der koordinierten Weltzeit (Donnerstag, 1. Januar 1970) vergangen ist. Was wir beispielsweise erhalten, wenn wir System.currentTimeMillis() in einem Java-Programm verwenden, ist dieses Mal. Im Allgemeinen handelt es sich um eine Präzision auf Millisekundenebene (ms), also um einen 13-Bit-Long-Typ. In InfluxDB kann die Genauigkeit von Zeitstempeln das Nanosekundenniveau (ns) erreichen, was dem 19-Bit-Long-Typ entspricht.
  • rfc3339_date_time_string
  • rfc3339时间格式是ietf协会定义的一种时间格式,这个名字是因为它被定义在rfc3339中。感兴趣的同学可以自己查看上面的连接。InfluxDB中rfc3339的时间格式是这样的:

    ‘YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ’

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

    rfc3339_like_date_time_string

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

    ‘YYYY-MM-DD HH:MM:SS.nnnnnnnnn’

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

    2、调整时间戳精度

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

    select * from cpu_virtual_used_num where time >= 1435333209s and time <= 1542964713s

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

    select * from cpu_virtual_used_num where time >= 1435333209000ms and time <= 1542964714000ms

    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')

    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

    启动服务

    切换到root用户
    命令:su
    输入密码:123456

    启动:

    sudo service influxdb start

    重启:

    service influxdb restart

    切换到普通用户:

    命令:exit

Das obige ist der detaillierte Inhalt vonEine Pflichtlektüre für die Betriebs- und Wartungsüberwachung: Ein unverzichtbarer InfluxDB-Nutzungsleitfaden, der in kritischen Momenten verwendet werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen