docker를 통한 Influxdb 설치(모니터링 서비스 DB) 0










사내 모니터링 대쉬보드 서버 이전으로 Grafana, influxdb, kapacitor, chronograf 를 새로 구축 이전 작업을 진행하였다.
각 서버들은 telegraf를 통해 서버의 상태에 대한 정보를 Influxdb에 전달하고, Influxdb에 저장된 데이터를 Grafana 대쉬보드에 보여주는 형태가 된다.
서버가 비정상 상태일때 Slack을 통하여 알람 메세지를 받을 수 있도록 kapacitor와 chronograf를 연동 할 예정이다.


Influxdb는 InfluxData 에서 개발한 오픈소스 시계열 데이터 베이스(TSDB)이다. GO 언어로 작성되었으며 운영 모니터링, 서버 메트릭 등 실시간 분석과 같은 필드에서 시계열 데이터를 신속하고 고 가용성으로 저장하고 검색 할 수 있도록 최적화 된 DB.


1. docker-compose 파일 작성
   mkdir /home/docker/influxdb/
   vi /home/docker/influxdb/docker-compose.yml

   influxdb:
  image: influxdb:latest
  container_name: influxdb
  restart: always
  ports:
    - "8086:8086"
  environment:
    - INFLUXDB_REPORTING_DISABLED=false
  volumes:
    - influxdb:/var/lib/influxdb
    - /home/docker/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf:ro
    - /home/docker/influxdb/backup:/backup
 

2. influxdb.conf 파일 작성
  vi /home/docker/influxdb/influxdb.conf

reporting-disabled = false
bind-address = "127.0.0.1:8088"

[meta]
  dir = "/var/lib/influxdb/meta"
  retention-autocreate = true
  logging-enabled = true

[data]
  dir = "/var/lib/influxdb/data"
  index-version = "tsi1"
  wal-dir = "/var/lib/influxdb/wal"
  wal-fsync-delay = "0s"
  query-log-enabled = false
  cache-max-memory-size = 1073741824
  cache-snapshot-memory-size = 26214400
  cache-snapshot-write-cold-duration = "10m0s"
  compact-full-write-cold-duration = "4h0m0s"
  max-series-per-database = 1000000
  max-values-per-tag = 100000
  max-concurrent-compactions = 0
  trace-logging-enabled = false

[coordinator]
  write-timeout = "10s"
  max-concurrent-queries = 0
  query-timeout = "0s"
  log-queries-after = "0s"
  max-select-point = 0
  max-select-series = 0
  max-select-buckets = 0

[retention]
  enabled = true
  check-interval = "30m0s"

[shard-precreation]
  enabled = true
  check-interval = "10m0s"
  advance-period = "30m0s"

[monitor]
  store-enabled = true
  store-database = "_internal"
  store-interval = "10s"

[subscriber]
  enabled = true
  http-timeout = "30s"
  insecure-skip-verify = false
  ca-certs = ""
  write-concurrency = 40
  write-buffer-size = 1000

[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = false
  log-enabled = false
  write-tracing = false
  pprof-enabled = true
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"
  https-private-key = ""
  max-row-limit = 0
  max-connection-limit = 0
  shared-secret = ""
  realm = "InfluxDB"
  unix-socket-enabled = false
  bind-socket = "/var/run/influxdb.sock"
  max-body-size = 25000000
  access-log-path = ""

[logging]
  format = "auto"
  level = "info"
  suppress-logo = false

[ifql]
  enabled = false
  log-enabled = true
  bind-address = ":8082"

[[graphite]]
  enabled = false
  bind-address = ":2003"
  database = "graphite"
  retention-policy = ""
  protocol = "tcp"
  batch-size = 5000
  batch-pending = 10
  batch-timeout = "1s"
  consistency-level = "one"
  separator = "."
  udp-read-buffer = 0

[[collectd]]
  enabled = false
  bind-address = ":25826"
  database = "collectd"
  retention-policy = ""
  batch-size = 5000
  batch-pending = 10
  batch-timeout = "10s"
  read-buffer = 0
  typesdb = "/usr/share/collectd/types.db"
  security-level = "none"
  auth-file = "/etc/collectd/auth_file"
  parse-multivalue-plugin = "split"

[[opentsdb]]
  enabled = false
  bind-address = ":4242"
  database = "opentsdb"
  retention-policy = ""
  consistency-level = "one"
  tls-enabled = false
  certificate = "/etc/ssl/influxdb.pem"
  batch-size = 1000
  batch-pending = 5
  batch-timeout = "1s"
  log-point-errors = true

[[udp]]
  enabled = false
  bind-address = ":8089"
  database = "udp"
  retention-policy = ""
  batch-size = 5000
  batch-pending = 10
  read-buffer = 0
  batch-timeout = "1s"
  precision = ""

[continuous_queries]
  log-enabled = true
  enabled = true
  query-stats-enabled = false
  run-interval = "1s"

3. 서비스 시작
  1) docker-compose 만든 디렉토리로 이동
   cd /home/docker/influxdb

  2) 서비스 시작
   docker-compose up -d
 





  3) 서비스 확인
    docker ps -a






다음장에서는 일반 서버에서 Telegraf를 통하여 Influxdb에 데이터를 넣고, 확인 할 예정.




덧글

댓글 입력 영역