이번 포스팅은 요즘 핫한 InfluxDB에 대하여 작성하도록 하겠습니다.
InfluxDB 역시 작년 기상청 프로젝트에서 전국에서 관측되는 데이터를 효과적으로 처리하기 위하여 검토되었고 그때 자료조사를 한 내용입니다.
순서는
2020/06/11 - [개발관련 자료] - InfluxDB #1 - 개요 및 특징
2020/06/11 - [개발관련 자료] - InfluxDB #2 - 주요 개념
2020/06/11 - [개발관련 자료] - InfluxDB #3 - 용어 정리
2020/06/11 - [개발관련 자료] - InfluxDB #4 - SQL DB와 비교
2020/06/11 - [개발관련 자료] - InfluxDB #5 - Schema설계 및 데이터Layout
2020/06/11 - [분류 전체보기] - InfluxDB #6 - In-Memory Indexing과 TSM(Time-Structured Merge Tree)
2020/06/11 - [개발관련 자료] - InfluxDB #7 - TSI(Time Series Index) 개요
2020/06/11 - [개발관련 자료] - InfluxDB #8 - TSI(Time Series Index) 세부 정보
2020/06/11 - [개발관련 자료] - InfluxDB #9 - Linux CentOS 설치
2020/06/12 - [개발관련 자료] - InfluxDB #10 - 사용법
으로 진행되며 도입 검토 차원에서 이루어진 조사라서 실무적용 보다는 InfluxDB란 어떤 것인지 파악하는 정도로만 생각하시면 될듯합니다.
1. InfluxDB OSS 설치
- CentOS 사용자는 yum패키지 관리자 사용하여 InfluxDB의 최신 안정 버전을 설치할 수 있습니다.
cat <<EOF | sudo 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 |
- 저장소가 yum구성에 추가되면 다음을 실행하여 InfluxDB 서비스를 설치하고 시작하십시오.
sudo yum install influxdb sudo service influxdb start |
- 또는 운영 체제가 systemd (CentOS 7+, RHEL 7+)를 사용하는 경우
sudo yum install influxdb sudo systemctl start influxdb |
2. 데이터베이스 만들기
- InfluxDB를 로컬에 설치한 경우 influx 명령은 command line을 통해 사용할 수 있어야 합니다.
- Executing influx은 CLI를 시작하고 자동으로 로컬 InfluxDB 인스턴스에 연결합니다. 출력은 다음과 같아야 합니다.
$ influx -precision rfc3339 Connected to http://localhost:8086 version 1.4.x InfluxDB shell 1.4.x > |
- InfluxDB API는 기본적으로 8086포트에서 실행되고 localhost가 기본입니다.
- -precision 인수는 반환해야 타임스탬프의 형식/정밀도를 지정합니다.
- 위의 예제에서 rfc3339는 InfluxDB가 RFC3339 형식(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)의 타임스탬프를 반환하도록 지시합니다.
3. InfluxDB에서 HTTPS 사용
- InfluxDB에서 HTTPS를 사용하려면 기존 또는 새로운 InfluxDB 인스턴스와 TLS (Transport Layer Security) 인증서(SSL)가 필요합니다.
○ CA 인증서로 HTTPS 설정
- 인증서 설치
- 개인 키 파일 (.key)과 서명된 인증서 파일 (.crt) 또는 번들로 제공된 단일 파일 (.pem)을 /etc/ssl디렉토리에 놓습니다.
- 인증서 파일 사용 권한 설정
- influxdb를 실행하는 사용자는 TLS 인증서에 대한 읽기 권한이 있어야 합니다.
- 다음 명령을 실행하여 인증서 파일에 대한 읽기 및 쓰기 권한을 influxdb에 부여합니다.
sudo chown influxdb:influxdb /etc/ssl/<CA-certificate-file> sudo chmod 644 /etc/ssl/<CA-certificate-file> sudo chmod 600 /etc/ssl/<private-key-file> |
- TLS 구성 설정 검토
- 기본적으로 InfluxDB는 TLS ciphers, min-version및 Go 패키지 설명서max-version 의 상수 섹션에 crypto/tls 나열된 값을 지원하며 InfluxDB를 작성하는 데 사용된 Go 버전에 따라 다릅니다.
- 제한된 TLS 암호 그룹 ID 및 버전 목록을 지원하도록 InfluxDB를 구성 할 수 있습니다.
- InfluxDB 구성 파일에서 HTTPS 사용
- HTTPS는 기본적으로 사용되지 않습니다. 다음을 설정 [http]하여 구성 파일 (/etc/influxdb/influxdb.conf)의 섹션에서 HTTPS를 활성화합니다.
- https-enabled에 true
- https-certificate~/etc/ssl/<signed-certificate-file>.crt (또는~ /etc/ssl/<bundled-certificate-file>.pem)
- https-private-key~/etc/ssl/<private-key-file>.key (또는 ~ /etc/ssl/<bundled-certificate-file>.pem)
[http]
[...]
# Determines whether HTTPS is enabled. https-enabled = true
[...]
# The SSL certificate to use when HTTPS is enabled. https-certificate = "<bundled-certificate-file>.pem"
# Use a separate private key location. https-private-key = "<bundled-certificate-file>.pem" |
- InfluxDB 서비스 다시 시작
- InfluxDB 프로세스를 다시 시작하여 구성 변경 내용을 적용합니다.
sudo systemctl restart influxdb |
- HTTPS 설정 확인
- CLI 도구를 사용 하여 InfluxDB에 연결하여 HTTPS가 작동하는지 확인하십시오.
influx -ssl -host <domain_name>.com |
- 성공적인 연결은 다음을 반환합니다.
Connected to https://<domain_name>.com:8086 version 1.x.x InfluxDB shell version: 1.x.x > |
○ 자체 서명 된 인증서로 HTTPS 설정
- 자체 서명 된 인증서 생성
- 다음 명령은 개인 키 파일 (.key)과 자체 서명 인증서 파일 (.crt)을 생성합니다.
- NUMBER_OF_DAYS. 이 파일을 InfluxDB 데이터베이스의 기본 인증서 파일 경로에 출력하고 필요한 권한을 부여합니다.
sudo openssl req -x509 -nodes –newkey rsa:2048 -keyout /etc/ssl/influxdb-selfsigned.key –out /etc/ssl/influxdb-selfsigned.crt -days <NUMBER_OF_DAYS> |
- 명령을 실행하면 자세한 정보를 묻는 메시지가 나타납니다. 해당 정보를 입력하거나 비워 둘 수 있습니다.
- 두 작업 모두 유효한 인증서 파일을 생성합니다.
- 다음 명령을 실행하여 인증서에 대한 읽기 및 쓰기 권한을 influxdb에 부여합니다.
chown influxdb:influxdb /etc/ssl/influxdb-selfsigned.* |
- TLS 구성 설정 검토
- 기본적으로 InfluxDB는 TLS ciphers, min-version및 Go 패키지 설명서 max-version의 상수 섹션에 crypto/tls 나열된 값을 지원하며 InfluxDB를 작성하는 데 사용된 Go버전에 따라 다릅니다.
- 제한된 TLS 암호 그룹 ID 및 버전 목록을 지원하도록 InfluxDB를 구성 할 수 있습니다.
- 구성 파일에서 HTTPS 사용
- HTTPS는 기본적으로 사용되지 않습니다. 다음을 설정 [http]하여 구성 파일 (/etc/influxdb/influxdb.conf)의 섹션에서 HTTPS를 활성화합니다.
- https-enabled에 true
- https-certificate에 /etc/ssl/influxdb-selfsigned.crt
- https-private-key에 /etc/ssl/influxdb-selfsigned.key
[http]
[...]
# Determines whether HTTPS is enabled. https-enabled = true
[...]
# The TLS or SSL certificate to use when HTTPS is enabled. https-certificate = "/etc/ssl/influxdb-selfsigned.crt"
# Use a separate private key location. https-private-key = "/etc/ssl/influxdb-selfsigned.key" |
- InfluxDB 다시 시작
- InfluxDB 프로세스를 다시 시작하여 구성 변경 내용을 적용합니다.
sudo systemctl restart influxdb |
- HTTPS 설정 확인
- CLI 도구를 사용하여 InfluxDB에 연결하여 HTTPS가 작동하는지 확인하십시오.
influx -ssl -unsafeSsl -host <domain_name>.com |
- 성공적인 연결은 다음을 반환합니다.
Connected to https://<domain_name>.com:8086 version 1.x.x InfluxDB shell version: 1.x.x > |
'개발관련 자료' 카테고리의 다른 글
안드로이드스튜디오에서 RabbitMQ 사용하기 #1 - RabbitMQ 설치하기 (CentOS 7 기준) (0) | 2021.05.25 |
---|---|
인플럭스DB(InfluxDB) #10 - 사용법 (0) | 2020.06.12 |
인플럭스DB(InfluxDB) #8 - TSI(Time Series Index) 세부 정보 (0) | 2020.06.11 |
인플럭스DB(InfluxDB) #7 - TSI(Time Series Index) 개요 (0) | 2020.06.11 |
인플럭스DB(InfluxDB) #6 - In-Memory Indexing과 TSM(Time-Structured Merge Tree) (0) | 2020.06.11 |
댓글