Software QA

telegraf, influxdb, grafana를 사용하여 Docker Container 모니터링 환경 구성하기 (2) - telegraf 설치하여 docker 정보 influxdb에 저장하기

Soyeon0111 2021. 8. 8. 18:50
반응형

이전 글 : telegraf, influxdb, grafana를 사용하여 Docker Container 모니터링 환경 구성하기 (1) - Influxdb, Grafana docker-compose로 만들기

https://tifferent.tistory.com/6

 

telegraf, influxdb, grafana를 사용하여 Docker Container 모니터링 환경 구성하기 (1) - Influxdb, Grafana docker-com

telegraf, influxdb, grafana를 사용하여 Docker Container를 모니터링 하려고 한다. docker container 정보를 telegraf를 통해 influxdb로 수집되고, grafana로 시각화하여 보여주게 된다. 오늘은 간단하게 grafa..

tifferent.tistory.com


1. 모니터링을 하고자 하는 서버에 telegraf를 설치

설치 방법 자세한 내용 참고 : https://docs.influxdata.com/telegraf/v1.19/introduction/installation/

  • CentOS
# telegraf 패키지 다운로드
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.13.4-1.x86_64.rpm

# telegraf 설치
yum install localinstall telegraf-1.13.4-1.x86_64.rpm

# telegraf 시작, 중지, 상태 확인
systemctl start telegraf
systemctl stop telegraf
systemctl status telegraf
  • Ubuntu
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install apt-transport-https
wget -qO- 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.listtest $VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list sudo apt-get update && sudo apt-get install telegraf   

apt-get update 명령에서 에러 나는 경우 : https://tifferent.tistory.com/2?category=915096 참고

sudo apt-get install telegraf
sudo service telegraf start

 

2. telegraf 설정 변경 후 telegraf 재실행

Docker 정보(메모리 외 다수의 정보)를 input으로 받아 influxdb를 output하여 저장한다.

conf 파일을 수정하여 telegraf 서비스를 재시작하자.

  • telegrafh 설정 파일 : /etc/telegraf/telegraf.conf
  • [[outputs.influxdb]] : 수집 내용을 저장 할 influxdb 정보를 입력한다. 없는 database 이름이라면 새로 생성된다.
  • [[inputs.docker]] : 아래 해당하는 부분의 주석을 풀어주고, 값이 다른 부분이 있다면 아래와 같이 수정한다.
[[outputs.influxdb]]
urls = ["http://10.120.10.10:8086"] # influx db가 설치된 모니터링 서버 ip 및 influx db port
database = "docker_info" # telegraf로 수집하는 정보를 저장할 database 명
timeout = "5s"

(생략)

[[inputs.docker]]
endpoint = "unix:///var/run/docker.sock"
gather_services = false
container_names = []
source_tag = false

container_name_include = []
container_name_exclude = []

timeout = "5s"
perdevice = true
total = false
tag_env = ["JAVA_HOME", "HEAP_SIZE"]
docker_label_include = []
docker_label_exclude = []

 

🔔 [Tip] telegraf status 확인 시 권한 문제 관련 로그가 발생하는 경우.. 

더보기

[root@localhost /]# systemctl status telegraf

(생략)

Jan 06 15:12:20 localhost.localdomain telegraf[11154]: 2021-01-06T06:12:20Z E! [inputs.docker] Error in plugin: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdock...: permission denied

 

[root@localhost /]# sudo usermod -aG docker telegraf          # docker group에 telegraf 유저를 추가

[root@localhost /]# systemctl restart telegraf

 

 

3. influxdb 확인

database, measurement가 잘 생성되었는지, 수집이 정상적으로 되는지 확인한다.

influxdb가 설치된 서버로 접속하여 아래 명령 실행

[root@localhost /]#docker exec -it influxdb-grafana_influxdb_1 bash    #influxdb 컨테이너 진입
root@9a3e02467c50:/#influx                                                       #influxdb 실행
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3
> show databases                                                                      # database 목록 보기
name: databases
name
----
docker_info
telegraf
> use docker_info
> show measurements
name: measurements
name
----
cpu
disk
diskio
docker
docker_container_blkio
docker_container_cpu
docker_container_mem
docker_container_net
docker_container_status
kernel
mem
processes
swap
system
>
> select * from docker_container_mem limit 1   # 내가 모니터링에 사용 할 docker_container_mem  measurement가 정상적으로 쌓이고 있는지 확인한다. 

 

 

끝!

반응형