Grafana+Prometheus打造全方位立体监控体系

前言

正文首要介绍怎么着使用Grafana和Prometheus以及node_exporter对Linux服务器性能举办督查。上面两张图分别是两台服务器监控新闻:

服务器A

图片 1

服务器B

图片 2

概述

Prometheus是一个开源的服务监控系列,它通过HTTP协议从远程的机器收集数据并蕴藏在本土的时序数据库上。

  • 多维数据模型(时体系数据由metric名和一组key/value组成)
  • 在多维度上灵活的查询语言(PromQl)
  • 不依靠分布式存储,单主节点工作.
  • 经过依照HTTP的pull模式收集时序数据
  • 能够通过push gateway举行时系列数据推送(pushing)
  • 可以透过服务意识还是静态配置去获取要采访的对象服务器
  • 多种可视化图表及仪表盘协理

Prometheus通过设置在长途机器上的exporter来收集监控数据,后边我们将使用到node_exporter收集系统数据。

架构

图片 3

Grafana
是一个开箱即用的可视化工具,具有效能齐全的度量仪表盘和图纸编辑器,有灵活加上的图形化选项,可以勾兑多种作风,补助三个数据源特点。

图片 4

架构

图片 5

安装

Exporter

下载并解压:

#下载
wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.15.0.linux-amd64.tar.gz -O node_exporter-0.15.0.linux-amd64.tar.gz
# 可自定义解压目录
tar -xvf node_exporter-0.15.0.linux-amd64.tar.gz

运行node_exporter:
## 后台运行 ./node_exporter &

Prometheus

下载地址:https://prometheus.io/download

执行以下命令:

## 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.0.0-rc.3/prometheus-2.0.0-rc.3.linux-amd64.tar.gz
## 可自定义解压目录
tar -xvf prometheus-2.0.0-rc.3.linux-amd64.tar.gz

配置prometheus,vi prometheus.yml

global:
  scrape_interval:     15s
  evaluation_interval: 15s

  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: linux1
    static_configs:
      - targets: ['192.168.1.120:9100']
        labels:
          instance: sys1

  - job_name: linux2
    static_configs:
      - targets: ['192.168.1.130:9100']
        labels:
          instance: sys2

IP对应的是咱们内网的服务器,端口则是应和的exporter的监听端口。

运行Prometheus

./prometheus 
level=info ts=2017-11-07T02:39:50.220187934Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0-rc.2, branch=HEAD, revision=ce63a5a8557bb33e2030a7756c58fd773736b592)"
level=info ts=2017-11-07T02:39:50.22025258Z caller=main.go:216 build_context="(go=go1.9.1, user=root@a6d2e4a7b8da, date=20171025-18:42:54)"
level=info ts=2017-11-07T02:39:50.220270139Z caller=main.go:217 host_details="(Linux 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 iZ2ze74fkxrls31tr2ia2fZ (none))"
level=info ts=2017-11-07T02:39:50.223171565Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0:9090
......

启航成功之后大家得以经过Prometheus内置了web界面访问,http://ip:9090
,假如出现以下界面,表明配置成功

图片 6

Grafana

实践以下安装命令:

## 安装依赖grafana运行需要go环境
yum install  go -y
## 安装 grafana
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm -y

安装包音讯:

二进制文件: /usr/sbin/grafana-server
init.d 脚本: /etc/init.d/grafana-server
环境变量文件: /etc/sysconfig/grafana-server
部署文件: /etc/grafana/grafana.ini
启动项: grafana-server.service
日志文件:/var/log/grafana/grafana.log
默认配置的sqlite3数据库:/var/lib/grafana/grafana.db

您能够举行以下启动命令:

service grafana-server start

起步grafana,并安装开机启动:

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server.service

服务器端图像(PNG)渲染是可选的效果,但在共享可视化时分外有用,例如在警报布告中。
假使图像缺乏文本,请确保已安装字体包。

yum install fontconfig
yum install freetype*
yum install urw-fonts

做客Grafana通过Nginx代理,默认登录用户名密码:admin/admin,需及时修改。

server {
        listen       80;
        server_name  grafana.52itstyle.com;

        charset utf-8;

        location / {
            default_type text/html;
            proxy_pass http://127.0.0.1:3000;
        }

}

编辑配置文件/etc/grafana/grafana.ini
,修改dashboards.json段落下五个参数的值:

[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

安装仪表盘JSON模版:

git clone https://github.com/percona/grafana-dashboards.git
cp -r grafana-dashboards/dashboards /var/lib/grafana/

最终,通过service grafana-server
start命令启动服务,访问地址:http://grafana.52itstyle.com

图片 7

接下来在Data Sources选项中添加数据源:

图片 8

添加成功未来,我们就足以查看到著作最先的意义图了。

总结

讲道理,这一套东西仍旧很强大的,各个开源组间一整合周全搭建出一套监督连串。当然了以上只是是系统的一个监督,Grafana以及exporter组间还足以兑现对Nginx、MySql、Redis以及MongDB的监察。

监察不是目的,目标是出新问题可以及时发现并缓解问题。

Grafana+Prometheus系统监控之邮件报警效能

Grafana+Prometheus系统监控之钉钉报警功用

Grafana+Prometheus系统监控之Redis

Grafana+Prometheus系统监控之MySql

参考资料

https://grafana.com/

https://prometheus.io/

https://github.com/prometheus

https://github.com/prometheus/node_exporter

https://github.com/percona/grafana-dashboards

https://www.percona.com/blog/2016/02/29/graphing-mysql-performance-with-prometheus-and-grafana/

网站地图xml地图