Prometheus+Grafana监控部署实践

参考文档:

  1. Prometheus github:https://github.com/prometheus
  2. grafana github:https://github.com/grafana/grafana
  3. Prometheus getting_started:https://prometheus.io/docs/prometheus/latest/getting_started/
  4. Prometheus node_exporter:https://github.com/prometheus/node_exporter
  5. Prometheus部署(docker,optional):https://prometheus.io/docs/prometheus/latest/installation/
  6. Prometheus配置文件详解:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
  7. grafana 部署:http://docs.grafana.org/installation/rpm/

一.环境

1. 拓扑

2. 节点


Node


OS


Hostname


IP


Remark


prometheus& grafana server


centos 7.4


prometheus


172.20.1.211

 

prometheus node


centos 7.4


node1


172.20.1.212

 

3. 版本(截止20171130)


Soft/Node


Version


Download


prometheus


2.0.0


https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz


node_exporter


v0.15.1


https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz


grafana


4.6.2-1


https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm

二.部署prometheus

在prometheus& grafana server节点部署prometheus服务。

1. 下载&部署

# 下载
[[email protected] src]# cd /usr/local/src/
[[email protected] src]# wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

# 部署到/usr/local/目录
# promethus不用编译安装,解压目录中有配置文件与启动文件
[[email protected] src]# tar -zxvf prometheus-2.0.0.linux-amd64.tar.gz -C /usr/local/
[[email protected] src]# cd /usr/local/
[[email protected] local]# mv prometheus-2.0.0.linux-amd64/ prometheus/

# 验证
[[email protected] local]# cd prometheus/
[[email protected] prometheus]# ./prometheus --version

2. 配置文件

# 解压目录中的prometheus.yml
# 简单验证,主要配置采用默认文件配置,有修改/新增处用红色标示
[[email protected] prometheus]# vim prometheus.yml
# 全局配置
global:
  scrape_interval:     15s # 设置抓取(pull)时间间隔,默认是1m
  evaluation_interval: 15s # 设置rules评估时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).

# 告警管理配置,暂未使用,默认配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 加载rules,并根据设置的时间间隔定期评估,暂未使用,默认配置
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 抓取(pull),即监控目标配置
# 默认只有主机本身的监控配置
scrape_configs:
  # 监控目标的label(这里的监控目标只是一个metric,而不是指某特定主机,可以在特定主机取多个监控目标),在抓取的每条时间序列表中都会添加此label
  - job_name: ‘prometheus‘

    # metrics_path defaults to ‘/metrics‘
    # scheme defaults to ‘http‘.

    # 可覆盖全局配置设置的抓取间隔,由15秒重写成5秒。
    scrape_interval: 5s

    # 静态指定监控目标,暂不涉及使用一些服务发现机制发现目标
static_configs:
      - targets: [‘localhost:9090‘]
        # (opentional)再添加一个label,标识了监控目标的主机
labels:
          instance: prometheus

  - job_name: ‘linux‘
    scrape_interval: 10s
static_configs:
  # 采用node_exporter默认开放的端口
      - targets: [‘172.20.1.212:9100‘]
labels:
          instance: node1

3. 设置用户

# 添加用户,后期用此账号启动服务
[[email protected] prom etheus]# groupadd prometheus
[[email protected] prometheus]# useradd -g prometheus -s /sbin/nologin prometheus

# 赋权
[[email protected] prometheus]# cd ~
[[email protected] ~]# chown -R prometheus:prometheus /usr/local/prometheus/

# 创建prometheus运行数据目录
[[email protected] ~]# mkdir -p /var/lib/prometheus
[[email protected] ~]# chown -R prometheus:prometheus /var/lib/prometheus/

4. 设置开机启动

[[email protected] ~]# touch /usr/lib/systemd/system/prometheus.service
[[email protected] ~]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service

[[email protected] ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=prometheus
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 设置开机启动
[[email protected] ~]# systemctl enable Prometheus
[[email protected] ~]# systemctl start prometheus

5. 设置iptables

[[email protected] ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT

[[email protected] ~]# service iptables restart

6. 启动并验证

1)查看服务状态

[[email protected] ~]# systemctl status prometheus

[[email protected] ~]# netstat -tunlp | grep 9090

2)web ui

Prometheus自带有简单的UI,http://172.20.1.211:9090

在Status菜单下,Configuration,Rule,Targets等,

Statu-->Configuration展示prometheus.yml的配置,如下:

Statu-->Targets展示监控具体的监控目标,这里监控目标"linux"暂未设置node_exporter,未scrape数据,如下:

7. 绘图

访问:http://172.20.1.211:9090/metrics,查看从exporter具体能抓到的数据,如下:

访问:http://172.20.1.211:9090,在输入框中任意输入1个exporter能抓取得值,点击"Execute"与"Execute"按钮,即可见相应抓取数据的图形,同时可对时间与unit做调整,如下:

三.部署node_exporter

Node_exporter收集机器的系统数据,这里采用prometheus官方提供的exporter,除node_exporter外,官方还提供consul,memcached,haproxy,mysqld等exporter,具体可查看官网。

这里在prometheus node节点部署相关服务。

1. 下载&部署

# 下载
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

# 部署
[[email protected] src]# tar -zxvf node_exporter-0.15.1.linux-amd64.tar.gz -C /usr/local/
[[email protected] src]# cd /usr/local/
[[email protected] local]# mv node_exporter-0.15.1.linux-amd64/ node_exporter/

2. 设置用户

[[email protected] ~]# groupadd prometheus
[[email protected] ~]# useradd -g prometheus -s /sbin/nologin prometheus
[[email protected] ~]# chown -R prometheus:prometheus /usr/local/node_exporter/

