Linuxword Global
当前位置: Linux技术 > VmShell验证Docker版Prometheus+Grafana监控VPS状态

prometheus和grafana为简化安装步骤,这里直接使用docker,首先你要安装docker/docker-compose,操作如下
apt -y update && apt -y install curl [安装组件]
curl -sSL https://get.docker.com/ | sh [安装Docker]
systemctl start docker [启动Docker]
systemctl enable docker [允许自动启动Docker]
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

e9f1a1200cdd1d93be55d849fb5b800b

309333b731349a853d4a1b5cfe88b3cd

524bd4c73f2bc5390006df51a9213316

dc611fd9489ec484e38724df211cf127

47c1360901a3af3510ff52f9bcce667d

然后新建一个docker-compose.yml:
mkdir -p /opt/monitor && cd /opt/monitor && nano docker-compose.yml
写入下面的配置:
version: '3.5'

volumes:
prometheus-data:
grafana-data:

services:
prometheus:
image: prom/prometheus
container_name: prometheus
ports:
- 9090:9090
volumes:
- prometheus-data:/prometheus
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--web.enable-admin-api'
- '--web.enable-lifecycle'

grafana:
image: grafana/grafana
container_name: grafana
ports:
- 3000:3000
volumes:
- grafana-data:/var/lib/grafana

f26433c5be1b6074daffecb768a5c3b7

165fb50db5d806aa1baf654859e6969a

接着新建prometheus的配置文件:
nano prometheus.yml
写入如下配置:

global:
scrape_interval: 5s
external_labels:
monitor: 'imlala'

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets:
- 'localhost:9090'
labels:
instance: prometheus

- job_name: 'VPS监控'
static_configs:
- targets:
- '你小鸡的VPS公网IP:9100'
labels:
instance: localhost
- targets:
- '你的另一只小鸡的公网IP:9100'
labels:
instance: ikoula

cba7f88ba12659a66527412ca5c78550

有多少台VPS就写多少个targets,labels是用于区分。确认无误后up起来即可:
docker-compose up -d

c381b457d52e82927ea4260b46e3a0eb

f1477699804e403d8f67c1be13475625

如果后续你更改了prometheus.yml配置文件内容,可以直接执行下面的命令让prometheus热加载配置,不用重启prometheus容器:
curl -s -XPOST localhost:9090/-/reload
接下来我们需要在每台被监控的小鸡上安装node_exporter,node_exporter是prometheus的数据采集器。
node_exporter设计是用于监控主机系统的,因为它需要访问主机系统,所以官方也不推荐将node_exporter容器化,建议是直接部署在宿主机上。
下载解压移动到usr/bin目录下:
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -xzvf node_exporter-0.18.1.linux-amd64.tar.gz
cd node_exporter-0.18.1.linux-amd64/
cp node_exporter /usr/bin

068b76921b8c99f53be5480730771d8d

新建systemd服务文件:
nano /etc/systemd/system/node_exporter.service
写入如下配置:
[Unit]
Description=Node Exporter

[Service]
User=root
ExecStart=/usr/bin/node_exporter

[Install]
WantedBy=multi-user.target
启动/设置开机自启:
systemctl start node_exporter.service
systemctl enable node_exporter.service

我们可以使用 ./node_exporter -h 查看运行选项,./node_exporter 运行 Node Exporter, 如果看到类似输出,表示启动成功。

62e363933b40df356823827e45822566
访问你的监控服务器的VPSIP:3000(不是被监控)应该能看到grafana的WEBUI,默认的管理员账号密码都是admin。登录进去之后,你需要添加数据源:

e29fa7372f3ac7dca71cf6618003a45c

acb12b31a294835b78eaf11dfe01a969

c8645cfc63566aa010cafee22505337d

a525b4b08d449461fa9d1492fc149ea8

如果你之前没有改动过docker-compose.yml内的服务名,那么这里应该填写:

334c5f79e2c3825a2c9cbae95c6e70fd
其他的保持默认即可,然后点击Save & Test,测试没问题的话就OK了。现在你需要新建或者导入模板,自己新建的没有人家现成做的好,这里直接导入别人的模板就行:

49cca1c6492b434fc7e8efd9d4a1536a

333ff52a5322fa3d7fcf19f2bf16f324

模板编号8919有问题,建议采用编号:“12159”比较漂亮

82436842e06f0bd0552bfbccb9876efa

基于ConsulManager采集的ECS,可匹配自动同步方式采集ECS信息字段的展示,优化重要指标展示。使用Grafana8新表格重建,新增健康评分概念,并新增了整体资源消耗信息的一些图表。包含整体资源展示与资源明细图表:CPU 内存 磁盘 IO 网络等监控指标。https://github.com/starsliao/ConsulManager    每次服务器重启的时候输入命令cd /opt/monitor && docker-compose up -d

  • Overview
  • Revisions
  • Reviews
 

grafana 8.3.6、8.3.7、8.4.7 版本测试正常,如果导入出现异常,请先更新到以上版本grafana。

  • 该版本为ECS自动同步版:通过ConsulManager来管理云厂商的ECS监控:支持自动同步采集云厂商的ECS信息(包括到期日)与分组信息,并且针对自动采集的这些字段来做更加友好的展示。
  • 原基于Job分组的通用版本,请参考:https://grafana.com/grafana/dashboards/16098

2022.04.13更新说明:

  1. 使用Grafana8新表格重建。
  2. 总览表新增ECS健康评分概念。
  3. 新增了整体资源消耗信息的一些图表,用于资源成本优化参考。
  4. 使用了从云厂商获取的主机名字段和新的分组字段,并且能展示资源到期日。
  5. 优化重要指标展示,包含整体资源展示与资源明细图表:CPU 内存 磁盘 IO 网络等监控指标。
注意:【最近7天P99资源使用率】图表需要在Prometheus增加记录规则(采集1小时后出数据):
groups:   #新rule文件需要加这行开头,追加旧的rule文件则不需要。
- name: node_usage_record_rules
  interval: 1m
  rules:
  - record: cpu:usage:rate1m
    expr: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance,vendor,account,group,name)) * 100
  - record: mem:usage:rate1m
    expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100

请配合Consul Manager使用:

【ConsulManager介绍】


ECS管理功能描述

  • 支持同步阿里云,腾讯云,华为云的ECS主机信息到Consul。
  • 基于Consul实现Prometheus监控目标的自动发现。
  • 支持同步各云厂商的分组信息到Consul,用于关联ECS分组。
  • 提供了可查询分组与ECS信息的页面,指标中加入了ECS到期日等信息,可直接监控。
  • 可调整同步的时间间隔。
  • 提供了按需的Prometheus配置生成功能。
  • 提供了一个匹配ECS Manager各字段的node_exporter Grafana展示看板。

截图:

image-1 image-2 image image-3 image-4 image-5

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2333 篇
  • 草稿数目: 12 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5986 个
  • 注册用户: 139 人
  • 访问总量: 8,650,556 次
  • 最近更新: 2024年4月27日