监控系列(一)DM8+Prometheus+Grafana搭建

news2024/12/24 3:42:40

一、背景

近期进行适配,因用户统一监控平台使用的是promethesu+grafana+altermannger这一套,因此对达梦数据库进行适配对接。
目前主要有两种方式:

1. 部署Dem管理系统对外提供接口推送到prometheus进行采集数据,采集项可查看《Dem手册》9.1.4 管理 prometheus 监控数据的接口
2. 根据需求手写采集的指标项并推送到prometheus进行采集数据,grafama效果如图所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来一系列文章会从各个组件的搭建、如何自定义采集项exporter组件(源码)、手动/自动推送数据、邮件告警、短信告警、自动化部署脚本、注意事项等分为多篇文章。

二、相关组件概念

1. prometheus介绍

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库(TSDB)的组合。它受启发于 Google 的 内部的监控系统,由工作在 SoundCloud 的前 google 员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。
2016 年,doker容器化部署兴起,Prometheus 正式加入 Cloud Native Computing Foundation(CNCF)基金会的项目,成为受欢迎度仅次于 Kubernetes 的项目。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配合。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。

官网:https://prometheus.io/docs/introduction/overview/

Prometheus的基本原理是通过HTTP周期性抓取被监控组件的状态(接口),任意组件只要提供对应的HTTP接口并且符合Prometheus定义的数据格式,就可以接入Prometheus监控。

Prometheus Server负责定时在目标(被监控组件)上抓取Metrics(指标)数据并保存到本地存储里面。Prometheus主要采用了Pull(拉)的方式获取数据,不仅降低客户端的复杂度,客户端只需要采集数据,无需了解服务端情况,而且服务端可以更加方便的水平扩展。
在这里插入图片描述

2. prometheus与zabbix的对比

prometheus:Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库,并且系统每隔一两周就会有一个小版本的更新,而Prometheus与它的“师兄”Kubernetes都自带云原生的光环,天然能够友好协作。

zabbix:Zabbix是由Alexei Vladishev开源的分布式监控系统,是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性的软件。

在这里插入图片描述

3. prometheus丨TSDB时序数据库

时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用的场景很多, 如:

  1. 无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。
  2. 某一个地区的各车辆的行驶轨迹数据
  3. 传统证券行业实时交易数据
  4. 实时运维监控数据等

4. Grafana介绍

grafana 是一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
下载地址:https://grafana.com/grafana/download。
在这里插入图片描述

三、prometheus的安装

1. prometheus下载

下载地址:https://prometheus.io/download/,版本也可使用文章末尾的资料包
根据环境下载对应的版本,x86环境的话用这个prometheus-2.40.5.linux-amd64.tar.gz
在这里插入图片描述

2. prometheus安装

## 1. 更新同步操作系统时间,避免时间误差    
[root@VM-24-17-centos opt]# ntpdate edu.ntp.org.cn  && hwclock -w
## 2. 新建目录
[root@VM-24-17-centos opt]# mkdir /opt/jiankong/jiankongSoft -p
[root@VM-24-17-centos opt]# cd /opt/jiankong/jiankongSoft
## 3. 上传压缩包 并解压
[root@server ~]# tar -zxvf prometheus-2.35.0.linux-amd64.tar.gz -C /opt/jiankong
## 4. 重命名prometheus文件名
[root@localhost jiankongSoft]# cd /opt/jiankong
[root@localhost jiankong]# mv prometheus-2.40.5.linux-amd64 prometheus-2.40.5

3. prometheus启动

## 5. 前台启动服务进行测试
[root@VM-24-17-centos opt]# cd /opt/jiankong/prometheus-2.40.5
[root@VM-24-17-centos prometheus-2.35.0]# ./prometheus --config.file="prometheus.yml"

## 5.1(备用)如需更换启动端口添加web.listen-address参数
[root@localhost prometheus-2.40.5]# ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091" 

#服务启动默认占用9090端口(文章的话就是用9091端口)
[root@server ~]# lsof -i:9090

## 6.前台测试没有问题后,使用后台启动方式
[root@localhost prometheus-2.40.5]# nohup ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091" > ./prometheus.log 2>&1 &
[1] 30524
## 7.记得查询进程是否存在
[root@localhost prometheus-2.40.5]# ps -ef|grep prometheus
root       30524   29851  0 12:51 pts/1    00:00:00 ./prometheus --config.file=prometheus.yml --web.listen-address=0.0.0.0:9091
root       30534   29851  0 12:51 pts/1    00:00:00 grep prometheus
## 8. 需要停到服务时,kill掉即可

常见错误 err=“listen tcp 0.0.0.0:9090: bind: address already in use”

在这里插入图片描述

这是因为端口被占用,杀掉占用端口的服务或者添加web.listen-address参数调整端口

[root@localhost prometheus-2.40.5]# ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091" 

在这里插入图片描述

4. prometheus使用

通过浏览器访问http://服务器IP:9091就可以访问到prometheus的主界面(默认时9090,此处是9091端口)

http://192.168.145.161:9091/

项目启动后会默认监控了本机,点Status --》点Targets --》可以看到只监控了本机
在这里插入图片描述

采集的信息可以通过http://服务器IP:9091/metrics可以查看到监控的数据 (prometheus本身也会采集本机的信息)
http://192.168.145.161:9091/metrics

在这里插入图片描述

在web主界面可以通过关键字查询监控项

在这里插入图片描述

5. prometheus注册服务(可选)

## 1.编辑服务自启动文件
[root@master1 ~]#vim /lib/systemd/system/prometheus.service
## 提示 这里用的是9091端口
[root@master1 ~]#cat /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
Type=simple
Restart=on-failure
User=root
Group=root
WorkingDirectory=/opt/jiankong/prometheus-2.40.5/
ExecStart=/opt/jiankong/prometheus-2.40.5/prometheus --web.listen-address="0.0.0.0:9091" --web.read-timeout=5m --web.max-connections=256 --storage.tsdb.retention=15d --storage.tsdb.path=data/ --query.max-concurrency=20 --query.timeout=2m
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target

#我们需要将定制的prometheus的配置文件和数据目录作为启动参数配置好
#其它的参数,可以基于prometheus --help 查看更多 
## 2. 更新systemd服务信息
[root@master1 ~]# systemctl daemon-reload
## 3. 服务开机自动启动
[root@master1 ~]# systemctl enable --now prometheus.service 
## 4.启动服务
[root@master1 ~]# systemctl start prometheus

## 其他的备用命令
[root@master1 ~]# systemctl enable prometheus.service
[root@master1 ~]# systemctl stop prometheus.service
[root@master1 ~]# systemctl restart prometheus.service
[root@master1 ~]# systemctl status prometheus.service
[root@master1 ~]# journalctl -u prometheus -f -n 500

四、Grafana的安装

1. Grafanna下载

下载地址:https://grafana.com/grafana/download,版本也可使用文章末尾的资料包
根据环境下载对应的版本,x86环境的话用这个Standalone Linux Binaries(64 Bit)
在这里插入图片描述

2. Grafanna安装

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.1.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-9.3.1.linux-amd64.tar.gz



## 1. 进入目录
[root@VM-24-17-centos opt]# mkdir /opt/jiankong/jiankongSoft -p
[root@VM-24-17-centos opt]# cd /opt/jiankong/jiankongSoft
## 2. 上传压缩包 并解压
[root@server ~]# tar -zxvf grafana-enterprise-9.3.1.linux-amd64.tar.gz -C /opt/jiankong

3. Grafanna启动

## 3. 进入到grafana目录
[root@localhost bin]# cd /opt/jiankong/grafana-9.3.1
## 4. 启动服务
[root@VM-24-17-centos grafana-9.3.1]#  nohup ./bin/grafana-server > ./grafana.log 2>&1 &
## 查看端口默认是3000
[root@server ~]# lsof -i:3000

##  通过浏览器访问http://IP:3000 ,默认用户名和密码:admin

4. Grafanna注册服务(可选)


1. 编辑配置文件
[root@master1 ~]#vim /lib/systemd/system/grafana_server.service
[root@master1 ~]#cat /lib/systemd/system/grafana_server.service
[Unit]
Description=Grafana
After=network.target
[Service]
Restart=simple
##注意用户
User=root
Group=root
WorkingDirectory=/opt/jiankong/grafana-9.3.1
ExecStart=/opt/jiankong/grafana-9.3.1/bin/grafana-server 
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target


## 2. 更新systemd服务信息
[root@master1 ~]# systemctl daemon-reload
## 3. 服务开机自动启动
[root@master1 ~]# systemctl enable --now grafana_server.service 
## 4.启动服务
[root@master1 ~]# systemctl start grafana_server

## 其他的备用命令
[root@master1 ~]# systemctl enable grafana_server.service
[root@master1 ~]# systemctl stop grafana_server.service
[root@master1 ~]# systemctl restart grafana_server.service
[root@master1 ~]# systemctl status grafana_server.service
[root@master1 ~]# journalctl -u grafana_server -f -n 500

5. 添加prometheus数据源相关联

点击配置,点击 Data Sources:
在这里插入图片描述

点击添加按钮:
在这里插入图片描述

找到 Prometheus,点击 Select
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击 Back 返回即可,可以看到 Data Sources 页面,出现了添加的 Prometheus:
在这里插入图片描述

资料包

链接:https://pan.baidu.com/s/1lo6AynZBR5JdRZwY_1arbA?pwd=o178 提取码:o178

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云计算与大数据技术】分布式计算、虚拟化技术、并行编程技术等技术讲解(超详细必看)

一、分布式计算 分布式计算是一种计算方法,和集中式计算相对,随着计算的发展,一些应用需要巨大的计算能力才能完成,如果采用集中式计算则需要耗费很长的时间,而分布式计算将应用分解成许多更小的部分,分配…

文献阅读(195)物理设计/时序分析

文章目录物理设计时序分析题目:Intelligent Design Automation for 2.5/3D Heterogeneous SoC Integration时间:2020会议:ICCAD研究机构:国立台湾大学 本篇论文的主要贡献: 物理设计:包括RDL布线和板级布…

蚁群优化算法解决TSP问题(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

CSS 3万字超详细总结

文章目录1. CSS简介2. CSS的使用2.1 行内样式2.2 内部样式表2.3 外部样式表2.4 多重样式与样式优先级3. CSS选择器3.1 简单选择器3.1.1 元素选择器3.1.2 id选择器3.1.3 class选择器3.2 组合器选择器3.2.1 后代选择器3.2.2 子选择器3.2.3 相邻兄弟选择器3.2.4 通用兄弟选择器3.3…

C# 流程控制语句

一 结构化程序设计的三种基本流程 1 顺序 分支 循环 2 简单语句 最简单的语句:方法调用语句及赋值语句 后面有个分号 如: System.Console.Write("Hello World"); ba>0?a:-a; sTextBox1.Text; dint.Parse(s);注意:没有表达式…

SpringBoot简单优雅实现图片上传功能(超详细)

文章目录前言技术栈项目目录前端实现index.htmlscript.js后端实现MultipartFile 介绍配置文件实体类ControllerMapperService拦截器测试结果展示前言 最近有一个需求需要实现图片上传,因此,本人找到了一个可以快速实现该功能的插件mini-upload-form。在…

CAS:2374782-03-1,NOTA-FAPI-4化学试剂供应

试剂描述 NOTA-FAPI-4是FAPI-4的类似物和成纤维细胞活化蛋白(FAP)抑制剂。NOTA-FAPI-4可作为PET示踪剂用于检测与成纤维细胞活化蛋白相关的紊乱。 试剂基本信息 1、名称:NOTA-FAPI-4 2、CAS编号:2374782-03-1 3、分子式&#x…

Seata模式

爬虫组件分析目录概述需求:设计思路实现思路分析1.一、AT 模式参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survi…

_4LeetCode代码随想录算法训练营第四天-C++

_4LeetCode代码随想录算法训练营第四天-C 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 24.两两交换链表中的节点 整体思路 不是简单地交换值,而是交换指针地指向。 终止条件为: cur->next ! nul…

偏微分方程重要的前置知识

现在觉得很dog 开学期末考试正好美赛。无法评论,无法评论。乐淘淘,乐淘淘。期末考试不要延迟,求求了或者不安排在下学期第一周也可以。。。。反正求求了,美赛机会难得当然,如果是偏微分方程的问题的话,其实…

springboot连接Oracle的注意点(数据库信息配置、主键精度问题、OJDBC jar包、Oracle主键自增问题)

开篇废话:(前段时间因为太忙没有坚持写博客,导致很久没有更新,今天终于忙里偷闲写上一篇) 最近做了一个项目,数据库用的是Oracle,由于之前一直用的是MySQL,所以在一些细节配置上不是…

详细教你用NPS搭建内网穿透服务

文章目录 前言一、NPS概述 NPS的原理 二、NPS服务器搭建 1、下载软件2、云服务器配置 2.1、防火墙配置2.2、用WinSCP远程上传服务文件2.3、使用SSH终端安装启动2.4、修改配置文件 三、客户端连接总结 前言 相信大家外出旅游或者出差都是背着轻薄本,如果空闲之余想…

【Dubbo3高级特性】「实战开发」适配日志框架并支持运行时动态切换使用的日志框架开发实战

日志框架适配及运行时管理 本节内容主要是针对于如何在Dubbo中适配日志框架并支持运行时动态切换使用的日志框架,首先前提是需要进行启动我们Dubbo服务的Qos服务,它主要用于作为我们的操作对应的日志切换的功能实现机制 特性说明 日志框架适配&#x…

MATLB|基于matpower优化调度的风力模型预测

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

T6300A 网络综合测试仪 以太网数据 千兆以太网测试仪

一款功能强大、便携式、方便使用、价格便宜的高性价比手持式以太网测试仪是企业中网络管理和维护人员的刚需仪器。好的以太网测试仪可以帮助工作人员迅速解决网络不通、网速慢、丢包、延迟等问题。 当今以太网测试仪市场参差不齐,说的功能一个比一个强,…

【轻松掌握C语言】动态内存管理

目录 一、为什么存在动态内存分配 二、动态内存函数 1、malloc函数 (1)函数的用途 (2)函数的使用 2、free函数 (1)函数的用途 (2)函数的使用 3、calloc函数 (1)函数的用途 (2)函数的使用 4、realloc函数 (1)函数的用途 (2)函数的使用 三、常见的动态内存错误 1、对NULL指针的解…

【小f的刷题笔记】(JS)链表 - 单链表的倒数第 k 个节点 LeetCode19 单链表的中点 LeetCode876

【链表】 一、单链表的倒数第 k 个节点: ✔ 要求:只遍历一遍,链表有多长未知 LeetCode19 链接: 19.删除链表的倒数第N个结点 题目: 思路: 因为没有给头结点,我们就先定义一个哑结点&#…

从对称加密和非对称加密讲解HTTP到HTTPS的发展思路

一、传统的HTTP协议 传统的http在进行网络数据传输时,数据信息都是明文的,因此就很容易出现数据在网络的传输过程(中间路由过程)数据被监听或者窃取、替换的危险。因此http是一种不安全的传输协议。 那么就需要对数据进行加密。…

网络编程与通信原理

总感觉这个概念,和研发有点脱节; 一、基础概念 不同设备之间通过网络进行数据传输,并且基于通用的网络协议作为多种设备的兼容标准,称为网络通信; 以C/S架构来看,在一次请求当中,客户端和服务端…

物联网开发笔记(59)- 使用Micropython开发ESP32开发板之控制合宙4g Air724U模块

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制合宙4g Air724U模块。 二、环境 ESP32 合宙4g Air724U模块 Thonny IDE 几根杜邦线 接线方法: 注意连接方式: ESP32的RX2----->4G模块的TX ESP32的TX2----->4G模块的RX 三、介绍 1&…