3. 设置开机启动

[[email protected] ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

[[email protected] ~]# systemctl enable node_exporter
[[email protected] ~]# systemctl start node_exporter

4. 设置iptables

# 官方node_exporter默认使用9100端口
[[email protected] ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9100 -j ACCEPT

[[email protected] ~]# service iptables restart

5. 验证

访问:http://172.20.1.211:9090,可见node1主机已经可被监控,如下:

四.部署grafana

在prometheus& grafana server节点部署grafana服务。

1. 下载&安装

# 下载
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm

# 安装
[[email protected] src]# yum localinstall grafana-4.6.2-1.x86_64.rpm

2. 配置文件

配置文件位于/etc/grafana/grafana.ini,这里暂时保持默认配置即可。

3. 设置开机启动

[[email protected] src]# systemctl enable grafana-server
[[email protected] src]# systemctl start grafana-server

4. 设置iptables

# grafana-server默认使用3000端口
[[email protected] src]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT

[[email protected] src]# service iptables restart

5. 添加数据源

1)登陆

访问:http://172.20.1.211:3000,默认账号/密码:admin/admin

2)添加数据源

在登陆首页,点击"Add data source"按钮,跳转到添加数据源页面,配置如下:

Name: prometheus

Type: prometheus

URL: http://localhost:9090/

Access: proxy

取消Default的勾选,其余默认,点击"Add",如下:

在"Dashboards"页签下"import"自带的模版,如下:

6. 导入dashboard

从grafana官网下载相关dashboaed到本地,如:https://grafana.com/dashboards/405

Grafana首页-->左上角图标-->Dashboard-->import

Upload已下载至本地的json文件(或者使用dashboard id,如这里的405),如下:

数据源选择"prometheus",即添加的数据源name,点击"Import"按钮,如下:

7. 查看dashboard

Grafana首页-->左上角图标-->Dashboard-->Home,Home下拉列表中可见有已添加的两个dashboard,"Prometheus Stats"与"Node Exporter Server Metrics",选择1个即可,如下:

原文地址:https://www.cnblogs.com/netonline/p/8289411.html

时间: 2024-10-09 23:02:20

Prometheus+Grafana监控部署实践的相关文章

使用Prometheus+Grafana监控MySQL实践

Grafana+Prometheus打造全方位立体监控系统 一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Promet

Prometheus Grafana监控全方位实践

这次就不用 docker 部署服务了,这样大家会更容易接受.欢迎阅读. 引言 Prometheus 是一个监控系统,也是一个时间序列数据库,用Go语言开发的,官方文档.通过从某些特定的目标如主机,Mysql,Redis等,收集带有时间标记的一些指标(metrics),比如服务器内存情况,数据库连接数量等数据,经过一定的处理,按照时间序列顺序进行显示. 你可以配置规则,对这些指标进行处理,当某些指标符合某种规则,会触发报警等.项目地址: https://github.com/prometheus/

Prometheus + Grafana 监控系统搭

本文主要介绍基于Prometheus + Grafana 监控Linux服务器. 一.Prometheus 概述(略) 与其他监控系统对比 1 Prometheus vs. Zabbix Zabbix 使用的是 C 和 PHP, Prometheus 使用 Golang, 整体而言 Prometheus 运行速度更快一点. Zabbix 属于传统主机监控,主要用于物理主机.交换机.网络等监控,Prometheus 不仅适用主机监控,还适用于 Cloud.SaaS.Openstack.Contai

cAdvisor+Prometheus+Grafana监控docker

cAdvisor+Prometheus+Grafana监控docker 一.cAdvisor(需要监控的主机都要安装) 官方地址:https://github.com/google/cadvisor CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具.CAdvisor是一个运行时的守护进程,负责收集.聚合.处理和输出运行中容器的信息.注意在查找相关资料后发现这是最新版cAdvisor的bug,换成版本为google/cadvisor:v0.24.1 就ok了,映射主机端

prometheus+grafana监控redis

prometheus+grafana监控redis redis安装配置 https://www.cnblogs.com/autohome7390/p/6433956.html redis_exporter 安装 cd /usr/src wget https://github.com/oliver006/redis_exporter/releases/download/v0.21.2/redis_exporter-v0.21.2.linux-amd64.tar.gz tar xf redis_ex

Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + Grafana 1.Prometheus & Grafana 介绍 Prometheus 是一套开源的系统监控.报警.时间序列数据库的组合,Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而通过 Exporter Http 接口输出这些被监控的组件信息,而且已经有很多 E

Prometheus+Grafana监控

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本.2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目.Prometheus目前在开源社区相当活跃.Prometheus和Heapster(Heapster是K8

Prometheus+Grafana监控系统搭建

博文大纲:一.prometheus简介二.Prometheus组成及架构三.部署prometheus1)环境准备2)部署prometheus 一.prometheus简介 Prometheus是一套开源的系统监控报警框架.它以给定的时间间隔从已配置的目标收集指标,评估规则表达式,显示结果,并在发现某些情况为真时触发警报. 作为新一代的监控框架,Prometheus具有以下特点 : 强大的多维度数据模型:(1)时间序列数据通过metric名和键值对来区分:(2)所有的metrics都可以设置任意的

[转帖]安装prometheus+grafana监控mysql redis kubernetes等

https://www.cnblogs.com/sfnz/p/6566951.html plug 的模式进行处理. 1.prometheus安装 wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz tar -zxvf prometheus-1.5.2.linux-amd64.tar.gz -C /opt/prometheus --str