Telegraf - InfluxDB - Grafana 조합을 통해 모니터링 화면을 구성해보도록 하겠습니다.
이번에는 최대한 다양한 환경으로 구성해봤는데,
1. Telegraf : 라즈베리 파이에 설치
2. InfluxDB : AWS에 설치
3. Telegraf : 라즈베리 파이에서 정보 수집하기
4. Grafana : Docker로 세팅
해보았습니다.
이 조합이 자주 사용되는 것은 아니지만, 혹시 필요한 분들이 계시다면 도움이 되길 바랍니다.
1) 라즈베리 파이 업데이트
sudo apt-get update
sudo apt-get upgrade
2) influx 레파지토리 추가
(참조 : https://docs.influxdata.com/telegraf/v1.3/introduction/installation/)
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
3) Telegraf 설치
sudo apt-get update && sudo apt-get install telegraf
sudo service telegraf start
4) telegraf config 생성
기본적으로 /etc/telegraf/ 아래에 telegraf.conf 파일이 생성되는데, 이와 별도로 cpu, memory를 수집해서 influxdb에 저장하는 conf 파일을 별도로 만들어보겠습니다.
현재 디렉터리에서 다음을 입력, mytelegraf.conf 파일을 만들어봅니다.
telegraf -sample-config -input-filter cpu:mem -output-filter influxdb > mytelegraf.conf
여기까지 진행하면 cpu, memory 정보를 수집하는 준비가 완료된 것입니다.
1) ec2 구동
http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EC2_GetStarted.html 등을 참조해서 ec2 서버를 구동합니다. 저는 t2.micro를 사용했습니다.
2) ip 주소, Security 그룹 확인
ec2 management console에서 Instances를 선택하고 새로 생성한 ec2서버의 ip 주소와 security그룹을 확인합니다.
여기에서 security 그룹 링크를 클릭해서 inbound 포트 8083, 8086을 열어줍니다.
3) 레파지토리 추가
이 부분이 가장 어려웠는데, 쉽게 설명한 블로그가 있어서 도움 많이 받았습니다.
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
위와 같이 세팅하고
sudo yum install influxdb
를 입력하면 바로 쉽게 설치되어야 하는데, 404 에러가 발생합니다.
레파지토리 추가할 때 releasever를 7로 설정합니다.
다시 정리해보면,
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/7/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
과 같이 수정한 뒤 install을 진행하면 매끄럽게 설치됩니다.
4) 서비스 구동 및 로그 추적
설치 후
sudo service influxdb start
를 입력하면 서비스가 가동됩니다.
정상적으로 데이터가 수집되는지 정보를 확인하고자 .log 파일을 다음과 같이 추적하겠습니다.
tail -f /var/log/influxdb/influxd.log
1) 앞에서 작성한 mytelegraf.conf 파일을 열어서, output urls에 influxdb를 설치한 ip로 수정합니다.
2) 라즈베리파이에서 다음과 같이 입력해서 수집을 시작합니다.
telegraf -config mytelegraf.conf
정상적으로 수집하고 있으면, 2번에서 tail을 통해 정보가 수집되는 것을 확인할 수 있습니다.
1) 별도의 컴퓨터에 docker 환경을 구성합니다.(참조 : https://www.docker.com/ )
2) kitematic을 실행, grafana 공식 배포본을 받아 실행합니다. 이때, 사용하는 포트는 편의상 3000 포트로 동일하게 구성합니다.
3) localhost:3000으로 접근, admin / admin으로 로그인합니다. 그 뒤, datasource를 선택합니다.
4) 다음의 내용을 참조해서 데이터 소스를 구성합니다.
5) Dashboards > new를 선택하고, 목록 중에 graph를 선택합니다.
6) panel title을 클릭하고 Edit을 클릭하면 하단에 수정할 수 있는 패널이 나타납니다. 여기에 다음 화면을 참조해서 시스템이 사용하는 cpu 현황을 구성합니다.
7) 우측 햄버거버튼(=)을 클릭, 복제해서 usage_user 등을 추가할 수 있습니다.
8) 배포, 재가동 등의 주요 이벤트가 발생할 때 그래프에 바로 표시하고자 할 때에는 참고 블로그를 참조해서 아래 화면과 같이 활용할 수 있습니다.
가볍게 며칠 동안 시도했던 내용을 정리하다 보니 실험했던 만큼 시간이 걸려 문서를 작성했네요.
필요하신 분들께 조금이라도 도움이 되면 좋겠습니다.
감사합니다.