본문 바로가기
Naver Cloud Platform

[NaverCloud] 프로메테우스(Prometheus), 그라파다(Grafana) 모니터링 서비스 개념 및 특징 설치하고 실습하기.

by 클수저 2024. 1. 26.
728x90
반응형

프로메테우스 개념

프로메테우스는 대상 시스템으로부터 각종 모니터링 지표를 수집하여 저장하고 검색!

위 아키텍처를 간단히 이해하자면 아래와 같다.

👉 프로메테우스 수집서버 설치 -> Job이라고 Config를 정의한다.
👉  해당 서버에서 Metric를 Pull로 당겨온다.

 

프로메테우스 수집서버  ◀️▶️  수집 대상 서버 

노드 익스포터에서 가져와서 데이터(시계열)를 기반으로 그라파나에 띄워준다.

 

 

프로메테우스 특징

  • 그라파나를 통한 시각화 지원
  • 많은 시스템을 모니터링할 수 있는 다양한 플러그인을 가지고 있다.
  • 쿠버네티스의 메인 모니터링 시스템으로 많이 사용된다.
  • 프로메테우스가 주기적으로 exporter(모니터링 대상 시스템)로부터 pulling 방식으로 메트릭을 읽어서 수집한다.

 

그라파나 개념

그라파나는 프로메테우스를 비롯한 여러 데이터들을 시각화해주는 모니터링 툴이다.

 

그라파 특징

  • 그라파나는 시스템 관점(cpu, 메모리, 디스크)의 메트릭 지표를 시각화하는데 특화되어 있다.
  • 그라파나는 여러가지 데이터베이스 소스를 확인 할 수 있다. (ex : MySQL)
  • 그라파나는 알람기능을 무료로 사용할 수 있다.

 


실습하기

** histroy 기능 설치하기

네이버클라우드는 기본적으로 history 기능을 제공하지않음.

 

히스토리 내역 기능 추가하기 위한 터미널 작업이다.

sudo 명령어를 통한 profile접근

sudo vim /etc/profile

 

해당 명령어를 맨 밑에 추가

export HISTSIZE = 1000

export HISTTIMEEFORMAT ="%F %T"

 

export HISTSIZE = 1000 👉histroy를 1000개까지 표시한다. 1000개 넘으면 제일 처음 history부터 삭제한다.

histroy 명령어가 실행된다.


 

프로메테우스 계정생성

프로메테우스 프로그램을 돌리기 위해서는 유저와 패스워드를 만든다.

위와 동일하게 client 계정을 생성한다.

history를 통한 계정생성 작업 확인


sudoers에 접근해서 권한부여를 한다.

vim으로 접근해서 위에서 생성한 계정을 ALL 권한을 부여!

작성을 직접한다. 원래는 내용이 root만 되어있음.

chmod 777로 권한설정

 

sudoers에 PermitRootLogin 코드에서 yes라고 되어있는 것을 no로 바꾼다.

그러면 해당 서버에는 아무나 접근을 할 수 없고 등록 된 유저들만 접근이 가능해진다.

 

service sshd restart

sshd 프로그램을 재시작한다.

 

위에서 설정한 Private서버에 root로 접근하려고 하면 Permission denied 이 뜬다. 접근이 안됨!

그렇다면 위에서 설정한 권한 작업이 정상적으로 되었다는 뜻이다!!!!

msp001 유저로 접근

그러면 계정을 생성한 msp001 로 접근하면, 정상적으로 접근이 가능하며 패스워드를 입력하라는 창이 뜬다.


 

디렉토리 설정

소스파일을 관리 할 프로메테우스 파일을 생성

wget을 통한 프로메테우스 파일을 다운로드 받는다.

tar 압축해제

tar -zvxf 를 통해서 압축을 해제한다.

sysctl 에 등록하는 작업을 한다. 

sudo vim /etc/systemd/system/prometheus-node.service

위에 있는 코드를 넣어준다.

즉, 프로메테우스 동작할 수 있게 해주는 데몬 코드라고 이해하면 된다.

systemctl로 데몬 실행

프로메테우스 프로그램을 구동하고, 상태를 보면 정상적으로 작동하고 있는 것을 확인 가능핟.


네이버클라우드 플랫폼 콘솔에서 작업하기

ACG설정

웹에서 통신을 해야하기 때문에 Web Server로 설정된 ACG인 Public-acg를 열어준다.

포트는 9090으로 설정!

http://공인:9090/metrics

공인은 Web Server의 Public IP를 입력하고 접속한다.

Metrics log를 확인 할 수 있다.

위와 같이 메트릭의 로그값들을 확인 할 수 있다!

절대 오류가 아니니 정상적으로 잘 진행중에 있는것이다.

 

모니터링 서버에 타겟 서버 등록하기 위한 작업을 한다.

NAT Gateway통신을 위한 Private Subnet생성

 

모니터링서버에 타켓서버를 통신하기 위한 NAT Gatway생성

 

Route Table 생성

Route Table에 NATGW로 프로메테우스 서버를 타켓으로 설정한다.

msp002 유저로 private 서버 접속

 

타켓팅을 위한 디렉토리 설정

wget을 통한 프로메테우스 노드익스포터 설치!

tar -zvxf 로 노드익스포터 압축해제

 

ping 8.8.8.8 로 NAT Gateway와 통신이 되는지 확인!!!!

NAT Gateway 잘 열림 굳!

노트 익스포터를 작성하기 위한 tmp파일로 이동해서 프로메테우스 코드 파일로 이동

해당 코드에서 위 내용만 수정하면 된다! :)

 

node_exporter : 내 Private(프로메테우스 서버) IP 주소를 targets에서 수정!

oci : OCI 공인IP를 추가!

시스템 재실행

 

status값으로 프로메테우스 서버가 잘 동작하는 것을 확인해본다.

정확히 확인해가 위해서는 아래의 명령어를 통해 Port가 잘 열려있는지 확인!

netstat -ntpl

9090포트가 잘 열려 있는 것을 확인 할 수 있다!!!!


http://공인:9090/targets

Priavte(프로메테우스 서버)에 9090포트와 targets URL로 접속하면 아래와 같이 프로메테우스가 웹에 보이는 것이 정상구동 되고 있는 것이다.

UP 서버와 연결이 잘 되어있다는 표시이다.

지금은 노드익스포터, 프로메테우스를 위에서 설치를 모두 했기 때문에 UP으로 표시가 되어있다.

OCI연결은 OCI계정을 가지고 계신 강사님이 나의 IP를 승인해주면 UP으로 바뀔 예정이다.


그라파나 설치하기

그라파나의 경우 Public(Web Server) 에서 작업한다.

그라파나 디렉토리 생성 tmp의 그라파나 디렉토리로 이동

yum install로 그라파나 패키지 설치!

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.3-1.x86_64.rpm

systemctl로 그라파다 시작 및 enable로 구동 확인!

 

그라파다 또한 웹서버와 통신을 해야하기 때문에 public-acg에 3030포트로 TCP 열어준다!!

 

그라파나가 정상적으로 동작하는 것을 확인

status랑 필수로 연결되는 포트확인!!

netstat -ntpl

3000으로 그라파나가 포트 열린 것을 확인 할 수 있다.

그라파나 웹 접속!

정상적으로 그라파나 웹에 접속을 했고, 계정 ID/PW로 접속한다.

 

이제부터는 그라파다 대쉬보드를 셋팅하는 작업이다!

그라파다 로그인 후 첫화면!

좌측 상단에 NEW 버튼 클릭 후, NEW dashboard 클릭

 

import a dashboard 클릭!

configure a new data source 클릭!

 

여러가지 소스중 Prometheus 선택!

