prometheus+grafana监控部署实践

Netonline Netonline     2022-10-09     522

关键词:

参考文档:

  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/

一.环境

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)

 

二.部署prometheus 

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

1. 下载&部署

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

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

# 验证
[root@prometheus local]# cd prometheus/
[root@prometheus prometheus]# ./prometheus --version

2. 配置文件

# 解压目录中的prometheus.yml
# 简单验证,主要配置采用默认文件配置,有修改/新增处用红色标示
[root@prometheus 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. 设置用户

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

# 赋权
[root@prometheus prometheus]# cd ~
[root@prometheus ~]# chown -R prometheus:prometheus /usr/local/prometheus/

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

4. 设置开机启动

[root@prometheus ~]# touch /usr/lib/systemd/system/prometheus.service 
[root@prometheus ~]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service

[root@prometheus ~]# 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

# 设置开机启动
[root@prometheus ~]# systemctl enable Prometheus
[root@prometheus ~]# systemctl start prometheus

5. 设置iptables

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

[root@prometheus ~]# service iptables restart

6. 启动并验证

1)查看服务状态

[root@prometheus ~]# systemctl status prometheus

[root@prometheus ~]# 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. 下载&部署

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

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

2. 设置用户

[root@node1 ~]# groupadd prometheus
[root@node1 ~]# useradd -g prometheus -s /sbin/nologin prometheus
[root@node1 ~]# chown -R prometheus:prometheus /usr/local/node_exporter/

3. 设置开机启动

[root@node1 ~]# 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

[root@node1 ~]# systemctl enable node_exporter
[root@node1 ~]# systemctl start node_exporter

4. 设置iptables

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

[root@node1 ~]# service iptables restart

5. 验证

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

四.部署grafana

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

1. 下载&安装

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

# 安装
[root@prometheus src]# yum localinstall grafana-4.6.2-1.x86_64.rpm

2. 配置文件

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

3. 设置开机启动

[root@prometheus src]# systemctl enable grafana-server
[root@prometheus src]# systemctl start grafana-server

4. 设置iptables

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

