GitHub网址:https://github.com/prometheus/prometheus
软件下载地址:https://prometheus.io/download/
第三方中文介绍:https://github.com/1046102779/prometheus
prometheus介绍
Prometheus是一个开源的系统监控和报警的工具包,最初由SoundCloud发布。
特点:
- 多维数据模型(有metric名称和键值对确定的时间序列)
- 灵活的查询语言
- 不依赖分布式存储
- 通过pull方式采集时间序列,通过http协议传输
- 支持通过中介网关的push时间序列的方式
- 监控数据通过服务或者静态配置来发现
- 支持图表和dashboard等多种方式
组件:
- Prometheus 主程序,主要是负责存储、抓取、聚合、查询方面。
- Alertmanager 程序,主要是负责实现报警功能。
- Pushgateway 程序,主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。
- *_exporter 这类是不同系统已经实现了的集成。
架构:
prometheus部署
1、下载安装包prometheus-1.6.2.linux-amd64.tar.gz
https://github.com/prometheus/prometheus/releases/tag/v1.6.2
2、解压
1
2
|
tar - xvf prometheus - 1.6 . 2.linux - amd64.tar.gz cd prometheus - 1.6 . 2.linux - amd64 |
3、配置prometheus.yml
- scrape_interval: 15s # 默认15秒到目标处抓取数据
4、启动
1
2
3
|
nohup . / prometheus - config. file = prometheus.yml & 或 nohup / opt / prometheus - 1.6 . 2.linux - amd64 / prometheus & |
5、WEB页面访问http://localhost:9090/ ,可以看到Prometheus的graph页面。
备注:参考文章 http://www.cnblogs.com/vovlie/p/Prometheus_install.html
grafana部署
http://docs.grafana.org/installation/rpm/
1、安装
1
2
3
|
wget https: / / s3 - us - west - 2.amazonaws .com / grafana - releases / release / grafana - 4.2 . 0 - 1.x86_64 .rpm sudo yum install initscripts fontconfig - y sudo rpm - Uvh grafana - 4.2 . 0 - 1.x86_64 .rpm |
2、启动服务service grafana-server start
3、访问页面http://localhost:3000 ,默认账号、密码admin/admin
4、Prometheus 和 Grafana 的对接
https://prometheus.io/docs/visualization/grafana/
参考文章:http://www.cnblogs.com/sfnz/p/6566951.html
MySQL的dashboards(Grafana)
https://github.com/percona/grafana-dashboards
1
2
|
git clone https: / / github.com / percona / grafana - dashboards.git cp - r grafana - dashboards / dashboards / var / lib / grafana / dashboards |
编辑Grafana配置文件
1
2
3
4
|
vi / etc / grafana / grafana.ini [dashboards.json] enabled = true path = / var / lib / grafana / dashboards |
重启service grafana-server restart
mysql监控部署
在需要监控的mysql上安装 node_exporter和 mysqld_exporter
下载 https://prometheus.io/download/
1
2
3
|
tar - xvf node_exporter - 0.14 . 0.linux - amd64.tar.gz cd node_exporter - 0.14 . 0.linux - amd64 nohup . / node_exporter & |
1
2
3
4
5
6
7
8
9
|
tar - xvf mysqld_exporter - 0.10 . 0.linux - amd64.tar.gz cd mysqld_exporter - 0.10 . 0.linux - amd64 vi .my.cnf [client] user = root password = root . / mysqld_exporter - config.my - cnf = ".my.cnf" & |
服务端配置,文件prometheus.yml
1
2
3
4
5
6
7
8
9
10
|
scrape_configs: - job_name: 'prometheus' static_configs: - targets: [ 'localhost:9090' ] - job_name: 'mysql' static_configs: - targets: [ '10.10.83.162:9104' ] labels: instance: db - 10.10 . 83.162 |
redis监控部署
下载 https://github.com/oliver006/redis_exporter/releases
1
2
|
tar - xvf redis_exporter - v0. 11.linux - amd64.tar.gz nohup / opt / redis_exporter - redis.addr "redis://10.10.83.162:16379" & |
grafana配置
下载 redis_exporter-0.11.tar.gz
1
2
3
|
tar - xvf redis_exporter - 0.11 .tar.gz cd redis_exporter - 0.11 cp * json / var / lib / grafana / dashboards / |
服务端配置,文件prometheus.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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: 'mysql' static_configs: - targets: [ '10.10.83.162:9104' ] labels: instance: db - 10.10 . 83.162 - job_name: redis_exporter static_configs: - targets: [ '10.10.83.162:9121' ] labels: instance: redis - 10.10 . 83.162 |