前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos7 - Prometheus + Grafana 监控平台搭建

Centos7 - Prometheus + Grafana 监控平台搭建

作者头像
拓荒者
发布2019-08-05 14:59:00
2K0
发布2019-08-05 14:59:00
举报
文章被收录于专栏:运维经验分享运维经验分享

Centos7 - Prometheus + Grafana 监控平台搭建

2019年04月12日 14:11:57 Fickle_actor 阅读数 101

Prometheus 是一套开源的系统监控报警框架。Prometheus 所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB):属于同一指标名称,同一标签集合的、有时间戳标记的数据流。除了存储的时间序列,Prometheus 还可以根据查询请求产生临时的、衍生的时间序列作为返回结果

Exporter 是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取

Grafana 是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知

本次实验环境: 操作系统 :CentOS Linux release 7.6.1810 MySQL :5.6.43

一.下载Prometheus

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

在这里插入图片描述
在这里插入图片描述

选择合适的版本,右键点击链接并复制链接地址,到linux系统内 用wget 命令下载并解压,这里我下的是2.8.1版本

代码语言:javascript
复制
wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz

tar zxvf  prometheus-2.8.1.linux-amd64.tar.gz

mv  prometheus-2.8.1.linux-amd64  /opt/prometheus
  • 1
  • 2
  • 3
  • 4
  • 5

二.下载并运行 mysqld_exporter,node_exporter

exporter 是需要安装在需要被监控的服务器上的,本次演示为了方便,我就把所有软件都安装在同一个服务器上了

1.下载解压 这两个node_exporter 需要运行在需要被监控的服务器上 在上面 Prometheus 的下载页面,也提供了很多exporter的下载,其中就包括了mysqld_exporter和node_exporter

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
#下载解压mysqld_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz

tar zxvf  mysqld_exporter-0.11.0.linux-amd64.tar.gz

mv  mysqld_exporter-0.11.0.linux-amd64 /opt/mysqld_exporter

#下载解压node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz

tar zxvf  node_exporter-0.17.0.linux-amd64.tar.gz

mv  node_exporter-0.17.0.linux-amd64 /opt/node_exporter
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.运行

进入mysqld_exporter安装目录并运行node_exporter

代码语言:javascript
复制
cd /opt/node_exporter

nohup ./node_exporter &
  • 1
  • 2
  • 3

运行mysqld_exporter需要连接到MySQL,需要授权,在本案例中,被授权的账号为mysql_monitor,密码为123123

代码语言:javascript
复制
#先用root 账号登录mysql 
mysql -u root -p 

#输入密码登录成功执行授权sql语句
grant replication client, process on *.* to mysql_monitor@"localhost" identified by "123123";

grant select on performance_schema.* to mysql_monitor@"localhost";
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

授权后进入mysqld_exporter安装目录创建.my.cnf配置文件,并运行mysqld_exporter

代码语言:javascript
复制
cd /opt/mysqld_exporter
vim .my.cnf
  • 1
  • 2

.my.cnf文件中写入以下内容

代码语言:javascript
复制
[client]
user=mysql_monitor
password=123123
  • 1
  • 2
  • 3

保存后,运行 mysqld_exporter

代码语言:javascript
复制
nohup ./mysqld_exporter --config.my-cnf=.my.cnf &
  • 1

mysqld_exporter占用9104端口, node_exporter 占用9100端口

三. 配置prometheus 并运行

进入prometheus安装路径并修改配置文件

代码语言:javascript
复制
cd /opt/prometheus

vim prometheus.yml
  • 1
  • 2
  • 3

配置文件修改后内容如下

代码语言:javascript
复制
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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']

  - job_name: 'mysql'
    static_configs:
    - targets: ['localhost:9104']
      labels:
        instance: 'db1'
      
  - job_name: 'node'
    static_configs:
    - targets: ['localhost:9100']
      labels:
		instance: 'nd1'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

每个job_name标签标示一个监控的job targets 标签标示受监控的应用的 ip和端口号

注意:这个配置文件要特别注意格式缩进,严格按照他原来的格式来修改,不然会导致prometheus运行不了。

运行prometheus

