docker部署监控: prometheus + Grafana(超详细)

前言

之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

prometheus 监控原理

1、prometheus :虽然说是监控平台,但是实际上是一套数据库
2、mysql_exporter: 可以理解成程序或者软件,他是工作在我们要监控的目标服务器上,主要是用于监控mysql的数据。
3、node_exporter: 他的作用主要是收集性能测试的数据,如cpu、内存磁盘网络等信息,然后将数据保存到prometheus,相当于将数据存入到数据库中。
4、prometheus 只能用于做数据存储,不能做展示,因此我们需要用到grafana组件。
5、grafana 主要是用于数据展示,并且可以做到定时读取数据
docker部署监控: prometheus + Grafana(超详细)_第1张图片下载docker镜像

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

启动监控Linux的exporter

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  prom/node-exporter

exporter测试访问地址
http://localhost:9100/metrics
docker部署监控: prometheus + Grafana(超详细)_第2张图片
我们可以看到启动exporter已经成功啦
部署prometheus

首先我们需要创建存放prometheus的文件目录

mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml

配置peometheus.yml

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.31.44':9100']
        labels:
          instance: linux

这里要特别说明下,这里涉及一个坑点,小编我就猜坑了,特此记录下
`在scrape_configs配置项下添加Linux监控的job,其中node_expore的IP千万不要使用localhost,因为使用localhost或者127.0.0.1都是去访问普罗米修斯容器的本身;就会报node_exporter 提示错误 Get “http://localhost:9100/metrics 20”: dial tcp 127.0.0.1:9100: connect: connection refused的错误
docker部署监控: prometheus + Grafana(超详细)_第3张图片
点击上图的url ,跳转的地址也是不正确的
docker部署监控: prometheus + Grafana(超详细)_第4张图片

要使用宿主机的IP+端口,就成功解决报错问题啦

- job_name: linux
    static_configs:
      - targets: ['192.168.31.44':9100']
        labels:
          instance: linux

启动prometheus(将docker的配置文件映射到部署服务器)

 docker run  -d \
  -p 9090:9090 \
  -v /Users/qiao/opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus

prometheus测试访问地址
http://192.168.31.44:9090/graph

  1. 1.点击菜单栏“Status-Targets”,看到页面中有如下node节点,代表prometheus和node_exporter链接成功,
  2. 2.这里可以看到,/opt/prometheus/prometheus.yml 中的 2 个 job 都已经 UP

docker部署监控: prometheus + Grafana(超详细)_第5张图片
配置 grafana 仪表盘
1.在浏览器访问:http://{ip}:3000/
2.输入用户名/密码:admin/admin登录 ,首次会让你设置密码。如果不设置的话,可以直接点击skip
docker部署监控: prometheus + Grafana(超详细)_第6张图片
3.登录之后,会显示下面的页面,点击添加数据源
docker部署监控: prometheus + Grafana(超详细)_第7张图片
选择prometheus
docker部署监控: prometheus + Grafana(超详细)_第8张图片
直接添加监控的服务器ip+端口号,我们之前配置的是默认端口9090,添加点击保存即可,其他的都可以不填。
docker部署监控: prometheus + Grafana(超详细)_第9张图片
点击左边那个 + ,选择 import,
docker部署监控: prometheus + Grafana(超详细)_第10张图片
输入一个大家推荐的 dashboard ID : 1860 ,直接 locad ,就可以看到效果了!
docker部署监控: prometheus + Grafana(超详细)_第11张图片我们也可以导入监控模板
打开 grafana 官网,查找官网提供的 prometheus 监控模板
链接: https://grafana.com/grafana/dashboards.
点击 Linux 服务器监控的中文模板,记录该模板的 id:8919
docker部署监控: prometheus + Grafana(超详细)_第12张图片
将数据更新频率设置为 5s,展示最近 5 分钟的数据,就可以看到实时的、最近 5 分钟的各项性能指标。包含了 CPU、Load、内存、网络、磁盘、IO 耗时等指标。监控数据永久保存,可以随时查看任意时间点内的历史统计数据,非常方便。

docker部署监控: prometheus + Grafana(超详细)_第13张图片

docker部署监控: prometheus + Grafana(超详细)_第14张图片

你可能感兴趣的:(Linux运维,Jmeter性能测试,linux,prometheus,grafana)