linux Prometheus+Grafana 部署配置

Prometheus+grafana部署

简介

Prometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包 。自2012年成立以来,许多公司和组织都采用 Prometheus,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,并且独立于任何公司。为了强调这一点,并澄清 项目的治理结构,Prometheus 于2016年加入 云本地计算基金会,作为Kubernetes之后的第二个托管项目。

特点:

Prometheus 属于一站式监控告警平台,依赖少,功能齐全。 Prometheus 支持对云的或容器的监控,其他系统主要对主机监控。 Prometheus 数据查询语句表现力更强大,内置更强大的统计函数。 Prometheus 在数据存储扩展性以及持久性上没有 InfluxDB,OpenTSDB,Sensu 好。

组件:

Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。

client libraries,用于对接 Prometheus Server, 可以查询和上报数据。

push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。

各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。

用于告警通知管理的 alertmanager 。

Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统, 不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。 Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。 输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、 Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等

linux Prometheus+Grafana 部署配置_第1张图片

从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

它大致使用逻辑是这样:

Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。

当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。

Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的

Alertmanager。Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。

可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

Prometheus四种数据类型

Counter

Counter用于累计值,例如记录请求次数、任务完成数、错误发生次数。一直增加,不会减少。重启进程后,会被重置。 例如:http_response_total{method=”GET”,endpoint=”/api/tracks”} 100,10秒后抓取http_response_total {method=”GET”,endpoint=”/api/tracks”} 100。

Gauge

Gauge常规数值,例如 温度变化、内存使用变化。可变大,可变小。重启进程后,会被重置。 例如: memory_usage_bytes{host=”master-01″} 100 < 抓取值、memory_usage_bytes{host=”master-01″} 30、 memory_usage_bytes{host=”master-01″} 50、memory_usage_bytes{host=”master-01″} 80 < 抓取值。

Histogram

Histogram(直方图)可以理解为柱状图的意思,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。它特别之处是可以对记录的内 容进行分组,提供count和sum全部值的功能。 例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值。

Summary

Summary和Histogram十分相似,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。同样提供 count 和 sum 全部值的功能。 例如:count=7次,sum=7次的值求值。 它提供一个quantiles的功能,可以按%比划分跟踪的结果。例如:quantile取值0.95,表示取采样值里面的95%数据。

 

1、安装prometheus

安装go
[root@tiger ~]# yum -y install go

安装prometheus 服务器端
[root@tiger ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.9.2/prometheus-2.9.2.linux-amd64.tar.gz

[root@tiger ~]# tar xvf prometheus-2.9.2.linux-amd64.tar.gz -C /usr/local/

[root@tiger ~]# vim /usr/local/prometheus-2.9.2.linux-amd64/prometheus.yml

   在里面写清楚监控节点的信息。注意此文件是yml文件,对格式要求很严格。
   主机的9090端口是必须配置的,这是prometheus自带的web界面
   9100是node_exporter的默认端口
   9104是mysqld_exporter默认端口,此服务器上为了测试我也装了mysql。

linux Prometheus+Grafana 部署配置_第2张图片

配置完成后,运行服务:

[root@tiger ~]# cd /usr/local/prometheus-2.9.2.linux-amd64/
[root@tiger ~]# prometheus热加载配置
prometheus启动命令添加参数 --web.enable-lifecycle
然后热重启:curl -XPOST http://localhost:9090/-/reload 
 nohup ./prometheus  --web.enable-lifecycle  &
这样更改配置文件后就不用关闭再启动prometheus了

linux Prometheus+Grafana 部署配置_第3张图片

在被监控的mysql机器上安装对应的exporter官网地址
linux Prometheus+Grafana 部署配置_第4张图片

下载完成在服务器上解压

[root@localhost ~]# tar xvf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
[root@localhost ~]# nohup /usr/local/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter &

然后访问192.168.3.121:9090。可以看到up,此时就实现了用普罗米修斯监控系统参数。

linux Prometheus+Grafana 部署配置_第5张图片

2、安装grafana

[root@tiger ~]# wget https://dl.grafana.com/oss/release/grafana-5.4.0-1.x86_64.rpm

[root@tiger ~]# yum localinstall grafana-5.4.0-1.x86_64.rpm -y

[root@tiger ~]# systemctl start grafana-server

访问192.168.3.121:3000,默认账户密码 admin/admin

linux Prometheus+Grafana 部署配置_第6张图片

linux Prometheus+Grafana 部署配置_第7张图片

linux Prometheus+Grafana 部署配置_第8张图片

linux Prometheus+Grafana 部署配置_第9张图片

linux Prometheus+Grafana 部署配置_第10张图片

linux Prometheus+Grafana 部署配置_第11张图片

回到刚刚的界面,导入进去

linux Prometheus+Grafana 部署配置_第12张图片

linux Prometheus+Grafana 部署配置_第13张图片

linux Prometheus+Grafana 部署配置_第14张图片

linux Prometheus+Grafana 部署配置_第15张图片

暂时这么多,继续学习,继续编写。

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux Prometheus+Grafana 部署配置)