수집 - telegraf : 어떤 서버의, 어떤 리소스(CPU,RAM,스토리 입출력… 내가 원하는 대부분의 리소스의 상태, 사용량)를, 얼마의 간격으로 수집할 결정
저장 - influxDB, 시계열(time-series) DB, 일정한 시간간격으로 수집된 데이터를 DB에 저장
ex) 10시 31분 30초의 CPU 사용량은 80% 더라…
시각화 - grafana, 저장된 데이터를 토대로 그래프를 그리거나 수치를 표현
즉 모니터링 하고자하는 서버에 telegraf(agent)를 설치해서 자료를 수집
수집한 자료를 가져와서 influxDB에 저장시켜 저장된 데이터 소스를 grafana가 가져와서 dashboard에 시각화 한다.
telegraf 및 influxDB 설치를 위한 레포 추가해준다.
[root@mon ~]# yum install -y telegraf
# telegraf 설치.
[root@mon ~]# vi /etc/telegraf/telegraf.conf
# 텔레그래프 설정 파일. 어떻게 수집할지와 어떻게 저장할지를 설정.
# ggdG를통해 - vi 편집기에서 전체 삭제.
[global_tags]
# Configuration for telegraf agent
[agent]
interval = "10s"
debug = false
hostname = "server-hostname"
round_interval = true
flush_interval = "10s"
flush_jitter = "0s"
collection_jitter = "0s"
metric_batch_size = 1000
metric_buffer_limit = 10000
quiet = false
logfile = ""
omit_hostname = false
###############################################################################
# OUTPUTS #
###############################################################################
[[outputs.influxdb]]
urls = ["http://localhost:8086"] # InfluxDB가 설치된 서버의 IP를
database = "telegraf" # 데이터베에스 이름, 생성이 되어있지 않으면 자동 생성됨
timeout = "10s"
username = "admin" # InfluXDB 기본 계정
password = "admin"
retention_policy = ""
###############################################################################
# INPUTS #
###############################################################################
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.diskio]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
[root@mon ~]# yum install -y influxdb-1.8.10
# 아까 추가한 레포를 기반으로 influxdb 설치. influxdb의 기본 포트는 8086 이다.
[root@mon ~]# systemctl enable --now influxdb
# 동작
[root@mon ~]# influx
# DB 진입해서 잘 되는지 확인하고 exit로 나온다.
[root@mon ~]# systemctl enable --now telegraf
먼저 grafana 설치 레포를 추가해준다.
[root@mon ~]# yum install -y grafana
# grafana 설치. 기본 포트 3000번.
[root@mon ~]# systemctl enable --now grafana-server
이후 웹에서 http://211.183.3.200:3000으로 대시보드 구성하고 시각화한다.
대시보드는 만들어진 대시보드를 import해서 구성하는 것으로 했다.
이후 실습을 하면서 내가 부족했던점(?) 몰랐던 점(?)에 대해서 리뷰를 해보겠다.
서버 모니터링 실습은
10.10.1.0/24 대역은 외부에서 접속 가능한 대역
vmnet1 이고 이 대역에 grafana와 srv1,srv2같이 모니터링 당할 서버와 DNS 서버가 존재하고
10.10.2.0/24 대역은 외부에서 접근 불가능하고 influxDB 서버가 존재한다.
외부에서 mint를 통해 mon.observer.com으로 접속해서 srv1 및 srv2 같은 서버를 모니터링하게 한다. 가 실습이었는데 (자세한건 리눅스 마스터가 끝나고 시간 있을때 다시 리뷰하겠다 근데 내가 이걸 몰랐던거여서 진짜 기억 해야할꺼 같아서 남긴다.)
PAT하고 influxDB 설치하고 srv1,2에 telegraf 설치하고 grafana 설치하고 이제 DNAT를 설정하려고하는데
이제 여기서 문제가 발생!
내가 처음 생각한 것은! DNAT를 걸때 그냥 mint에서 바로 DNS 서버로 보내면 DNS가 grafana 서버로 보내준다고 생각한것!
그래서 DNAT를 destination port 80을 translation port 53과 translation address 10.10.1.3으로해버렸다.
그래서 안되니깐 알아보니
mint에서 mon.observer.com을 치면
DNAT를 DNS서버를 가는 것과 grafana를 가는 것 2개를 설정해줘야한다.
vyos@vyos# set nat destination rule 100 inbound-interface eth0
vyos@vyos# set nat destination rule 100 destination port 80
vyos@vyos# set nat destination rule 100 protocol tcp
# 접속시 포트번호를 명시하지 않으므로(mon.observer.com) 목적지포트를 80번으로
vyos@vyos# set nat destination rule 100 translation address 10.10.1.3
# grafana 서버주소
vyos@vyos# set nat destination rule 100 translation port 3000
# 그라파나의 포트가 3000번 이기때문에.
vyos@vyos# set nat destination rule 200 protocol tcp_udp
# dns가 tcp,udp 둘다 사용하므로.
vyos@vyos# set nat destination rule 200 destination port 53
vyos@vyos# set nat destination rule 200 inbound-interface eth0
vyos@vyos# set nat destination rule 200 translation address 10.10.1.53
#dns 서버 주소
vyos@vyos# set nat destination rule 200 translation port 53
이렇게 하고 DNS 서버에서
[root@dns ~]# vi /var/named/observer.com.db
# 존파일(안내파일) 생성
$TTL 3H
@ SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS @
IN A 211.183.3.252
mon IN A 211.183.3.252
이렇게 구성을 하고 /etc/resolv.conf에서 nameserver를 내 DNS 서버의 주소 10.10.1.53으로 해준다
그리고 mint에서도 DNS를 8.8.8.8에서 211.183.3.252로 해야 DNS를 문의 할때 53번 포트에서 vyos eth0으로가서 DNAT를 통해 DNS서버에 문의해서 다시 211.183.3.252 라는 주소를 알아서 port 80에 tcp로 가서 DNAT로 10.10.1.3으로 가서 grafana에 접속을 하게 된다는것!!!! 이거 이거 꼭 기억해야겠다