안녕하세요
시계열 데이터를 저장하고 검색하고 분석하기 위한 오픈 소스 데이터베이스인
InfluxDB에 대해 알아보고 2023년 4월 11일 기준으로 Ubuntu Server 22.04 LTS에 설치해 보겠습니다.
1. InfluxDB 란?
InfluxDB는 시계열 데이터를 저장하고 검색하고 분석하기 위한 오픈 소스 데이터베이스입니다. 이는 대규모 분산 시스템에서 수집된 데이터를 처리하기 위한 목적으로 설계되었습니다. NoSQL 데이터베이스로서, 데이터를 JSON 형식으로 저장합니다. 또한, 데이터베이스 내에서 SQL 쿼리를 사용하여 데이터를 검색하고 집계할 수 있습니다. 시계열 데이터에 특화된 데이터베이스로, 데이터가 측정 기간과 타임스탬프로 구성되어 있습니다.
InfluxDB는 많은 개발자와 기업들이 사용하는 인기 있는 오픈 소스 기술입니다. IoT, 모니터링, 로깅, 센서 데이터 처리, 에너지 관리 등 여러 분야에서 사용됩니다. InfluxDB는 또한 다양한 클라이언트 라이브러리와 플러그인을 지원하며, Grafana, Prometheus 등과 같은 다른 시각화 및 분석 도구와 통합이 가능합니다.
2. InfluxDB 동작원리
InfluxDB는 분산 데이터베이스로서, 여러 노드에 데이터를 저장하고 처리하는 방식을 채택
1. 데이터 모델링
InfluxDB는 태그, 필드, 시간 세 가지 개념을 사용하여 데이터를 모델링합니다. 태그는 데이터를 분류하는 데 사용되며, 필드는 데이터 값 자체를 나타냅니다. 시간은 데이터가 생성된 시간을 나타내며, InfluxDB의 주요 인덱스로 사용됩니다.
2. 데이터 쓰기
InfluxDB는 HTTP API를 통해 데이터를 쓰고, 데이터는 지정된 데이터베이스와 측정 항목에 저장됩니다. 데이터는 시간 순으로 정렬되어 저장되며, 측정 항목과 태그를 사용하여 데이터를 쿼리 할 수 있습니다.
3. 데이터 검색 및 쿼리
InfluxDB는 SQL과 유사한 InfluxQL 쿼리 언어를 사용하여 데이터를 검색합니다. InfluxQL은 태그, 필드, 시간을 사용하여 데이터를 쿼리 하고, 집계 함수를 사용하여 데이터를 처리합니다.
4. 데이터 저장소와 질의 쿼리
InfluxDB는 저장소 엔진으로 TSM(Time-Structured Merge Tree)을 사용합니다. TSM은 시간 기반 데이터의 쿼리와 검색을 빠르게 수행할 수 있도록 최적화된 구조입니다. InfluxDB는 데이터를 병렬로 처리하고, 수직 및 수평적으로 확장 가능합니다.
5. 데이터 유지 보수
InfluxDB는 정기적으로 데이터를 유지 보수합니다. 예를 들어, 색인을 재구성하여 쿼리 성능을 최적화하거나, 데이터를 압축하여 저장 공간을 절약할 수 있습니다.
6. 클러스터링
InfluxDB는 클러스터링을 지원하여, 여러 노드로 데이터베이스를 확장할 수 있습니다. 노드는 데이터를 공유하며, 쿼리 처리를 분산하여 처리 능력을 향상시킵니다.
3. InfluxDB 장점
1. 시계열 데이터 처리에 최적화
InfluxDB는 시계열 데이터를 처리하는 데 최적화된 데이터베이스입니다. 시간에 따라 변하는 데이터를 빠르고 효율적으로 저장, 검색 및 분석할 수 있습니다.
2. 고성능 및 확장성
InfluxDB는 고성능 데이터베이스로서 대용량 데이터 처리에 특화되어 있습니다. 또한 수평적으로 확장 가능하며, 여러 노드를 추가하여 데이터 처리 능력을 쉽게 늘릴 수 있습니다.
3. 다양한 데이터 수집 방법 지원
InfluxDB는 다양한 데이터 수집 방법을 지원합니다. 예를 들어, Telegraf를 사용하여 시스템 및 응용 프로그램의 메트릭 데이터를 수집하거나, InfluxDB 클라이언트 라이브러리를 사용하여 애플리케이션에서 데이터를 직접 수집할 수 있습니다.
4. 데이터 시각화 지원
InfluxDB는 데이터 시각화를 위한 다양한 도구를 제공합니다. 예를 들어, Grafana를 사용하여 InfluxDB에 저장된 데이터를 시각화하고 대시 보드를 생성할 수 있습니다.
5. 오픈 소스
InfluxDB는 오픈 소스 데이터베이스로서, 누구나 소스 코드를 다운로드하고 수정할 수 있습니다. 이를 통해 개발자들은 자신의 요구 사항에 맞게 InfluxDB를 커스터마이징 할 수 있습니다.
6. 클라우드 기반 서비스
InfluxDB는 InfluxDB Cloud라는 클라우드 기반 데이터베이스 서비스를 제공합니다. 이를 통해 사용자들은 쉽게 InfluxDB를 사용할 수 있습니다.
4. Ubuntu 22.04 LTS에 InfluxDB 2.0 설치하기
InfluxDB GPG validated 오류
wget -qO- https://repos.influxdata.com/influxdb2.key | sudo apt-key add - echo "deb https://repos.influxdata.com/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
위에 보이는 코드는 기존 InfluxDB를 설치하던 코드인데 현재 Ubuntu 22.04 LTS에서 InfluxDB 2.0을 설치할 때 GPG validate에서 오류를 발생시킵니다. 여러 방법으로 해결하려고 노력했으나 실패해서 다른 방법으로 설치하는 방법을 소개하려고 합니다.
>> 다음과 같은 단계를 따라서 설치를 진행해 주세요.
1. apt update 하기
sudo apt update
2. InfluxDB 2.0 Public Key 다운로드하기
curl -s https://repos.influxdata.com/influxdata-archive_compat.key | gpg --import -
3. InfluxDB 2.0 2.0.9 Linux-amd64.tar.gz, 2.0.9-linux-amd64.tar.gz.asc다운로드하기
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.9-linux-amd64.tar.gz
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.9-linux-amd64.tar.gz.asc
# asc 확장자는 GPG 인증을 위한 파일이다.
4. InfluxDB 2.0 서명 확인
gpg --verify influxdb2-2.0.9-linux-amd64.tar.gz.asc influxdb2-2.0.9-linux-amd64.tar.gz
다음 명령어를 실행했을 때 위와 같은 메세지가 뜨면 GPG 인증 성공입니다.
5. InfluxDB 2.0 압축 파일을 현재 디렉터리에 풀기
tar xvzf influxdb2-2.0.9-linux-amd64.tar.gz
6. Influx 및 Influxd 바이너리를 $PATH에 복사
sudo cp influxdb2-2.0.9-linux-amd64/{influx,influxd} /usr/local/bin/
7. InfluxDB 2.0 설치하기
(1) Ubuntu/Debian
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.9-amd64.deb
sudo dpkg -i influxdb2-2.0.9-amd64.deb
(2) Red Hat/CentOS/Fedora
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.9-amd64.rpm
sudo yum localinstall influxdb2-2.0.9-amd64.deb.rpm
8. InfluxDB 2.0 서비스 시작하기
sudo systemctl start influxdb
9. InfluxDB 2.0 서비스 상태 확인하기 (InfluxDB 기본 포트 8086)
sudo systemctl status influxdb
InfluxDB가 정상적으로 설치되어 동작 중인 것을 확인할 수 있습니다. InfluxDB 2.0부터는 GUI 웹 인터페이스를 지원하기 때문에 다음과 같이 <IP address>:8086으로 접속하면 InfluxDB GUI에 접근할 수 있습니다.
Ubuntu 22.04 LTS에서 InfluxDB 2.0을 설치할 때 GPG 인증 에러가 계속 발생해서 해결하다가
다른 방법으로 설치할 수 있다는 것을 알게 되어서 포스팅 남겨둡니다.
감사합니다.
'OSS' 카테고리의 다른 글
[OSS] Prometheus에 대해 알아보고 여러 방법으로 Ubuntu 22.04 LTS에 설치하기 (3) | 2023.04.13 |
---|---|
[OSS] InfluxDB 2.0과 Grafana를 연동하여 TIG(Telegraf, InfluxDB, Grafana) 환경 구성하기 (0) | 2023.04.12 |
[OSS] Grafana에 대해 알아보고 Ubuntu 22.04 LTS에 설치하기 / Grafana 초기 아이디, 비밀번호 (0) | 2023.04.12 |
[OSS] Telegraf와 InfluxDB 2.0 연동 실습하고 InfluxDB 기능 알아보기 (0) | 2023.04.11 |
[OSS] Telegraf에 대해 알아보고 Ubuntu 22.04 LTS에 설치하기 (0) | 2023.04.10 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!