prometheus监控部署使用

这个文档主要学习了fabric设计到的监控系统部署和使用

 

什么是TSDB

时间序列数据库的特点

大部分时间都是写入操作。

写入操作几乎是顺序添加,大多数时候数据到达后都以时间排序。

写操作很少写入很久之前的数据,也很少更新数据。大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库。

删除操作一般为区块删除,选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据。

基本数据大,一般超过内存大小。一般选取的只是其一小部分且没有规律,缓存几乎不起任何作用。

读操作是十分典型的升序或者降序的顺序读。

高并发的读操作十分常见。

 

什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。

2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。Prometheus目前在开源社区相当活跃。

Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

 

基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等

 

组件介绍

Prometheus 生态系统包含了几个关键的组件:Prometheus server、Pushgateway、Alertmanager、Web UI 等,其中最核心的组件是 Prometheus server ,它负责收集和存储指标数据,支持表达式查询,和告警的生成。

 

Prometheus安装方法一:

yum -y install wget gcc-c++

wget https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz

tar xf prometheus-2.12.0.linux-amd64.tar.gz

chown -R root.root prometheus-2.12.0.linux-amd64

mv prometheus-2.12.0.linux-amd64 /usr/local/prometheus

cd /usr/local/prometheus/

./prometheus --config.file=prometheus.yml &S

 

Prometheus安装方法二:使用 Docker 镜像安装Prometheus server(推荐)

[root@localhost ~]# mkdir prometheus

chmod 777 -R prometheus

vim prometheus.yml

global:

  scrape_interval: 15s

  scrape_timeout: 10s

  evaluation_interval: 15s

alerting:

  alertmanagers:

  - static_configs:

    - targets: []

    scheme: http

    timeout: 10s

    api_version: v1

scrape_configs:

- job_name: prometheus

  honor_timestamps: true

  scrape_interval: 15s

  scrape_timeout: 10s

  metrics_path: /metrics

  scheme: http

  static_configs:

  - targets:

    - localhost:9090

 

启动:(一般要指定配置文件,因为后续添加监控节点需要调整)

docker run -d -p 9090:9090 -v /root/prometheus:/etc/prometheus --name prometheus  prom/prometheus

 

#可以通过 docker inspect 命名看看容器在运行时默认的参数

例如:docker inspect prometheus浏览器访问:http://localhost:3000/ 进入Prometheus的登陆页面。

prometheus监控部署使用_第1张图片

安装grafana

docker run --name grafana -d -p 3000:3000 grafana/Grafana

浏览器访问:http://localhost:3000/ 进入 Grafana 的登陆页面,输入默认的用户名和密码(admin/admin),第一次登陆会强制要求修改密码。

prometheus监控部署使用_第2张图片

prometheus监控部署使用_第3张图片

点击添加数据源:

prometheus监控部署使用_第4张图片

#要注意的是,这里的 Access 指的是 Grafana 访问数据源的方式,有 Browser 和 Proxy 两种方式。Browser 方式表示当用户访问 Grafana 面板时,浏览器直接通过 URL 访问数据源的;而 Proxy 方式表示浏览器先访问 Grafana 的某个代理接口(接口地址是 /api/datasources/proxy/ ),由 Grafana 的服务端来访问数据源的 URL,如果数据源是部署在内网,用户通过浏览器无法直接访问时,这种方式非常有用。

 

导入三个仪表盘:

prometheus监控部署使用_第5张图片

Home位置点击查看刚刚导入的Prometheus2.0酷炫面板:

prometheus监控部署使用_第6张图片

 

以docker方式安装 alertmanager(报警)

docker run --name alertmanager -d  -p  9093:9093  prom/alertmanager

 

使用 Exporter 收集指标

node-exporter监控服务器(监控服务器CPU、内存、磁盘、I/O等信息,首先需要安装node_exporter。node_exporter的作用是用于机器系统数据收集)

源码安装exporter(官方推荐)

wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz

tar xvfz node_exporter-0.16.0.linux-amd64.tar.gz

cd node_exporter-0.16.0.linux-amd64

./node_exporter &

 

docker安装exporter

docker run -d -p 9100:9100 --name node-exporter prom/node-exporter

浏览器访问http://192.168.2.221:9100/metrics/metrics

返回很多指标数据,说明能正常获取服务器指标。

 

#一般情况下,node_exporter 都是直接运行在要收集指标的服务器上的,官方不推荐用 Docker 来运行 node_exporter。如果逼不得已一定要运行在 Docker 里,要特别注意,这是因为 Docker 的文件系统和网络都有自己的 namespace,收集的数据并不是宿主机真实的指标。可以使用一些变通的方法,比如运行 Docker 时加上下面这样的参数:

docker run -d \

  --net="host" \

  --pid="host" \

  -v "/:/host:ro,rslave" \

  quay.io/prometheus/node-exporter \

  --path.rootfs /host

 

如果一切 OK,我们可以修改 Prometheus 的配置文件,将服务器加到 scrape_configs 中:

vim /root/prometheus/prometheus.yml

global:

  scrape_interval: 15s

  scrape_timeout: 10s

  evaluation_interval: 15s

alerting:

  alertmanagers:

  - static_configs:

    - targets: []

    scheme: http

    timeout: 10s

    api_version: v1

scrape_configs:

- job_name: prometheus

  honor_timestamps: true

  scrape_interval: 15s

  scrape_timeout: 10s

  metrics_path: /metrics

  scheme: http

  static_configs:

  - targets:

    - localhost:9090

- job_name: 'server'

  static_configs:

  - targets:

    - 192.168.2.221:9100

 

修改配置后,需要重启 Prometheus 服务,或者发送 HUP 信号也可以让 Prometheus 重新加载配置:

docker restart prometheus

#killall -HUP prometheus

在 Prometheus Web UI 的 Status -> Targets 中,可以看到新加的服务器:

在 Graph 页面的指标下拉框可以看到很多名称以 node 开头的指标,譬如我们输入 node_load1 观察服务器负载:

prometheus监控部署使用_第7张图片

grafana查看node-exporter监控:

先下载再导入

下载json文件:https://grafana.com/grafana/dashboards

prometheus监控部署使用_第8张图片

prometheus监控部署使用_第9张图片

prometheus监控部署使用_第10张图片

prometheus监控部署使用_第11张图片

 

prometheus监控部署使用_第12张图片

提示插件未安装,解决方法如下:

dockser stop Grafana

改为yum安装:

vim /etc/yum.repos.d/grafana.repo

[grafana]

name=grafana

baseurl=https://packages.grafana.com/oss/rpm

repo_gpgcheck=1

enabled=1

gpgcheck=1

gpgkey=https://packages.grafana.com/gpg.key

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

 

yum -y install grafana

systemctl start grafana-server

安装插件:

grafana-cli plugins install grafana-piechart-panel

systemctl restart grafana-server

prometheus监控部署使用_第13张图片

#附加kubernetes应用安装:

prometheus监控部署使用_第14张图片

prometheus监控部署使用_第15张图片

 

 

你可能感兴趣的:(监控)