阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Prometheus+Grafana搭建监控系统实践

441次阅读
没有评论

共计 6687 个字符,预计需要花费 17 分钟才能阅读完成。

使用 Prometheus+Grafana 搭建监控系统实践

一.环境

1. 拓扑

使用 Prometheus+Grafana 搭建监控系统实践

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. 下载 & 部署

# 下载
[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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

[root@prometheus ~]# netstat -tunlp | grep 9090

使用 Prometheus+Grafana 搭建监控系统实践

2)web ui

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

使用 Prometheus+Grafana 搭建监控系统实践

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

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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

7. 绘图

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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

三.部署 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 主机已经可被监控,如下:

使用 Prometheus+Grafana 搭建监控系统实践

四.部署 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

使用 Prometheus+Grafana 搭建监控系统实践

2)添加数据源

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

Name: prometheus

Type: prometheus

URL: http://localhost:9090/

Access: proxy

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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

6. 导入 dashboard

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

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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

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

使用 Prometheus+Grafana 搭建监控系统实践

7. 查看 dashboard

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

使用 Prometheus+Grafana 搭建监控系统实践

使用 Prometheus+Grafana 搭建监控系统实践

使用 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/

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150354.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6687字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7995878
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...