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
Freigeben: 2023-06-09 13:40:49
nach vorne
1657 Leute haben es durchsucht

​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
Nach dem Login kopieren

InfluxDB-Datenbankoperation

Datenbank anzeigen
  • show databases
    Nach dem Login kopieren
Neue Datenbank
  • create database shhnwangjian
    Nach dem Login kopieren
Löschen. Datenbank
  • drop database shhnwangjian
    Nach dem Login kopieren
Verwenden Sie „Datenbank angeben“
  • use shhnwangjian
    Nach dem Login kopieren
  • 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
Nach dem Login kopieren

• 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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
    Nach dem Login kopieren
  • Datenrichtlinien ändern
    show retention policies on "db_name"
    show retention policies on cdhnm
    Nach dem Login kopieren
  • 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
Nach dem Login kopieren

Daten abfragen

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

Daten einfügen und gleichzeitig eine Tabelle erstellen Zeit

alter retention policy autogen on cdhnm duration 0h replication 1 default
Nach dem Login kopieren

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’
    Nach dem Login kopieren

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

    rfc3339_like_date_time_string

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

    ‘YYYY-MM-DD HH:MM:SS.nnnnnnnnn’
    Nach dem Login kopieren

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

    2、调整时间戳精度

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

    select * from cpu_virtual_used_num where time >= 1435333209s and time <= 1542964713s
    Nach dem Login kopieren

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

    select * from cpu_virtual_used_num where time >= 1435333209000ms and time <= 1542964714000ms
    Nach dem Login kopieren

    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')
    Nach dem Login kopieren

    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
    Nach dem Login kopieren

    启动服务

    切换到root用户
    命令:su
    输入密码:123456
    Nach dem Login kopieren

    启动:

    sudo service influxdb start
    Nach dem Login kopieren

    重启:

    service influxdb restart
    Nach dem Login kopieren

    切换到普通用户:

    命令: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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage