Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Mesti dibaca untuk pemantauan operasi dan penyelenggaraan: Panduan penggunaan InfluxDB yang mesti diketahui yang boleh digunakan pada saat genting

Mesti dibaca untuk pemantauan operasi dan penyelenggaraan: Panduan penggunaan InfluxDB yang mesti diketahui yang boleh digunakan pada saat genting

WBOY
WBOYke hadapan
2023-06-09 13:40:491574semak imbas

​Apakah InfluxDB

InfluxDB ialah pangkalan data jujukan sumber terbuka yang dibangunkan oleh InfluxData. Ia ditulis dalam Go dan memfokuskan pada pertanyaan berprestasi tinggi dan penyimpanan data siri masa. InfluxDB digunakan secara meluas dalam senario seperti memantau data sistem storan dan data masa nyata dalam industri IoT. Ciri teknikal termasuk:

  • InfluxDB menggunakan sepenuhnya ciri-ciri bahasa Go dalam pelaksanaan teknikal dan boleh digunakan secara bebas tanpa sebarang pergantungan luaran [5].
  • InfluxDB menyediakan bahasa pertanyaan yang serupa dengan SQL dan satu siri fungsi terbina dalam untuk memudahkan pengguna membuat pertanyaan data.
  • Data yang disimpan dalam InfluxDB secara logiknya terdiri daripada Pengukuran, kumpulan teg, kumpulan medan dan cap waktu:

Pengukuran: Rentetan mewakili maksud rekod . Contohnya, ia boleh memantau data cpu_load​, atau data pengukuran average_temperature

kumpulan teg: Ia terdiri daripada set pasangan nilai kunci, yang mewakili satu siri maklumat atribut rekod. Data ukuran yang sama tidak semestinya mempunyai kumpulan teg yang sama dan ia adalah bebas Skema. Maklumat teg diindeks secara lalai.

Kumpulan medan: Ia juga terdiri daripada set pasangan nilai kunci, yang mewakili maklumat nilai khusus (dengan nama) rekod. Jenis nilai yang boleh ditentukan dalam kumpulan medan termasuk: integer 64-bit, titik terapung 64-bit, rentetan dan Boolean. Maklumat medan tidak boleh diindeks.

Cop masa: Ia ialah atribut masa rekod. Jika cap masa tidak dinyatakan secara eksplisit semasa memasukkan data, cap masa yang disimpan dalam pangkalan data secara lalai akan menjadi masa kemasukan rekod.

InfluxDB menyokong pemasukan dan pertanyaan data berasaskan HTTP. Ia juga menerima sambungan secara langsung berdasarkan protokol TCP atau UDP.

InfluxDB membolehkan pengguna menentukan dasar pengekalan data (Dasar Pengekalan) untuk memadam atau menurunkan sampel data yang disimpan untuk lebih daripada masa yang ditetapkan.

Tambah, padam, ubah suai dan pertanyaan operasi

Masukkan baris arahan influxDB

influx -precision rfc3339

operasi pangkalan data InfluxDB

  • Paparan pangkalan data
show databases
  • Buat pangkalan data baharu
create database shhnwangjian
  • Padam pangkalan data
drop database shhnwangjian
  • Gunakan pangkalan data yang ditentukan
use shhnwangjian

Pengoperasian jadual data InfluxDB

Dalam InfluxDB, tiada konsep jadual (jadual), sebaliknya ia adalah MEASUREMENTS Fungsi MEASUREMENTS adalah konsisten dengan jadual dalam pangkalan data tradisional, jadi kita juga boleh memanggil MEASUREMENTS jadual dalam InfluxDB.

• Tunjukkan semua jadual

SHOW MEASUREMENTS

• Cipta jadual baharu

Tiada pernyataan eksplisit untuk mencipta jadual baharu dalam InfluxDB Anda hanya boleh mencipta jadual baharu dengan memasukkan data.

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

di mana disk_free​ ialah nama jadual, nama hos​ ialah indeks (tag), value=xx ialah nilai rekod (medan), boleh terdapat berbilang nilai rekod dan sistem dilengkapi dengan cap masa tambahan

Atau apabila menambah data, tulis sendiri cap masa

insert disk_free,hostname=server01 value=442221834240i 1435362189575692182

• Padam jadual

drop measurement disk_free

Dasar pengekalan data (Dasar Pengekalan)

influxDB tidak menyediakan pemadaman langsung kaedah rekod data, tetapi menyediakan strategi pengekalan data, yang digunakan terutamanya untuk menentukan masa penyimpanan data Jika melebihi masa yang ditentukan, bahagian data ini akan dipadamkan.

  • Lihat Dasar Pengekalan pangkalan data semasa
show retention policies on "db_name"
show retention policies on cdhnm
  • Buat Dasar Pengekalan baharu
create retention policy "rp_name" on "db_name" duration 3w replication 1 default
create retention policy test on cdhnm duration 1h replication 1 default

rp_name: nama dasar; 🎜>db_name: nama pangkalan data tertentu;

3w: disimpan selama 3 minggu, data sebelum 3 minggu akan dipadamkan mempunyai pelbagai parameter acara, seperti: h (jam), d (hari), w (. minggu); replikasi 1: bilangan salinan, biasanya 1 sudah memadai;

Ubah suai dasar data

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

Padamkan Dasar Pengekalan
  • alter retention policy autogen on cdhnm duration 0h replication 1 default
  • Data pertanyaan
drop retention policy “rp_name” on “db_name"
drop retention policy test on cdhnm
    Sisipkan data
  • data dan cipta jadual pada masa yang sama
select * fromcpu_virtual_used_num
    Padam data
  • influxDB tidak menyediakan kaedah untuk memadam rekod data secara langsung, tetapi ia menyediakan strategi pemeliharaan data, yang digunakan terutamanya untuk menentukan masa pengekalan data, jika melebihi masa yang ditentukan , padamkan bahagian data ini. Buat dasar tamat tempoh pangkalan data baharu selama sekurang-kurangnya satu jam
insert disk_free,hostname=server01 value=442221834240i
insert cpu_virtual_used_num,host=470b14f0-e869-43ed-a8e6-fd634258271f,hostname=server01 value=0.3 1557023160

Medan jadual pertanyaan

Teg pertanyaan: tunjukkan kunci teg daripada cluster_metric

Medan pertanyaan: tunjukkan kunci medan daripada cluster_metric

Masalah zon waktu

Apabila menggunakan InfluxDB, saya mendapati bahawa kerana InfluxDB menggunakan masa UTC, masalah zon waktu sering ditemui semasa menanyakan

format masa

InfluxDB Selain daripada menyokong epoch_time, ia juga menyokong rfc3339_date_time_string dan rfc3339_like_date_time_string.

zaman_zaman

Beberapa penjelasan teori ialah masa yang telah berlalu sejak Waktu Sejagat Selaras (Khamis, 1 Januari 1970). Sebagai contoh, apa yang kita dapat dengan menggunakan System.currentTimeMillis() dalam program java ialah kali ini. Secara amnya, ia adalah ketepatan tahap milisaat (ms), iaitu jenis Panjang 13-bit. Dalam InfluxDB, ketepatan cap masa boleh mencapai tahap nanosaat (ns), iaitu jenis Panjang 19-bit.

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

Atas ialah kandungan terperinci Mesti dibaca untuk pemantauan operasi dan penyelenggaraan: Panduan penggunaan InfluxDB yang mesti diketahui yang boleh digunakan pada saat genting. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam