监控系统架构方案

news/2024/5/17 3:51:57/文章来源:https://blog.csdn.net/weixin_45801289/article/details/126922395

前言

对于企业级服务器管理,站群管理,针对服务器的监控是非常必要的。
通常,在电脑出现卡死,或进程停止或被挂起的情况下,大家都会使用任务管理器查看进程情况。针对电脑流畅性或资源优化,通常会使用资源管理器进行分析。然而,像windows资源管理器在开启的情况下,仅能查看六十秒的资源使用。而linux下,我们使用top,htop等命令,或ps等命令查看进程与资源使用情况也是仅能查看实时监控的。
那么,在该情况下若服务器出现问题,命令无法执行的情况下如何快速定位问题所在及资源占用情况?

从商业云服务上看,像是ucloud,tencent,aliyun等厂商的云服务器都提供了资源监控。但基础资源监控仅能帮助我们判定该服务器是因为内存,还是磁盘等资源过载而导致的宕机。然而,这种资源监控都是针对单个服务器的,不可将所有服务器实现统一监控,而在监控可视化方面也是可选性太低。

那么,针对服务器实现统一监控与集中化管理,这里我们使用Prometheus监控系统作演示。

Prometheus

Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts when specified conditions are observed.
The features that distinguish Prometheus from other metrics and monitoring systems are:

  • A multi-dimensional data model (time series defined by metric name and set of key/value dimensions)
  • PromQL, a powerful and flexible query language to leverage this dimensionality
  • No dependency on distributed storage; single server nodes are autonomous
  • An HTTP pull model for time series collection
  • Pushing time series is supported via an intermediary gateway for batch jobs
  • Targets are discovered via service discovery or static configuration
  • Multiple modes of graphing and dashboarding support
  • Support for hierarchical and horizontal federation

Prometheus 是一个云原生计算基金会项目,是一个系统和服务监控系统。 它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并在观察到指定条件时触发警报。

Prometheus 与其他指标和监控系统的区别在于:

  多维数据模型(由指标名称和键/值维度集定义的时间序列)PromQL,一种强大且灵活的查询语言,可利用此维度不依赖分布式存储; 单个服务器节点是自治的用于时间序列收集的 HTTP 拉取模型通过用于批处理作业的中间网关支持推送时间序列通过服务发现或静态配置发现目标图形和仪表板支持的多种模式支持分层和水平联合

我们来看看Prometheus的架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2bJHoULT-1663503257681)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/20edba3654e4488097a51f6a48e86419~tplv-k3u1fbpfcp-watermark.image?)]

架构方案

假设我们有四个服务器,一个为windows系统,三个为linux系统。
我们使用其中一个linux服务器作为监控中心。

我们将服务器标记为A、B、C、D。
A:监控中心linux服务器(192.168.0.1)
B:linux服务器(192.168.0.2)
C:linux服务器(192.168.0.3)
D:windows服务器(192.168.0.4)

对于监控中心,我们部署grafana和prometheue于A服务器。Prometheus在采集各服务器数据后,由监控中心的Grafana对Prometheus所采集的数据进行展示。

针对服务器内存、CPU、硬盘、I/O,我们可以使用prometheus-node-exporter进行采集后,由监控中心Prometheus采集节点数据。效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K1WYSDO3-1663503257682)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ec7c36c504a54bdab5ffcdf88b172749~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0GW2jPpR-1663503257682)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/64a93e7c496c49c084885d73108ba9db~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGzliHkh-1663503257683)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/319b535038be40ac8ea385b94865f59f~tplv-k3u1fbpfcp-watermark.image?)]

对于windows服务器的资源监控展示,如下:
(资源监控windows和linux默认不于同一页面展示,若不使用官方模板,可以自行编写Dashboard更改sql语句适应性)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HIfv2BGN-1663503257683)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b9606a57430f4a9ea13f7df29554eeb0~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p5zOTaip-1663503257683)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/22b47f53e72c4557b59b4f0fe29fa499~tplv-k3u1fbpfcp-watermark.image?)]

该方案可实现对于多台服务器针对资源占用监控。而当任何一台服务器异常,我们都可以查看Grafana监控并查看异常所在。

针对linux进程,我们可以使用prometheus-process-exporter进行采集,由由监控中心Prometheus采集节点数据。效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HP1OVGFy-1663503257684)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4ea49a895a454205a71e7f8e3d4926e9~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bgUZDAB-1663503257685)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e1419cf533474b778405850eb3f667be~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MF068F1Y-1663503257685)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/28e9559fc16540dea2e9dcd014c4f86f~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yUF4rq3p-1663503257685)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/903ec8bc8f1d45d583f1b82083cfabd2~tplv-k3u1fbpfcp-watermark.image?)]

如此,在任何服务器出现任何异常时,我们都能够对异常情况进行快速定位。仅需到监控中心查看资源占用情况,并查看对应服务器的进程监控,即可得出结论。

部署说明

仅prometheus+grafana监控服务器资源

根据架构规划,我们先部署A服务器的promethus,再部署B,C,D服务器的prometheus-nide-exporter。

以下部署方案为基于pull的部署方案。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M4sGqgO9-1663503257686)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/60d699e32adb481e826db10b7574b478~tplv-k3u1fbpfcp-watermark.image?)]

A服务器部署

Prometheus部署

我们先部署A服务器(监控中心)。

由于使用APT包管理器直接下载Prometheus是默认包含prometheus-node-exporter的,因此我们直接使用APT命令下载Prometheus即可。

apt install prometheus

进入prometheus文件夹并添加节点信息

cd /etc/prometheus
vim prometheus.yml

于配置文件末尾加入以下配置,采集节点数据。

  - job_name: linux-node-1static_configs:- targets: ['192.168.0.1:9100']- job_name: linux-node-2static_configs:- targets: ['192.168.0.2:9100']- job_name: linux-node-3static_configs:- targets: ['192.168.0.3:9100']- job_name: windows-node-4static_configs:- targets: ['192.168.0.4:9100']

备注:此处linux-node-1为需要采集的主机名,targets:[‘ip:port’]此处为需要采集的IP和端口。主机名不可重复,prometheus-node-exporter的默认端口为9001。

我们也可以修改配置文件,修改抓取间隔。如下示例为每10s抓取一次。

scrape_interval: 10s

更改配置文件后,使用以下命令重启Prometheus服务即可。

如果需要更改prometheus-node-exporter端口,可使用以下命令挂起。以下示例为使用9101端口。

prometheus-node-exporter --web.listen-address=":9101" &

由于使用以上命令挂起,在重启后是失效,我们可以使用以下命令将该命令写入开机自启动与定时任务。

cat > /etc/rc.local << EOF
prometheus-node-exporter --web.listen-address=":9101" &
EOF

当然,我们也可以使用crontab -e将该命令写入定时任务。

Grafana部署

这里我们使用docker部署grafana。

linux系统下没有安装docker的,可以使用笔者提供的一键安装docker命令。

wget --http-user=download@hscsec.cn  --http-passwd=HSC2019   https://download.hscsec.cn/docker.sh && chmod +777 docker.sh && ./docker.sh

以上命令将自动安装最新版的docker及docker-compose,并替换镜像为腾讯。

使用以下命令启动Grafana

docker run -d --name=grafana -p 3000:3000 --restart=always grafana/grafana-enterprise:latest

启动后,访问3000端口,使用默认账号:admin;密码:admin即可登录。

登录后,于仪表盘导入官方仪表盘,进入import输入仪表盘编号并导入。

  • 主机监控(linux):8919
  • 进程监控(linux) 8378
  • 主机监控(windows): 10467

B,C服务器部署

使用APT包管理器安装prometheus-node-exporter即可。

apt install prometheus-node-exporter

对于访问控制,建议在防火墙设置9100端口白名单,仅允许监控中心服务器访问(192.168.0.1)。云服务器厂商提供控制台防火墙服务的可以直接设置,也可以使用iptables设置。

D服务器部署

对于windows服务器,我们只需在github下载最的prometheus-node-exporter发布版本并运行即可。当然,我们也可以把他设置为开机自启动。

github地址:

prometheus-community / windows_exporter

prometheus+grafana监控服务器资源与进程

由于进程监控仅适用于linux,不适用于windows系统,本部分仅说明对于linux进程监控的部署。

本部分内容为基于以上部分。

A,B,C服务器部署

对于linux服务器我们使用apt包管理器安装prometheus-process-exporter即可。

apt install prometheus-process-exporter

对于访问控制,建议在防火墙设置9256端口白名单,仅允许监控中心服务器访问(192.168.0.1)。云服务器厂商提供控制台防火墙服务的可以直接设置,也可以使用iptables设置。

在A服务器更改配置文件:

cd /etc/prometheus
vim prometheus.yml

于配置文件末尾加入以下配置,采集节点数据。

  - job_name: linux-node-process-1static_configs:- targets: ['192.168.0.1:9256']- job_name: linux-node-process-2static_configs:- targets: ['192.168.0.2:9256']- job_name: linux-node-process-3static_configs:- targets: ['192.168.0.3:9256']

更改配置文件后使用以下命令重启Prometheus服务即可。

systemctl restart prometheus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9893.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网开发笔记(19)- 使用Micropython开发ESP32开发板之连接WIFI热点

我们的ESP32开发板是拥有WIFI和蓝牙功能的。这里我们先告诉大家如何将ESP32开发板连接到我们家里的无线路由器上&#xff0c;并和连接到家里无线路由器的一台电脑进行通讯。 一、环境 ESP32开发板Thonny IDEWin10网络调试助手工具 后面设备联网的基本信息&#xff1a;开发板IP…

网课答案查题方法详细步骤

网课答案查题方法详细步骤 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#…

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置

系列文章目录 项目介绍及环境配置 文章目录系列文章目录一、项目介绍1. 功能2. 技术选型3. 页面预览⑴. 登录⑵. 交友&#xff08;主页&#xff09;⑶. 探花⑷. 搜附件⑸. 桃花传音⑹. 测灵魂⑺. 圈子⑻. 消息⑼. 小视频⑽. 我的二、开发工具1. YAPI2. Android模拟器3. 调试工…

ElasticSearch 命令总结

目录0&#xff0c;ES 与关系型数据库类比1&#xff0c;查看集群信息2&#xff0c;查看索引信息3&#xff0c;创建索引1&#xff0c;创建索引2&#xff0c;重建索引4&#xff0c;文档相关操作1&#xff0c;查看文档2&#xff0c;写入文档3&#xff0c;更新文档4&#xff0c;删除…

上海亚商投顾:A股持续调整 券商成做空主力

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪三大指数今日低开低走&#xff0c;午后均跌超2%&#xff0c;证券、房地产、煤炭等板块跌幅居前。券商股全线下挫&am…

centos8升级宝塔导致的openssl系列问题

故事的发生是这样的&#xff0c;从前有座山 这个问题很古怪&#xff0c;起先是我把宝塔面板从7.9.3升级到7.9.4&#xff0c;结果升级后宝塔弹出 libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b 再后来就是重启的话&#xff0c;连ssh都进不去&…

第137篇 荷兰拍卖

介绍荷兰拍卖,并通过简化版Azuki荷兰拍卖代码,讲解如何通过荷兰拍卖发售 ERC721标准的NFT。 1.荷兰拍卖 荷兰拍卖(Dutch Auction)是一种特殊的拍卖形式。 亦称“减价拍卖”,它是指拍卖标的的竞价由高到低依次递减直到第一个竞买人应价(达到或超过底价)时击槌成交的一种…

05-Java面向对象

文章目录初识面向对象面向过程&面向对象回顾方法及加深对象的创建分析创建与初始化对象构造器详解构造器-无参&#xff08;默认&#xff09;构造器-有参创建对象内存分析(简易)面向对象的三大特征封装封装的作用封装演示继承继承示例SuperSuper注意点super VS this方法重写…

Linux 虚拟地址空间

目录 1、一段代码引出一个问题 运行结果&#xff1a; 讨论&#xff1a; 2、Linux下进程虚拟地址空间分布 3、什么是虚拟地址空间&#xff1f; 4、虚拟地址出现之前&#xff1a;进程直接访问物理内存 5、再述虚拟地址空间 虚拟地址空间结构体是如何进行区域划分的呢&…

HTTP1.x协议详解和HTTP2.0笔记

http协议的作用就是指定两个web应用&#xff0c;之间的一种规则&#xff0c;各种特点&#xff0c;管道化&#xff0c;io多路复用&#xff0c;缓存&#xff0c;状态码&#xff0c;都是基于协议之间的字段&#xff0c;和io之间的调度来实现 HTTP的诞生 1989 年 3 月 CERN&#x…

Linux运维笔记[2]-宝塔面板

宝塔面板 宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。 有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。 openEuler安装宝塔面板…

ElasticSearch(九)【SpringBoot整合】

九、SpringBoot整合Elasticsearch 9.1 基本环境配置 创建一个springboot工程springboot-elasticsearch在pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifac…

Kafka3.1简介及Kafka3.1部署、原理和API开发使用介绍

Kafka3.1简介及Kafka3.1部署、原理和API开发使用介绍第1章-kafka简介 1-1.消息队列简介 什么是消息队列 “消息队列”是在消息的传输过程中保存消息的容器。“消息”是在两台计算机间传送的数据单位。 英文名&#xff1a;Message Queue&#xff0c;经常缩写为MQ 可以简单理…

ElasticSearch之Kibana安装及使用

文章目录1. 安装1.11.2 上传安装包并解压1.3 生成证书1.3 修改配置1.4 修改目录拥有者1.5 启动软件1.6 使用Kibana官方介绍&#xff1a;Kibana 是一个免费且开放的用户界面&#xff0c;能够让您对 Elasticsearch 数据进行可视化&#xff0c;并让您在 Elastic Stack 中进行导航。…

[极客大挑战 2020]

[极客大挑战 2020]Roamphp1-Welcome 已进入页面&#xff0c;以为是这道题的环境不对&#xff0c;可是查看f12竟然有东西&#xff0c;然后查一下405 请求方式有误&#xff0c;比如应该用GET请求方式的资源&#xff0c;用了POST 改为post请求方式&#xff0c;出现源码&#xff…

django的settings配置详解

1.介绍 BASE_DIR 默认值&#xff1a;os.path.dirname(os.path.dirname(os.path.abspath(__file__)))。 这个是Django项目文件夹所在目录得绝对路径DEBUG DEBUG 默认值是True。 在本地开发测试环境下设置DEBUGTrue可以显示bug信息&#xff0c;便于开发者找出代码错误所在。 当…

微服务介绍以及远程调用

简介 什么是微服务 微服务是对传统单体服务进行业务拆分&#xff0c;拆分成多个独立的服务。微服务包括服务集群、服务网关、注册中心、配置中心、消息队列、分布式日志服务、系统监控和链路追踪、分布式缓存、分布式搜索、数据库、 Jenkins持续集成服务器以及Docker web自动打…

ECCV2022细粒度图像检索SEMICON代码学习记录

代码链接&#xff1a;GitHub - aassxun/SEMICON 环境配置 # 创建&激活虚拟环境 conda create -n semicon python3.8.5 conda activate semicon# 安装相关依赖包 (该 pytorch 为无 gpu 版本) conda install pytorch1.10.0 torchvision0.11.1 torchaudio0.10.0 cpuonly -c …

你还不会判定表和因果图法的概念及运用?一篇文章教会你

文章末尾给大家准备了大量福利 前言 等价类边界值分析法大家应该都比较熟悉&#xff0c;这两种方法主要针对单个输入类条件的测试&#xff0c;对于输入条件存在关联组合的情况则无法覆盖。如果需要对输入条件进行组合测试&#xff0c;那么就得好好来了解下判定表和因果图法了…

SouthMap平台版省去了安装CAD的诸多麻烦,集成在国产ZWCAD2022平台解决了此瓶颈!!!

SouthMap for ZWCAD2022OEM授权&#xff0c;提取码&#xff1a;6666https://pan.baidu.com/s/1HL-KeGg06Yu7mMFq39QS_A 我们在安装一些行业软件的时候&#xff0c;包括安装和使用过SouthMap时&#xff0c;遇到的第一个拦路虎就是安装AutoCAD&#xff01;虽然AutoCAD功能强大&a…