Lewati ke isi

Instalasi InfluxDB pada sistem operasi Linux

Persiapan

Sistem operasi yang didukung sampai saat ini oleh InfluxDB diantaranya adalah:

  1. CentOS & RHEL: 7 & 8
  2. Debian: 9 & 10
  3. Ubuntu LTS: 18.04 & 20.04

Proses

Repositori InfluxDB

Semua perintah instalasi dan konfigurasi, dieksekusi sebagai root
sudo su

Paket / repositori instalasi InfluxDB

```bash tab=”RHEL/CentOS”
cat <<EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

```bash tab="Debian"
wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/influxdb.list

bash tab="Ubuntu" wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee /etc/apt/sources.list.d/influxdb.list

Instalasi InfluxDB

Via paket repositori

```bash tab=”RHEL/CentOS 7”
yum install -y influxdb

```bash tab="RHEL/CentOS 8"
dnf install -y influxdb

bash tab="Debian & Ubuntu" apt-get update && apt-get install -y influxdb

Mengaktifkan layanan InfluxDB

bash tab="SystemD" systemctl unmask influxdb systemctl enable --now influxdb

Melihat versi

```bash tab=”Eksekusi”
influx -version

```bash tab="Hasil"
InfluxDB shell version: 1.8.0

Konfigurasi - akses pengguna & pangkalan data

Variabel
ADMIN_DB="admin_db"
SANDI_ADMIN_DB="sandi_admin_db"
IP_PRIVAT_DB="10.20.30.1"
DIREKTORI_WAL="/mnt/wal"
DIREKTORI_DATA="/mnt/data"

Lokasi dan konfigurasi direktori penyimpanan data

# Membuat direktori
mkdir -p $DIREKTORI_WAL/wal $DIREKTORI_DATA/{data,meta}
chown -Rv influxdb:influxdb $DIREKTORI_WAL $DIREKTORI_DATA
# Konfigurasi InfluxDB
cp -v /etc/influxdb/influxdb.conf{,.`date +%Y%m%d%H%M`}
cat << EOF > /etc/influxdb/influxdb.conf
bind-address = "$IP_PRIVAT_DB:8088"

[meta]
  dir = "$DIREKTORI_DATA/meta"

[data]
  dir = "$DIREKTORI_DATA/data"
  wal-dir = "$DIREKTORI_WAL/wal"
  series-id-set-cache-size = 100

[http]
  enabled = true
  bind-address = "$IP_PRIVAT_DB:8086"
  auth-enabled = true
  realm = "InfluxDB"
EOF

Pengguna dengan akses admin

curl -XPOST "http://$IP_PRIVAT_DB:8086/query" --data-urlencode \
"q=CREATE USER $ADMIN_DB WITH PASSWORD '$SANDI_ADMIN_DB' WITH ALL PRIVILEGES"

Pengguna dengan akses WRITE dan READ untuk mengakses pangkalan data

influx --host $IP_PRIVAT_DB --username $ADMIN_DB --password $SANDI_ADMIN_DB
CREATE DATABASE "panggalan_data_aplikasi"

```sql tab=”READ”
CREATE USER “pengguna_baca_db” WITH PASSWORD ‘sandi_pengguna_baca_db’
GRANT READ ON “panggalan_data_aplikasi” TO “pengguna_baca_db”
SHOW GRANTS FOR “pengguna_baca_db”

```sql tab="WRITE"
CREATE USER "pengguna_tulis_db" WITH PASSWORD 'sandi_pengguna_tulis_db'
GRANT WRITE ON "panggalan_data_aplikasi" TO "pengguna_tulis_db"
SHOW GRANTS FOR "pengguna_tulis_db"

sql tab="ALL" CREATE USER "pengguna_bacatulis_db" WITH PASSWORD 'sandi_pengguna_bacatulis_db' GRANT ALL ON "panggalan_data_aplikasi" TO "pengguna_bacatulis_db" SHOW GRANTS FOR "pengguna_bacatulis_db"

Memuat ulang layanan peladen InfluxDB

systemctl restart influxdb

Memeriksa hasil pembuatan pengguna

```bash tab=”Eksekusi koneksi”
influx -host $IP_PRIVAT_DB -username $PENGGUNA_DB -password $SANDI_PENGGUNA_DB

```bash tab="Hasil"
Connected to http://$IP_PRIVAT_DB:8086 version 1.8.0
InfluxDB shell version: 1.8.0
>

Penyelesaian

Langkah berikutnya adalah dengan melakukan instalasi Telegraf sebagai agen pada mesin virtual yang akan dipantau. Telegraf akan mengumpulkan data metriks utilisasi dan mengirimkan hasilnya ke InfluxDB.

Repositori Telegraf

Paket / repositori instalasi Telegraf

```bash tab=”RHEL/CentOS”
cat <<EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

```bash tab="Debian"
wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/influxdb.list

bash tab="Ubuntu" wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee /etc/apt/sources.list.d/influxdb.list

Instalasi Telegraf

Via paket repositori

```bash tab=”RHEL/CentOS 7”
yum install -y telegraf

```bash tab="RHEL/CentOS 8"
dnf install -y telegraf

bash tab="Debian & Ubuntu" apt-get update && apt-get install -y telegraf

Mengaktifkan layanan Telegraf

bash tab="SystemD" systemctl enable --now telegraf

Melihat versi

```bash tab=”Eksekusi”
telegraf -version

```bash tab="Hasil"
Telegraf 1.14.5 (git: HEAD e77ce3d1)

Konfigurasi Telegraf

Variabel
PENGGUNA_TULIS_DB="pengguna_tulis_db"
IP_PRIVAT_DB="10.20.30.1"
PANGGALAN_DATA_APLIKASI="$HOSTNAME"
SANDI_PENGGUNA_TULIS_DB="sandi_pengguna_tulis_db"

Berkas konfigurasi telegraf.conf

cp -v /etc/telegraf/telegraf.conf{,.`date +%Y%m%d%H%M`}
cat << EOF > /etc/telegraf/telegraf.conf
[global_tags]
  host = "$HOSTNAME"

[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = "s"
  logfile = ""
  debug = false
  quiet = false
  hostname = "$HOSTNAME"
  omit_hostname = false

[[outputs.influxdb]]
  urls = ["http://$IP_PRIVAT_DB:8086"]
  skip_database_creation = false
  database = "$PANGGALAN_DATA_APLIKASI"
  timeout = "0s"
  username = "$PENGGUNA_TULIS_DB"
  password = "$SANDI_PENGGUNA_TULIS_DB"
  retention_policy = ""

[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.io]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
EOF

Memuat ulang layanan Telegraf

systemctl restart telegraf