Connection에서 URL은 현재 서버에서 그라파다가 구동중인 웹서버 퍼블릭IP를 적는다.

 

모든 셋팅이 완료되면 위와 같이 그라파다 대시보드가 완성된다!!


OCI서버와 VPN 연결하기

위에서 OCI는 오라클 서버이다.
오라클 서버와 VPN으로 연결하는 실습을 진행한다.

cd를 통해서 루트로 빠져나간 다음에 기존에 학습을 위해서 받은 오라클 pem으로 oci 서버(오라클 서버)를 접속한다.

여기서 중요한 사항!!!!!

오라클 .pem의 경우 web server(pub) VM root에 넣어놔야 작업이 수월하다!!!!

오라클 pem키에 chmod 400으로 해당 pem에 권한을 부여한다.

 

ssh -i ./pem이름.key opc@IP주소

 

ssh로opc 서버 접속한다!  -> 정상적으로 접속완료!

sudo su로 루트권한을 부여하자! -> 원활한 실습 작업을 위해!!

 

여기서 중요한 사항!

네이버VM을 생성이후에 네이버 기본 ACG는 관리가 가능한다.

But!! 오라클 ACG가 설정이 되어있기 때문에 방화벽을 해제해서 ,오라클 서버에서 접속을 할 수 있도록 하는 작업(매우 중요한 작업이다!!!!) 쉽게 말해서 오라클 방화벽을 해제한다!

방화벽과 SELinux를 내리는 작업이 필수이다.

Oracle Linux 7 version 방화벽 해제 방 (tistory.com)

 

Oracle Linux 7 version 방화벽 해제 방

안녕하세요 뚱보 프로그래머 입니다. 오늘은 linux가 7버전으로 바꿔면서 기존에 사용하던 명령어들이 조금씩 바낀 내용에 대해서 얘기할까 합니다. 기존 버전에서는 iptables에서 방화벽 관리를

congabba.tistory.com

위 블로그를 통해서 진행한다!

⚠️오라클 방화벽 해제 관련 오류! ⚠️

위 예시는 오류이다. 즉, sestatus 통해서 enable이 뜨면 SELinux 상태가 정상적인것이다.

분명히 위에 있는 블로그에서 따라했는데 문제점이 있는게 이상했다!!

근데 여기서 매우매우 중요한 사항!!!!!! VM reboot를 하지 않으면 sestatus를 입력 시 enable이 뜬다.

여기서 작업을 모두 마치고 reboot를 해서 서버를 재실행 해줘야 정상적인 작동이 가능하다.

opc 서버 reboot

 

reboot를 하고 서버를 재접속했다.

sestatus를 했을 시 disalbed가 뜬다. 이러면 오라클 서버의 방화벽이 전부 해제가 된 상태이다.

 

오라클서버에 접속 할 수 있는 타켓서버를 설치해야한다.

private서버에서 작업 모니터링 타겟 서버(Private Subnet)를 설치 진행

아래의 코드를 통해서 진행한다.

 

 

다 설치하고 status로 상태를 확인하면 아래와 같다.

 

오라클 서버에 접속을 해야하기 때문에 ACG에 9100 포트를 열어준다.

 

최종적으로 Public서버 IP와 포트번호를 입력하고 웹사이트를 들어가면

위에 중간쯤 있던 OCI가 UP이 빨간불이었는데, 정상적으로 UP이 된 것을 확인 할 수 있다.

그래서 3가지 프로그램 모두 정상적으로 연결이 되어 동작이 되는 것을 확인가능하다!

 

그라파다 사이트로 들어가서 대시보드를 확인하면

OCI를 선택하면 HOST IP가 확인이 되고, CPU 상태가 시간별로 대시보드화 된 것을 확인 할 수 있다.

 

그라파다 대시보드에 프로그램별, 시간별, 상태별로 다양한 데이터 값을 대시보드로 확인이 가능하다!

 

끝!

728x90
반응형