Prometheus + Grafana监控平台
—、Prometheus简介
1.Prometheus特点
2.Prometheus架构
二、部署Prometheus + Grafana监控平台
1.安装Docker
2安装 Prometheus
3.安装 Grafana
4.安装 Node_exporter
5.配置Prometheus 监控Node节点
1)修改Prometheus主配置文件
2)重启Prometheus容器
6.配置Prometheus + Grafana
一、Prometheus简介
Prometheus(普罗米修斯R)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker。
Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。
1.Prometheus特点
- 多维数据模型(有metric名称和键值对确定的时间序列)
- 灵活的查询语言
- 不依赖分布式存储。
- 通过pull方式采集时间序列,通过http 协议传输。
- 支持通过中介网关的 push时间序列的方式。
- 监控数据通过服务或者静态配置来发现。
- 支持图表和dashboard等多种方式。
2.Prometheus 架构
- Prometheus主程序:主要是负责存储、抓取、聚合、查询方面。
- Alertemanager程序:主要是负责实现报警功能。
- Pushgateway程序:主要是实现接收有Client-push过来的指标数据,在指定的时间间隔,有主程序来抓取。
- *_exporter程序:主要是负责采集物理机、中间件的信息。
二、部署Prometheus + Grafana监控平台
准备工作:
1.安装Docker
1)安装需要的软件包
[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
2)设置Docker的yum源
[root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@Docker ~]# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3)安装 Docker
- 可使用yum list docker-ce --showduplicates | sort -r命令来查看Docker的所有版本。
[root@Docker ~]# yum -y install docker-ce-17.12.1.ce #安装Docker
4)启动Docker并设置开启自启
[root@Docker ~]# systemctl start docker [root@Docker ~]# systemctl enable docker
5)验证Docker是否安装成功
[root@Docker ~]# docker version #查看Docker版本
6)配置Docker加速器
[root@Docker ~]# cat <<END > /etc/docker/daemon.json { "registry-mirrors": [ "https://1nj0zren.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "http://f1361db2.m.daocloud.io", "https://registry.docker-cn.com" ] } END [root@Docker ~]# systemctl daemon-reload #重新加载systemd配置 [root@Docker ~]# systemctl restart docker #重启Docker
2.安装Prometheus
[root@Docker ~]# docker pull prom/prometheus [root@Docker ~]# docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus
容器创建成功后,即可通过浏览器访问http: / /192.168.1.1:909o来进行验证
3.安装Grafana
- Grafana是一个跨平台开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
[root@Docker ~]# docker pull grafana/grafana [root@Docker ~]# docker run -itd --name=grafana \ --restart=always \ -p 3000:3000 \ -v $PWD/grafana-storage:/var/lib/grafana \ grafana/grafana
容器创建成功后,即可通过浏览器访问http:/ /192.168.1.1:3000来进行验证
4.安装Node_exporter
- 因为Prometheus 本身不具备监控功能,所以想要通过Prometheus 收集数据的话,需要安装对应的exporter。
[root@Docker ~]# docker pull prom/node-exporter [root@Docker ~]# docker run -itd --name=node-exporter \ --restart=always \ -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ prom/node-exporter
容器创建成功后,即可通过浏览器访问http://192.168.1.1:9100/metrics来查看监控收集的数据
5.配置 Prometheus 监控Node节点
1)修改Prometheus主配置文件
[root@Docker ~]# docker cp prometheus:/etc/prometheus/prometheus.yml $PWD [root@Docker ~]# vim prometheus.yml 在Prometheus配置文件按以下内容修改: 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'] labels: instance: prometheus - job_name: linux static_configs: - targets: ['192.168.1.1:9100'] #被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开) labels: instance: localhost [root@Docker ~]# docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml
2)重启Prometheus容器
[root@Docker ~]# docker restart prometheus
6.配置prometheus+Grafana
使用浏览器访问http:/ /192.168.1.1:3000来将Node节点监控
- Grafana官方提供模板地址: https://grafana.com/grafana/dashboards