Grafana와 Prometheus
12286 단어 node_exporterCentOSprometheus
VirtualBox 6
게스트 OS: CentOS Linux release 7.5.1804 (Core)
가상 머신의 설정 -> 네트워크 설정
과제: NAT
[고급] -> [포트 포워딩]
SSH: TCP 1022 -> 22
Promethus GUI: TCP 19090 -> 9090
Grafana GUI: TCP 13000 -> 3000
모듈 버전 및 패키지
Prometheus: 2.14.0
꾸러미: prometheus-2.14.0.linux-amd64.tar.gz
Node exporter:0.18.1
꾸러미: node_exporter-0.18.1.linux-amd64.tar.gz
Grafana: 6.4.4
꾸러미: grafana-6.4.4-1.x86_64.rpm
CentOS 설정
firewalld에서 http https 허용
Firewall 참고
$ systemctl status firewalld # active (runnig)
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
# ポート許可
$ sudo firewall-cmd --permanent --add-port=22/tcp
$ sudo firewall-cmd --permanent --add-port=9090/tcp
$ sudo firewall-cmd --permanent --add-port=9100/tcp
$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --list-ports
$ sudo firewall-cmd --reload
$ sudo systemctl stop firewalld # 以下検証環境
$ sudo systemctl is-enabled firewalld # enabledになっていたら下記を実施
$ sudo systemctl disable firewalld
$ sudo systemctl is-enabled firewalld
Prometheus 설치
설치 작업
공식 사이트
Owner 등은 모두 root
$ cd /tmp
$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz
$ tar xvzf prometheus-2.14.0.linux-amd64.tar.gz
$ sudo cp -r prometheus-2.14.0.linux-amd64 /etc/prometheus
Prometheus 시작 스크립트 설정, 로그 회전 설정 설정 참고
$ sudo /etc/init.d/prometheus start
$ sudo /etc/init.d/prometheus status
$ sudo /etc/init.d/prometheus stop
Prometheus에 대한 액세스 확인
http://localhost:19090/graph
PromQL 실행 확인
Expression이 표시되는 프레임에 쿼리를 입력하고 Execute를 클릭하여 실행합니다.
올라가는 서버 확인
Expression : up
Element: up{instance="localhost:9090",job="prometheus"}
Value: 1
사용 중 메모리 확인
(기본 단위는 바이트, 초 등)
Expression : process_resident_memory_bytes
Element: process_resident_memory_bytes{instance="localhost:9090",job="prometheus"}
Value: 49057792
Exporter
사용되는 포트 목록 : port allocations
Node exporter 설치
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvzf node_exporter-0.18.1.linux-amd64.tar.gz
$ sudo cp -r node_exporter-0.18.1.linux-amd64 /etc/node_exporter
Node exporter의 기동 스크립트 설정, 로그 로테이트 설정 참조
$ sudo vim /etc/rc.d/init.d/node_exporter # 起動スクリプト作成
$ sudo chmod +x /etc/rc.d/init.d/node_exporter
$ sudo mkdir /var/log/node_exporter
$ sudo /etc/init.d/node_exporter start # 起動スクリプトにてスタート
$ sudo /etc/init.d/node_exporter status
$ sudo chkconfig node_exporter on
$ sudo vim /etc/logrotate.d/node_exporter # ログローテート設定作成
$ sudo vim /etc/prometheus/prometheus.yml # Prometheus 設定ファイルに追記
$ sudo /etc/prometheus/promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
$ sudo /etc/init.d/prometheus reload
Prometheus 콘솔에서 다음을 실행 및 확인
Expression : node_memory_Cached_bytes
Element: node_memory_Cached_bytes{instance="localhost:9100",job="node"}
Value: 996540416
Grafana 설치 및 Prometheus와 협력
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
http://localhost:13000/ 방문
admin/admin으로 로그인하여 초기 암호 변경
Datasource 추가
[Create your first data source] -> [Add data source] -> [Prometheus] -> [Select]
[Save & Test]를 클릭하면 "Data source is working"이 표시되었다.
대시보드 만들기
Dashboards - Official & community built dashboards에서 json 파일을 다운로드합니다.
왼쪽의 플러스 마크에서 [Import] -> [Upload .json file]을 선택하여 업로드합니다.
환경 파일
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
구성
/etc/grafana/grafana.ini
PromQL
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:
Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
Prometheus: 2.14.0
꾸러미: prometheus-2.14.0.linux-amd64.tar.gz
Node exporter:0.18.1
꾸러미: node_exporter-0.18.1.linux-amd64.tar.gz
Grafana: 6.4.4
꾸러미: grafana-6.4.4-1.x86_64.rpm
CentOS 설정
firewalld에서 http https 허용
Firewall 참고
$ systemctl status firewalld # active (runnig)
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
# ポート許可
$ sudo firewall-cmd --permanent --add-port=22/tcp
$ sudo firewall-cmd --permanent --add-port=9090/tcp
$ sudo firewall-cmd --permanent --add-port=9100/tcp
$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --list-ports
$ sudo firewall-cmd --reload
$ sudo systemctl stop firewalld # 以下検証環境
$ sudo systemctl is-enabled firewalld # enabledになっていたら下記を実施
$ sudo systemctl disable firewalld
$ sudo systemctl is-enabled firewalld
Prometheus 설치
설치 작업
공식 사이트
Owner 등은 모두 root
$ cd /tmp
$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz
$ tar xvzf prometheus-2.14.0.linux-amd64.tar.gz
$ sudo cp -r prometheus-2.14.0.linux-amd64 /etc/prometheus
Prometheus 시작 스크립트 설정, 로그 회전 설정 설정 참고
$ sudo /etc/init.d/prometheus start
$ sudo /etc/init.d/prometheus status
$ sudo /etc/init.d/prometheus stop
Prometheus에 대한 액세스 확인
http://localhost:19090/graph
PromQL 실행 확인
Expression이 표시되는 프레임에 쿼리를 입력하고 Execute를 클릭하여 실행합니다.
올라가는 서버 확인
Expression : up
Element: up{instance="localhost:9090",job="prometheus"}
Value: 1
사용 중 메모리 확인
(기본 단위는 바이트, 초 등)
Expression : process_resident_memory_bytes
Element: process_resident_memory_bytes{instance="localhost:9090",job="prometheus"}
Value: 49057792
Exporter
사용되는 포트 목록 : port allocations
Node exporter 설치
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvzf node_exporter-0.18.1.linux-amd64.tar.gz
$ sudo cp -r node_exporter-0.18.1.linux-amd64 /etc/node_exporter
Node exporter의 기동 스크립트 설정, 로그 로테이트 설정 참조
$ sudo vim /etc/rc.d/init.d/node_exporter # 起動スクリプト作成
$ sudo chmod +x /etc/rc.d/init.d/node_exporter
$ sudo mkdir /var/log/node_exporter
$ sudo /etc/init.d/node_exporter start # 起動スクリプトにてスタート
$ sudo /etc/init.d/node_exporter status
$ sudo chkconfig node_exporter on
$ sudo vim /etc/logrotate.d/node_exporter # ログローテート設定作成
$ sudo vim /etc/prometheus/prometheus.yml # Prometheus 設定ファイルに追記
$ sudo /etc/prometheus/promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
$ sudo /etc/init.d/prometheus reload
Prometheus 콘솔에서 다음을 실행 및 확인
Expression : node_memory_Cached_bytes
Element: node_memory_Cached_bytes{instance="localhost:9100",job="node"}
Value: 996540416
Grafana 설치 및 Prometheus와 협력
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
http://localhost:13000/ 방문
admin/admin으로 로그인하여 초기 암호 변경
Datasource 추가
[Create your first data source] -> [Add data source] -> [Prometheus] -> [Select]
[Save & Test]를 클릭하면 "Data source is working"이 표시되었다.
대시보드 만들기
Dashboards - Official & community built dashboards에서 json 파일을 다운로드합니다.
왼쪽의 플러스 마크에서 [Import] -> [Upload .json file]을 선택하여 업로드합니다.
환경 파일
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
구성
/etc/grafana/grafana.ini
PromQL
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:
Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
$ systemctl status firewalld # active (runnig)
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
# ポート許可
$ sudo firewall-cmd --permanent --add-port=22/tcp
$ sudo firewall-cmd --permanent --add-port=9090/tcp
$ sudo firewall-cmd --permanent --add-port=9100/tcp
$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --list-ports
$ sudo firewall-cmd --reload
$ sudo systemctl stop firewalld # 以下検証環境
$ sudo systemctl is-enabled firewalld # enabledになっていたら下記を実施
$ sudo systemctl disable firewalld
$ sudo systemctl is-enabled firewalld
설치 작업
공식 사이트
Owner 등은 모두 root
$ cd /tmp
$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz
$ tar xvzf prometheus-2.14.0.linux-amd64.tar.gz
$ sudo cp -r prometheus-2.14.0.linux-amd64 /etc/prometheus
Prometheus 시작 스크립트 설정, 로그 회전 설정 설정 참고
$ sudo /etc/init.d/prometheus start
$ sudo /etc/init.d/prometheus status
$ sudo /etc/init.d/prometheus stop
Prometheus에 대한 액세스 확인
http://localhost:19090/graph
PromQL 실행 확인
Expression이 표시되는 프레임에 쿼리를 입력하고 Execute를 클릭하여 실행합니다.
올라가는 서버 확인
Expression : up
Element: up{instance="localhost:9090",job="prometheus"}
Value: 1
사용 중 메모리 확인
(기본 단위는 바이트, 초 등)
Expression : process_resident_memory_bytes
Element: process_resident_memory_bytes{instance="localhost:9090",job="prometheus"}
Value: 49057792
Exporter
사용되는 포트 목록 : port allocations
Node exporter 설치
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvzf node_exporter-0.18.1.linux-amd64.tar.gz
$ sudo cp -r node_exporter-0.18.1.linux-amd64 /etc/node_exporter
Node exporter의 기동 스크립트 설정, 로그 로테이트 설정 참조
$ sudo vim /etc/rc.d/init.d/node_exporter # 起動スクリプト作成
$ sudo chmod +x /etc/rc.d/init.d/node_exporter
$ sudo mkdir /var/log/node_exporter
$ sudo /etc/init.d/node_exporter start # 起動スクリプトにてスタート
$ sudo /etc/init.d/node_exporter status
$ sudo chkconfig node_exporter on
$ sudo vim /etc/logrotate.d/node_exporter # ログローテート設定作成
$ sudo vim /etc/prometheus/prometheus.yml # Prometheus 設定ファイルに追記
$ sudo /etc/prometheus/promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
$ sudo /etc/init.d/prometheus reload
Prometheus 콘솔에서 다음을 실행 및 확인
Expression : node_memory_Cached_bytes
Element: node_memory_Cached_bytes{instance="localhost:9100",job="node"}
Value: 996540416
Grafana 설치 및 Prometheus와 협력
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
http://localhost:13000/ 방문
admin/admin으로 로그인하여 초기 암호 변경
Datasource 추가
[Create your first data source] -> [Add data source] -> [Prometheus] -> [Select]
[Save & Test]를 클릭하면 "Data source is working"이 표시되었다.
대시보드 만들기
Dashboards - Official & community built dashboards에서 json 파일을 다운로드합니다.
왼쪽의 플러스 마크에서 [Import] -> [Upload .json file]을 선택하여 업로드합니다.
환경 파일
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
구성
/etc/grafana/grafana.ini
PromQL
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:
Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
Expression이 표시되는 프레임에 쿼리를 입력하고 Execute를 클릭하여 실행합니다.
올라가는 서버 확인
Expression :
up
Element: up{instance="localhost:9090",job="prometheus"}Value: 1
사용 중 메모리 확인
(기본 단위는 바이트, 초 등)
Expression :
process_resident_memory_bytes
Element: process_resident_memory_bytes{instance="localhost:9090",job="prometheus"}Value: 49057792
Exporter
사용되는 포트 목록 : port allocations
Node exporter 설치
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvzf node_exporter-0.18.1.linux-amd64.tar.gz
$ sudo cp -r node_exporter-0.18.1.linux-amd64 /etc/node_exporter
Node exporter의 기동 스크립트 설정, 로그 로테이트 설정 참조
$ sudo vim /etc/rc.d/init.d/node_exporter # 起動スクリプト作成
$ sudo chmod +x /etc/rc.d/init.d/node_exporter
$ sudo mkdir /var/log/node_exporter
$ sudo /etc/init.d/node_exporter start # 起動スクリプトにてスタート
$ sudo /etc/init.d/node_exporter status
$ sudo chkconfig node_exporter on
$ sudo vim /etc/logrotate.d/node_exporter # ログローテート設定作成
$ sudo vim /etc/prometheus/prometheus.yml # Prometheus 設定ファイルに追記
$ sudo /etc/prometheus/promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
$ sudo /etc/init.d/prometheus reload
Prometheus 콘솔에서 다음을 실행 및 확인
Expression : node_memory_Cached_bytes
Element: node_memory_Cached_bytes{instance="localhost:9100",job="node"}
Value: 996540416
Grafana 설치 및 Prometheus와 협력
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
http://localhost:13000/ 방문
admin/admin으로 로그인하여 초기 암호 변경
Datasource 추가
[Create your first data source] -> [Add data source] -> [Prometheus] -> [Select]
[Save & Test]를 클릭하면 "Data source is working"이 표시되었다.
대시보드 만들기
Dashboards - Official & community built dashboards에서 json 파일을 다운로드합니다.
왼쪽의 플러스 마크에서 [Import] -> [Upload .json file]을 선택하여 업로드합니다.
환경 파일
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
구성
/etc/grafana/grafana.ini
PromQL
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:
Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvzf node_exporter-0.18.1.linux-amd64.tar.gz
$ sudo cp -r node_exporter-0.18.1.linux-amd64 /etc/node_exporter
Node exporter의 기동 스크립트 설정, 로그 로테이트 설정 참조
$ sudo vim /etc/rc.d/init.d/node_exporter # 起動スクリプト作成
$ sudo chmod +x /etc/rc.d/init.d/node_exporter
$ sudo mkdir /var/log/node_exporter
$ sudo /etc/init.d/node_exporter start # 起動スクリプトにてスタート
$ sudo /etc/init.d/node_exporter status
$ sudo chkconfig node_exporter on
$ sudo vim /etc/logrotate.d/node_exporter # ログローテート設定作成
$ sudo vim /etc/prometheus/prometheus.yml # Prometheus 設定ファイルに追記
$ sudo /etc/prometheus/promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
$ sudo /etc/init.d/prometheus reload
Prometheus 콘솔에서 다음을 실행 및 확인
Expression :
node_memory_Cached_bytes
Element: node_memory_Cached_bytes{instance="localhost:9100",job="node"}Value: 996540416
Grafana 설치 및 Prometheus와 협력
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
http://localhost:13000/ 방문
admin/admin으로 로그인하여 초기 암호 변경
Datasource 추가
[Create your first data source] -> [Add data source] -> [Prometheus] -> [Select]
[Save & Test]를 클릭하면 "Data source is working"이 표시되었다.
대시보드 만들기
Dashboards - Official & community built dashboards에서 json 파일을 다운로드합니다.
왼쪽의 플러스 마크에서 [Import] -> [Upload .json file]을 선택하여 업로드합니다.
환경 파일
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
구성
/etc/grafana/grafana.ini
PromQL
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:
Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
$ wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
$ sudo yum install initscripts urw-fonts
$ sudo rpm -Uvh grafana-6.4.4-1.x86_64.rpm
$ sudo /etc/init.d/grafana-server start
$ sudo chkconfig grafana-server on
$ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
이하, node_exporter를 넣은 서버(localhost:9100)에 관한 수신(bytes)의 출력 결과.
node_network_receive_bytes_total
출력 예:Element
Value
node_network_receive_bytes_total{device="enp0s3",instance="localhost:9100",job="node"}
54247
node_network_receive_bytes_total{device="lo",instance="localhost:9100",job="node"}
354136
node_network_receive_bytes_total{device="virbr0",instance="localhost:9100",job="node"}
0
node_network_receive_bytes_total{device="virbr0-nic",instance="localhost:9100",job="node"}
0
라벨의 정규 표현 예
virbr이 붙는 device 정보를 모두 출력
node_network_receive_bytes_total{device=~"virbr.+"}
device가 virbr0 or virbr0-nic의 것을 출력
node_network_receive_bytes_total{device=~"virbr0|virbr0-nic"}
metric 정규식
node_network_receive_bytes_total과 node_network_transmit_bytes_total을 모두 쿼리합니다.
{__name__=~"node_network_(receive|transmit)_bytes_total"}
rate() 지정된 시간별 값
node_network_receive_bytes_total과 같이 시간에 비례하여 데이터가 축적되어 가기 때문에, 시간마다의 데이터를 출력하고 싶은 경우에 사용.
10분마다 값
rate(node_network_receive_bytes_total[10m])
랭킹
상위 5개의 데이터를 반환한다.
topk(5, max_over_time(node_network_receive_bytes_total[30m]))
연산자
아래와 같은 연산자도 기술 가능.
rate(node_network_transmit_bytes_total[10m])+ 1000 / 10 * 20 - 5 ^ 2 % 2
비교 연산자
==
, !=
, >
, >=
, <
, <=
가 사용 가능.rate(node_network_receive_bytes_total[10m]) !=0
rate(node_network_receive_bytes_total[10m]) <= 1000
그룹화
instance="localhost:9100"의 것을 그룹화해 합계치를 취득한다.
sum(node_network_receive_bytes_total) by (instance)
sum(rate(node_network_receive_bytes_total[5m])) by (instance)
게이지
max_over_time
, min_over_time
, avg_over_time
functions.max_over_time(node_memory_MemFree_bytes[5m])
참고로 한 사이트
Reference
이 문제에 관하여(Grafana와 Prometheus), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/8ato2h1/items/31287fbeff9f02525bb8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)