代码语言:javascript
复制
nohup ./prometheus --config.file=./prometheus.yml &
  • 1

运行后可以通过 cat nohup.out 查看运行日志

浏览器访问 服务器的9090端口可以访问prometheus的页面

在这里插入图片描述
在这里插入图片描述

然后我们进入status 目录下的Targets页面

在这里插入图片描述
在这里插入图片描述

我们可以看到,我们在配置文件配置的三个监控的job状态都是up的

在这里插入图片描述
在这里插入图片描述

如果状态不是up,则证明该job的配置有问题或着监控的应用没有运行起来,可以返回去检查一下。

prometheus 对于数据的展现并不直观和美观,所以,我们需要grafana

四.下载安装并运行Grafana

下载地址:https://grafana.com/grafana/download

在这里插入图片描述
在这里插入图片描述

可以按照官网的指导下载安装合适的版本,这里我下载的是6.1.3版本

代码语言:javascript
复制
wget https://dl.grafana.com/oss/release/grafana-6.1.3-1.x86_64.rpm 

sudo yum localinstall grafana-6.1.3-1.x86_64.rpm 
  • 1
  • 2
  • 3

然后运行grafana

代码语言:javascript
复制
systemctl start grafana-server
  • 1

运行后我们从浏览器访问服务的3000端口,可以访问grafana的页面

在这里插入图片描述
在这里插入图片描述

初始账号和密码 都是 admin 登录成功并修改了密码之后,我们添加一个data source ,并且在选择data source type 时选择 Prometheus

在这里插入图片描述
在这里插入图片描述

在配置好data source 后点击 save&test 按钮,如果提示data source is working 则为成功

在这里插入图片描述
在这里插入图片描述

配置好 data sources 后,我们需要去下载dashboard 的json文件并导入, 当然,你也可以自己去创建dashboard.

本次我们下载 “mysql overview” 和 “1 Node Exporter 0.16 0.17 for Prometheus 监控展示看板” ,下面演示 “mysql overview” dashboard 的json文件下载过程

dashboard 的json文件下载地址:https://grafana.com/dashboards

在这里插入图片描述
在这里插入图片描述

你可以搜索你需要的json文件

在这里插入图片描述
在这里插入图片描述

我选择了一个下载次数最多的,选择后,我们可以预览这个dashbord 展示的内容,点击 dowload json 下载 json 文件,这里还需要注意一下 Dependencies里的版本,因为有些版本不支持的问题可能会导致导入的dashboard 不显示图标或者图表都是空的。如果下载的dashboard用不了,可以换一个试试。

在这里插入图片描述
在这里插入图片描述

“1 Node Exporter 0.16 0.17 for Prometheus 监控展示看板” 的下载方法和上面差不多。

下载了 “”mysql overview“” 和 “1 Node Exporter 0.16 0.17 for Prometheus 监控展示看板” 的json文件之后,我们需要导入到grafana, 我演示下 ‘1 Node Exporter 0.16 0.17 for Prometheus 监控展示看板’ dashboard的json文件导入。

在这里插入图片描述
在这里插入图片描述

点击 upload json file,并选择下载好的json文件

在这里插入图片描述
在这里插入图片描述

修改好 name 和 prometheus node 后 点击import

在这里插入图片描述
在这里插入图片描述

然后就备件款的node的信息就很直观且美观的展现出来了。但是这个dashboard的磁盘总空间 那一块 有警告 说找不到 grafana-piechart-panel 插件,接下来我们就进行插件的安装

在这里插入图片描述
在这里插入图片描述

grafana-piechart-panel插件 是一个饼状图插件,grafana的插件安装很简单

在grafana 安装的服务器环境 执行以下命令进行插件安装

代码语言:javascript
复制
grafana-cli plugins install grafana-piechart-panel

#插件安装后重启grafana
systemctl restart grafana-server
  • 1
  • 2
  • 3
  • 4

然后我们刷新下 grafana的dashboar页面 就可以看到饼状图显示出来了

在这里插入图片描述
在这里插入图片描述

本次监控平台的简单搭建完成,关于更高级更深入的使用还需要继续研究。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档