[root@prometheus 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个即可,如下:

kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(kubernetes工作实践类)(代码片段)

文章目录一、前言二、K8s监控系统架构2.1Prometheus简介2.2Prometheus架构2.3Prometheus知识普及三、K8s监控系统搭建3.1三类数据采集metrics3.2Prometheus+Grafana3.3实践一下:将prometheus+grafana搭建起来3.3.1搭建3.3.2分步测试3.3.2.1安装nodee... 查看详情

kubernetes_08_使用kubernetes部署prometheus+grafana监控系统(kubernetes工作实践类)(代码片段)

文章目录一、前言二、K8s监控系统架构2.1Prometheus简介2.2Prometheus架构2.3Prometheus知识普及三、K8s监控系统搭建3.1三类数据采集metrics3.2Prometheus+Grafana3.3实践一下:将prometheus+grafana搭建起来3.3.1搭建3.3.2分步测试3.3.2.1安装nodee... 查看详情

prometheus+grafana+alertmanager监控部署

Prometheus+Grafana+Alertmanager监控部署1、环境准备Prometheus部署node-export部署编辑Prometheus.ymlGrafana安装部署部署Alertmanger告警1、环境准备阿里云ECS实例*14C8G系统盘100G数据盘300GPrometheus+Grafana+Alermanager开启防火墙对应端口:systemctlstartfire 查看详情

部署prometheus+grafana监控docker(代码片段)

文章目录部署Prometheus+Grafana监控Docker(1)实验环境(2)实验步骤1、先做基础配置2、在监控端安装服务3、在被监控端安装4、修改prometheus主配置文件5、测试访问prometheus的web界面6、使用Grafana来进行监控部署Prom... 查看详情

k8s+prometheus+grafana的监控部署(代码片段)

...署k8s集群可以参考https://www.cnblogs.com/liugp/p/12115945.html二、Prometheus+Grafana的监控部署2.1、master/node节点环境部署在【master】可以进行安装部署安装git,并下载相关yaml文件https://gitee.com/liugpwwwroot/k8s-prometheus-grafana.git在【node】节点下... 查看详情

prometheus+grafana部署监控docker服务(代码片段)

1.环境192.168.244.128Prometheus监控服务器192.168.244.129docker服务(被监控端)注:都是centos7.5系统2.下载安装包https://prometheus.io/download/(需要的安装包都可以下载)wgethttps://github.com/prometheus/prometheus/releases/download/v2.3.2/p 查看详情

grafana+prometheus监控体系实践(代码片段)

...数据源:Graphite、Elasticsearch、CloudWatch、InfluxDB、OpenTSDB、Prometheus、MySQL、Postgres、MicrosoftSQLServer(MSSQL)。每种数据源都有相应的文档,可以将多个数据源的数据合并到一个单独的仪表板上。1.2、Prometheus介绍Prometheus是一个开源监控... 查看详情

prometheus+grafana告警,监控部署展示(代码片段)

服务器信息监控服务器目录:/home/monitor/nginx代理服务器配置文件:/home/nginx/con.d/monitor被监控服务器服务部署数据采集#客户端#node-exporter主机监控修改对应主机名dockerrun-d--namenode-exporter-h主机名--restart=always-p9100:9100-v"... 查看详情

7.prometheus监控技术与实践---可视化(代码片段)

第7章 可视化7.1 概述 Grafana是一款比较流行的开源时间序列分析与可视化工具。7.2 Grafana安装 7.2.1 在CentOS上安装 1.yum方式安装vim/etc/yum.repos.d/grafana.repo[grafana]name=grafanabaseurl=https://packagecloud.io/grafana/stable/el/7/$b 查看详情

prometheus+grafana系统部署,linuxflink的监控与告警(代码片段)

目录版本阅读说明一、简介PrometheusGrafana安装规划二、安装Prometheus1下载安装包2配置使用Systemd管理Prometheus3启动Prometheus4页面大致介绍(可选)5常用命令(可选)1删除job数据2热重载配置规则二、安装Grafana1添加repo... 查看详情

centos7下部署prometheus+grafana超炫监控(代码片段)

1.环境说明监控主机被监控主机192.168.0.66192.168.0.67运维主机MySQL2.主机安装Prometheus下载:https://prometheus.io/download/上传到主机[[email protected]~]#yum-y×××tallvimlrzsz3.安装go[[email protected]~]#yum-y×××tallepel-re 查看详情

prometheus-operator结合grafana展示k8s监控

1.接上篇:kubernetes全面监控之prometheus-operator部署部署完成后,其实本身已经部署了grafana,也可以正常访问。但是我感觉太单调,数据不够详实。2.产生个想法,再多部署一套grafana,然后数据源使用prometheus-operator的数据源,再选... 查看详情

prometheus(普罗米修斯)安装部署(代码片段)

文章目录普罗米修斯1.环境准备2.安装prometheus3.prometheus界面4.监控远程linux主机5.监控远程mysql二、grafana1.使用grafana连接prometheus2.grafana图形显示mysql监控数据3.grafana+onealert报警普罗米修斯官网Prometheus(由go语言(golang)开发)是一套... 查看详情

prometheus(普罗米修斯)安装部署(代码片段)

文章目录普罗米修斯1.环境准备2.安装prometheus3.prometheus界面4.监控远程linux主机5.监控远程mysql二、grafana1.使用grafana连接prometheus2.grafana图形显示mysql监控数据3.grafana+onealert报警普罗米修斯官网Prometheus(由go语言(golang)开发)是一套... 查看详情

基于docker部署prometheus+grafana

参考技术A启动node-exporter启动prometheus启动grafanalinux监控模板ID:11074关于新增监控设备,只需要把IP写入ip文件,执行addjson.sh生产文件即可,系统6s扫描一次文件,一个机器对应一个json文件。至此部署完成! 查看详情

k8s的kafka监控(prometheus+grafana)

欢迎访问我的GitHub对于部署在K8S上的Kafka来说,Prometheus+Grafana是常用的监控方案,今天就来实战通过Prometheus+Grafana监控K8S环境的Kafka;准备工作今天聚焦的是Kafka监控,因此需要K8S、Helm、Kafka、Prometheus、Grafana等服务都已就绪,下... 查看详情

监控系统—prometheus部署(代码片段)

...1.1主要特性1.2原理架构图二、服务部署2.1准备工作2.2开启Prometheus服务器2.3设置被监控端2.4被监控端添加mysql服务三、设置Grafana可视化图形工具3.1服务安装3.2浏览器访问3.3Grafana图形显示mysql监控数据四、Grafana+onealert报警一、概... 查看详情

监控系统—prometheus部署(代码片段)

...1.1主要特性1.2原理架构图二、服务部署2.1准备工作2.2开启Prometheus服务器2.3设置被监控端2.4被监控端添加mysql服务三、设置Grafana可视化图形工具3.1服务安装3.2浏览器访问3.3Grafana图形显示mysql监控数据四、Grafana+onealert报警一、概... 查看详情