Search

Prometheus, Grafana 연동

Prometheus

설치

패키지 업데이트

sudo apt update
Bash
복사

시스템 사용자 생성

sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus
Bash
복사

Prometheus 설치를 위한 디렉토리 생성

sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus
Bash
복사

설치

cd /etc/prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.54.0/prometheus-2.54.0.linux-amd64.tar.gz tar vxf prometheus-2.54.0.linux-amd64.tar.gz cd prometheus-2.54.0.linux-amd64/
Bash
복사

구성

바이너리 파일 이동 및 소유자 설정

sudo mv prometheus /usr/local/bin sudo mv promtool /usr/local/bin sudo chown prometheus:prometheus /usr/local/bin/prometheus sudo chown prometheus:prometheus /usr/local/bin/promtool
Bash
복사

구성 파일 이동 및 소유자 설정

sudo mv consoles /etc/prometheus sudo mv console_libraries /etc/prometheus sudo mv prometheus.yml /etc/prometheus
Bash
복사
sudo chown prometheus:prometheus /etc/prometheus sudo chown -R prometheus:prometheus /etc/prometheus/consoles sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries sudo chown -R prometheus:prometheus /var/lib/prometheus
Bash
복사

구성파일 수정

sudo vi /etc/prometheus/prometheus.yml
Bash
복사

서비스 생성

서비스 파일 생성

sudo vi /etc/systemd/system/prometheus.service
Bash
복사
아래 내용 작성
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries [Install] WantedBy=multi-user.target
Bash
복사

시스템 활성화 및 시작

sudo systemctl daemon-reload sudo systemctl enable prometheus sudo systemctl start prometheus
Bash
복사

상태 확인

sudo systemctl status prometheus
Bash
복사
웹에서 9090 포트로 접속

Grafana

설치

필수 패키지 설치

sudo apt-get install -y apt-transport-https software-properties-common wget
Bash
복사

GPG키 가져오기

wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null curl -s https://apt.grafana.com/gpg.key | gpg --no-default-keyring --keyring /usr/share/keyrings/grafana.gpg --import && chmod 644 /usr/share/keyrings/grafana.gpg
Bash
복사

저장소 추가

echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Bash
복사

패키지 업데이트

sudo apt-get update
Bash
복사

Grafana 설치

sudo apt-get install -y grafana=11.1.4
Bash
복사

시작

서비스 실행

sudo systemctl daemon-reload sudo systemctl enable grafana-server sudo systemctl start grafana-server
Bash
복사

서비스 상태 확인

sudo systemctl status grafana-server
Bash
복사
3000번 포트로 접근

Elasticsearch Exporter 설치

Prometueus 설정

prometheus.yml 수정

sudo vi /etc/prometheus/prometheus.yml
Bash
복사
scrape_configs 항목에 아래 내용 추가
scrape_configs: - job_name: 'elasticsearch' static_configs: - targets: ['localhost:9114']
Bash
복사

prometheus 재시작

sudo systemctl restart prometheus
Bash
복사

익스포터

go 설치
wget https://go.dev/dl/go1.20.6.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.20.6.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin source ~/.profile go version
Bash
복사
go 워크스페이스 설정
export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin
Bash
복사
git
git clone https://github.com/prometheus-community/elasticsearch_exporter.git
Bash
복사
빌드
sudo apt install make cd elasticsearch_exporter make build
Bash
복사
서비스 생성
sudo cp elasticsearch_exporter /usr/local/bin/ sudo vi /etc/systemd/system/elasticsearch_exporter.service
Bash
복사
아래 내용 작성
[Unit] Description=Elasticsearch Exporter Wants=network-online.target After=network-online.target [Service] User=root Group=root ExecStart=/usr/local/bin/elasticsearch_exporter --es.uri=http://localhost:9200 Restart=on-failure [Install] WantedBy=multi-user.target
Bash
복사
서비스 활성화 및 시작
sudo systemctl daemon-reload sudo systemctl enable elasticsearch_exporter sudo systemctl start elasticsearch_exporter
Bash
복사

그라파나 대시보드 임포트

코드 : 2322
데이터 소스 : 프로메테우스

윈도우 익스포터

설치 (윈도우)

윈도우 익스포터 설치

windows_exporter-0.19.0-386.msi

확인

http://localhost:9182/metrics
Bash
복사
아래 내용 확인

prometheus.yml 수정

아래 내용 추가
scrape_configs: - job_name: 'windows_exporter' static_configs: - targets: ['<expoter_IP>:9182']
Bash
복사

재시작

systemctl restart prometheus
Bash
복사

그라파나 대시보드 추가

데이터소스는 추가되어있다고 가정
코드 : 2129

대시보드 임포트

데이터소스 프로메테우스 지정

세팅 변경

Settings - JSON
내용 전부 notepad로 이동
단어 바꾸기
wmi_windows_ 로 전체 변경

확인

대시보드 확인

리눅스 익스포터

설치

익스포터 설치

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz tar xvfz node_exporter-1.6.1.linux-amd64.tar.gz cd node_exporter-1.6.1.linux-amd64
Bash
복사

실행

./node_exporter &
Bash
복사

서비스로 등록

서비스 파일 작성

sudo vi /etc/systemd/system/node_exporter.service
Bash
복사
아래 내용 작성
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=root ExecStart=/root/node_exporter-1.6.1.linux-amd64/node_exporter [Install] WantedBy=default.target
Bash
복사

서비스 활성화 및 실행

sudo systemctl daemon-reload sudo systemctl start node_exporter sudo systemctl enable node_exporter
Bash
복사

프로메테우스 설정 (MON 서버)

prometheus.yml 수정

sudo vi /etc/prometheus/prometheus.yml
Bash
복사
아래 내용 추가
scrape_configs: - job_name: 'node_exporter' static_configs: - targets: ['<웹 서버 IP>:9100']
Bash
복사

재시작

sudo systemctl restart prometheus
Bash
복사

대시보드 설정

대시보드 임포트

ID : 1860

Node Exporter 상태 확인

http://<모니터링 서버 IP>:9090/targets 접속