Prometheus 와 Grafana 를 이용 하여 Mysql 서버 의 성능 모니터링 에 대한 상세 한 설명
4.567915.HTTP 프로 토 콜 을 통 해 원 격 기계 에서 데 이 터 를 수집 하고 로 컬 순차 데이터 베이스 에 저장 하 는 오픈 소스 서비스 모니터링 시스템 이다.그것 은 간단 한 웹 인터페이스,강력 한 검색 언어,HTTP 인터페이스 등 을 제공 했다.Prometheus 는 원 격 기기 에 설 치 된 exporter 를 통 해 모니터링 데 이 터 를 수집 합 니 다.여 기 는 다음 과 같은 두 개의 exporter 를 사 용 했 습 니 다.
플러그 인 을 통 해 지원 하 는 데이터 원본 을 확장 할 수 있 습 니 다.
구조 도
다음은 이번 배치 의 구성 도 입 니 다.
Prometheus 설치 및 실행
1.Monitor 에 Prometheus 설치
/opt/prometheus 에 설치
$ wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz
$ tar zxvf prometheus-1.5.2.linux-amd64.tar.gz
$ mv prometheus-1.5.2.linux-amd64 /opt/prometheus
2.설치 항목 에서 프로필 prometheus.yml 편집
vim /opt/prometheus/prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
#
- job_name: linux
static_configs:
- targets: ['172.30.251.214:9100']
labels:
instance: db1
- job_name: mysql
static_configs:
- targets: ['172.30.251.214:9104']
labels:
instance: db1
그 중에서 172.3.0251.214 는 MySQL 의 IP 이 고 포트 는 해당 하 는 exporter 의 감청 포트 입 니 다.3.Prometheus 시작
[loya@centos6 prometheus]$ ./prometheus
INFO[0000] Starting prometheus (version=1.5.2, branch=master, revision=bd1182d29f462c39544f94cc822830e1c64cf55b) source=main.go:75
INFO[0000] Build context (go=go1.7.5, user=root@a8af9200f95d, date=20170210-14:41:22) source=main.go:76
INFO[0000] Loading configuration file prometheus.yml source=main.go:248
INFO[0000] Loading series map and head chunks... source=storage.go:373
INFO[0000] 0 series loaded. source=storage.go:378
INFO[0000] Starting target manager... source=targetmanager.go:61
INFO[0000] Listening on :9090 source=web.go:259
Prometheus 에 웹 인터페이스 가 내장 되 어 있 습 니 다.http://monitor_host:9090 방문:Status->Targets 페이지 에서 우리 가 설정 한 두 개의 Target 을 볼 수 있 습 니 다.그들의 State 는 DOWN 입 니 다.
4.다음 감시 장치 에 exporter 를 설치 하고 실행 해 야 합 니 다.
exporters 를 다운로드 하고 압축 풀기:
$ mkdir /opt/prometheus/prometheus_exporters
$ cd /opt/prometheus/prometheus_exporters
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0-rc.1/node_exporter-0.14.0-rc.1.linux-amd64.tar.gz
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.9.0/mysqld_exporter-0.9.0.linux-amd64.tar.gz
$ tar zxvf node_exporter-0.14.0-rc.1.linux-amd64.tar.gz
$ tar zxvf mysqld_exporter-0.9.0.linux-amd64.tar.gz
# /opt/prometheus/prometheus_exporters
$ ll /opt/prometheus/prometheus_exporters
total 24464
-rwxr-xr-x 1 root root 12182376 Feb 23 19:01 mysqld_exporter
-rwxr-xr-x 1 root root 12862209 Feb 23 19:01 node_exporter
node 실행exporter
$ cd /opt/prometheus/prometheus_exporters
$ ./node_exporter
INFO[0000] Starting node_exporter (version=0.14.0-rc.1, branch=master, revision=5a07f4173d97fa0dd307db5bd3c2e6da26a4b16e) source="node_exporter.go:136"
INFO[0000] Build context (go=go1.7.4, user=root@ed143c8f2fcd, date=20170116-16:00:03) source="node_exporter.go:137"
INFO[0000] No directory specified, see --collector.textfile.directory source="textfile.go:57"
INFO[0000] Enabled collectors: source="node_exporter.go:156"
INFO[0000] - entropy source="node_exporter.go:158"
INFO[0000] - loadavg source="node_exporter.go:158"
INFO[0000] - stat source="node_exporter.go:158"
INFO[0000] - diskstats source="node_exporter.go:158"
INFO[0000] - textfile source="node_exporter.go:158"
INFO[0000] - vmstat source="node_exporter.go:158"
INFO[0000] - meminfo source="node_exporter.go:158"
INFO[0000] - filefd source="node_exporter.go:158"
INFO[0000] - filesystem source="node_exporter.go:158"
INFO[0000] - mdadm source="node_exporter.go:158"
INFO[0000] - netdev source="node_exporter.go:158"
INFO[0000] - sockstat source="node_exporter.go:158"
INFO[0000] - time source="node_exporter.go:158"
INFO[0000] - zfs source="node_exporter.go:158"
INFO[0000] - edac source="node_exporter.go:158"
INFO[0000] - hwmon source="node_exporter.go:158"
INFO[0000] - netstat source="node_exporter.go:158"
INFO[0000] - uname source="node_exporter.go:158"
INFO[0000] - conntrack source="node_exporter.go:158"
INFO[0000] Listening on :9100 source="node_exporter.go:176"
mysqld_exporter 는 MySQL 에 연결 해 야 하기 때문에 MySQL 권한 이 필요 합 니 다.사용 자 를 만 들 고 필요 한 권한 을 부여 합 니 다.
mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'prom'@'localhost' identified by 'abc123';
mysql> GRANT SELECT ON performance_schema.* TO 'prom'@'localhost';
my.my.cnf 파일 을 만 들 고 my sqld 를 실행 합 니 다.exporter:
$ cd /opt/prometheus/prometheus_exporters
$
$ cat << EOF > .my.cnf
[client]
user=prom
password=abc123
EOF
$
$ ./mysqld_exporter -config.my-cnf=".my.cnf"
INFO[0000] Starting mysqld_exporter (version=0.9.0, branch=master, revision=8400af20ccdbf6b5e0faa2c925c56c48cd78d70b) source=mysqld_exporter.go:432
INFO[0000] Build context (go=go1.6.3, user=root@2c131c66ca20, date=20160926-18:28:09) source=mysqld_exporter.go:433
INFO[0000] Listening on :9104 source=mysqld_exporter.go:451
Prometheus 웹 인터페이스 Status->Targets 로 돌아 가면 두 개의 Target 상태 가 UP 로 변 한 것 을 볼 수 있 습 니 다.Grafana 설치 및 실행
설치:
Grafana 의 설치Prometheus비교적 뚜렷 하 며 여 기 는 더 이상 군말 하지 않 습 니 다.
설정:
설정 파일/etc/grafana/grafana.ini 를 편집 하고 dashboards.json 단락 의 두 매개 변수의 값 을 수정 합 니 다.
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
Prometheus 대시 보드 가 져 오기:
$ git clone https://github.com/percona/grafana-dashboards.git
$ cp -r grafana-dashboards/dashboards /var/lib/grafana
시작:
$ /etc/init.d/grafana-server start
통과 하 다.http://monitor_host:3000 Grafana 웹 인터페이스 방문(계 정/비밀 번 호 는 admin/admin)로그 인 후 Data Sources 페이지 를 통 해 데이터 원본 추가:
그 다음 에 서로 다른 계기판(왼쪽 상단)과 시간 대(오른쪽 상단)를 선택 하여 도 표를 나 타 낼 수 있다.
System Overview:
MySQL Overview:
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rancher Preview 2.3.0-alpha5 Istio kiali Jaeger Promethesu+GrafanaRancher2.3 Preview로서, Istio kiali Jaeger 그리고 2.2에서 동봉된 Prometheus+Grafana와는 별도로 기능으로서 추가되었습니다. Bookinfo 애플리케이션을 기반으로 시도해...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.