Ubuntu20.04安装Prometheus监控系统

环境准备:
服务器名称内网IP公网IP
Prometheus服务器192.168.0.23047.119.21.167
Grafana服务器192.168.0.23147.119.22.8
被监控服务器192.168.0.23247.119.22.82

更改主机名方便辨认

hostnamectl set-hostname prometheus
hostnamectl set-hostname grafana
hostnamectl set-hostname agent

三台都互相绑定IP与主机名

vim /etc/hosts
​
192.168.0.230 prometheus
192.168.0.231 grafana
192.168.0.232 agent

时间同步

检查时间:
timedatectl status
​
修改时区
timedatectl set-timezone Asia/Shanghai

关闭防火墙

输入以下命令以禁用防火墙服务:
systemctl stop ufw.service
​
输入以下命令以确认防火墙服务已关闭:
systemctl disable ufw.service
​
输入以下命令以确认防火墙状态:
ufw status
如果终端输出“Status: inactive”,则表示防火墙已成功关闭。

1、安装Prometheus

从 https://prometheus.io/download/ 下载相应版本,安装到服务器上,官网提供的是二进制版,解压就能用,不需要编译

下载tar包
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
​
解压
tar xf prometheus-2.53.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.53.0.linux-amd64/ /usr/local/prometheus
​
直接使用默认配置文件启动
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
​
确认端口(9090)
lsof -i:9090

2、Prometheus界面

通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面

默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本机

监控的本机信息如下:

3、主机数据展示

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

比如输入关键词:process_cpu_seconds_total

点击Execute执行,就会看出相应的图形数据

4、监控远程Linux主机

① 在远程linux主机(被监控端agent)上安装node_exporter组件,下载地址: https://prometheus.io/download/(可自行下载)

下载tar包
wget https://tongyf.oss-cn-shenzhen.aliyuncs.com/node_exporter-1.8.1.linux-amd64.tar.gz
​
解压
tar xf node_exporter-1.8.1.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-1.8.1.linux-amd64/ /usr/local/node_exporter
​
里面就一个启动命令node_exporter,可以直接使用此命令启动
nohup /usr/local/node_exporter/node_exporter &
​
确认端口9100:
lsof -i:9100

扩展: nohup命令: 如果把启动node_exporter的终端给关闭,那么进程也会随之关闭。nohup命令会帮你解决这个问题。

② 通过浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporter在被监控端收集的监控信息

③ 回到prometheus服务器的配置文件里添加被监控机器的配置段

在主配置文件最后加上下面三行
[root@prometheus]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent' # 取一个job名称来代表被监控的机器
static_configs:
- targets: ['192.168.0.232:9100'] # 这里改成被监控机器的IP,后面端口接9100
关闭服务
pkill prometheus
​
确认端口没有进程占用
lsof -i:9090
​
重启服务
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
​
确认端口被占用,说明重启成功
lsof -i:9090

④ 回到web管理界面 --》点Status --》点Targets --》可以看到多了一台监控目标

5、监控远程MySQL

① 在被管理机agent1上安装mysqld_exporter组件,下载地址: https://prometheus.io/download/

下载tar包
wget https://tongyf.oss-cn-shenzhen.aliyuncs.com/mysqld_exporter-0.15.1.linux-amd64.tar.gz
​
解压
tar xf mysqld_exporter-0.15.1.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/mysqld_exporter-0.15.1.linux-amd64/ /usr/local/mysqld_exporter

切换目录至/usr/local/mysqld_exporter下,新增配置文件.my-exporter.cnf

[client]
user=exporter 
password=Exporter1234!
host=127.0.0.1
port=3306

根据配置文件启动mysqld_exporter,并将数据暴露到9104端口,并且通过参数指定暴露的数据

./mysqld_exporter --web.listen-address=localhost:9104 --config.my-cnf=/usr/local/mysqld_exporter/.my-exporter.cnf --collect.auto_increment.columns --collect.binlog_size --collect.global_status --collect.engine_innodb_status --collect.global_variables --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.tables --collect.info_schema.tablestats --collect.info_schema.userstats --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.perf_schema.tablelocks

注册到系统服务

vim /etc/systemd/system/mysqld_exporter.service

[Unit]
Description=mysqld_exporter
After=network.target
[Service]
Type=simple
User=mysqld_exporter
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my-exporter.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target

以服务的方式进行启动管理

添加用户
useradd --no-create-home --shell /bin/false mysqld_exporter
​
为用户赋予文件夹权限
chown -R mysqld_exporter:mysqld_exporter /usr/local/mysqld_exporter
​
重新加载系统配置
systemctl daemon-reload
​
开机启动
systemctl enable mysqld_exporter.service
​
启动服务
systemctl start mysqld_exporter
​
查看状态
systemctl status mysqld_exporter

最后修改prometheus的配置文件,并重启

在主配置文件最后加上下面三行​
[root@P=prometheus~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'mysql' # 取一个job名称来代表被监控的机器
static_configs:
- targets: ['192.168.0.232:9104'] # 这里改成被监控机器的IP,后面端口接9104
​关闭服务
pkill prometheus
​
确认端口没有进程占用
lsof -i:9090
​
重启服务
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
​
确认端口被占用,说明重启成功
lsof -i:9090

回到web管理界面 --》点Status --》点Targets --》可以看到多了一台监控目标

四、Grafana可视化图形工具

① 在grafana服务器上安装grafana

下载并安装

apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_11.1.0_amd64.deb
dpkg -i grafana-enterprise_11.1.0_amd64.deb

出现报错

dpkg: error processing package ...

原因:可能是dpkg管理的包信息出现了损坏

解决方法:通过sudo apt -f install进行修复

mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
mkdir /var/lib/dpkg/info/
apt-get update
apt-get -f install
mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
rm -rf /var/lib/dpkg/info
mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/

启动

systemctl daemon-reload
systemctl start grafana-server.service
systemctl status grafana-server.service

配置开展自动启动

systemctl enable grafana-server.service

grafana汉化(在配置文件中注释并添加如下内容)

vim /etc/grafana/grafana.ini
#default_language = en-US
default_language = zh-Hans

重启服务,然后登陆查看

systemctl restart grafana-server.service

② 通过浏览器访问 http:// grafana**服务器IP:3000**就到了登录界面,使用默认的admin用户,admin密码就可以登陆了

③ 下面我们把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据。

登陆之后选择,左侧Configuration里面的DataSources

④点击Grafana首页侧边栏,Create DashBoard创建仪表盘

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

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

相关文章

Springboot下使用Redis管道(pipeline)进行批量操作

之前有业务场景需要批量插入数据到Redis中,做的过程中也有一些感悟,因此记录下来,以防忘记。下面的内容会涉及到 分别使用for、管道处理批量操作,比较其所花费时间。 分别使用RedisCallback、SessionCallback进行Redis pipeline …

【BES2500x系列 -- RTX5操作系统】深入探索CMSIS-RTOS RTX -- 同步与通信篇 -- 消息队列和邮箱处理 --(四)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.时间戳格式改进 过去,node-red 只提供了 最原始的 timestamp 的格式(1970-01-01 ~ now) 但是现在,额外增加了 2 种格式: ISO 8601 -A COMMON FORMAT(YYYY-MM-DDTHH:mm:ss:sssZ&#xff…

Linux环境安装配置nginx服务流程

Linux环境的Centos、麒麟、统信操作系统安装配置nginx服务流程操作: 1、官网下载 下载地址 或者通过命令下载 wget http://nginx.org/download/nginx-1.20.2.tar.gz 2、上传到指定的服务器并解压 tar -zxvf nginx-1.20.1.tar.gzcd nginx-1.20.1 3、编译并安装到…

阿里Nacos下载、安装(保姆篇)

文章目录 Nacos下载版本选择Nacos安装Windows常见问题解决 更多相关内容可查看 Nacos下载 Nacos官方下载地址:https://github.com/alibaba/nacos/releases 码云拉取(如果国外较慢或者拉取超时可以试一下国内地址) //国外 git clone https:…

[数据集][目标检测]桥梁检测数据集VOC+YOLO格式1116张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1116 标注数量(xml文件个数):1116 标注数量(txt文件个数):1116 标注…

【RabbitMQ实战】Springboot 整合RabbitMQ组件,多种编码示例,带你实践 看完这一篇就够了

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、对RabbitMQ管理界面深入了解1、在这个界面里面我们可以做些什么? 二、编码练习(1)使用direct exchange(直连型交换机)&a…

snowflake 不再是个数据仓库公司了

标题先上结论,为啥这么认为,且听接下来道来。 snowflake 非常成功,开创了云数仓先河,至今在数仓架构上也是相对比较先进的,国内一堆模仿的公司,传统上我们会认为 snowflake 肯定是一家数据仓库公司。不过最…

3D Gaussian Splatting代码中的forward和backward两个文件代码解读

3dgs代码前向传播部分 先来讨论一下glm,因为定义变量的时候用到了这个。 glm的解释 glm 是指 OpenGL Mathematics,这是一个针对图形编程的数学库。它的全称是 OpenGL Mathematics (GLM),主要用于 OpenGL 的开发。这个库是基于 C 的模板库&…

什么是CC攻击,如何防止网站被CC攻击的方法

前言 “CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。” 什么是CC攻击? CC攻击前身是一个名为Fatboy的攻击程序,而之所以后来人们会称之为CC,也叫HTTP-FLOOD&#xff…

【AI提升】如何使用大模型:本机离线和FastAPI服务调用

大模型本身提供的功能,类似于windows中的一个exe小工具,我们可以本机离线调用然后完成具体的功能,但是别的机器需要访问这个exe是不可行的。常见的做法就是用web容器封装起来,提供一个http接口,然后接口在后端调用这个…

lodash.js 工具库

lodash 是什么? Lodash是一个流行的JavaScript实用工具库,提供了许多高效、高兼容性的工具函数,能够方便地处理集合、字符串、数值、函数等多种数据类型,大大提高工作效率。 lodash官网 文档参见:Lodash Documentation lodash 在Vue中怎么使用? 1、首先安装 lodash np…

JDK动态代理-AOP编程

AOPTest.java,相当于main函数,经过代理工厂出来的Hello类对象就不一样了,这是Proxy.newProxyInstance返回的对象,会hello.addUser会替换为invoke函数,比如这里的hello.addUser("sun", "13434");会…

Python 作业题1 (猜数字)

题目 你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对&…

无人机生态环境监测、图像处理与GIS数据分析综合实践技术应用

构建“天空地”一体化监测体系是新形势下生态、环境、水文、农业、林业、气象等资源环境领域的重大需求,无人机生态环境监测在一体化监测体系中扮演着极其重要的角色。通过无人机航空遥感技术可以实现对地表空间要素的立体观测,获取丰富多样的地理空间数…

QT+winodow 代码适配调试总结(二)

已经好多年了, linux环境下不同版本的QT程序开发和部署,突然需要适配window环境程序调试,一堆大坑,还真是一个艰巨的任务,可是kpi下的任务计划,开始吧!! 1、首先我们自定义的动态库…

vue3使用v-html实现文本关键词变色

首先看应用场景 这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理 有如下关键词 实现思路 遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是v-h…

boost asio异步服务器(4)处理粘包

粘包的产生 当客户端发送多个数据包给服务器时,服务器底层的tcp接收缓冲区收到的数据为粘连在一起的。这种情况的产生通常是服务器端处理数据的速率不如客户端的发送速率的情况。比如:客户端1s内连续发送了两个hello world!,服务器过了2s才接…

机械拆装-基于Unity-总体设计

目录 前言 1. 系统总体设计 2. 装配功能实现的详细设计 2.1 装配顺序 2.2 装配思想实现的难点 3. 场景实现中的难点与解决 3.1 相机控制 3.2 零件的拖拽和旋转 3.3 装配位置提示 总结 前言 在工业设计和制造领域,零部件的拆装技术是一个重要的应用场景&#xf…

MySQL:设计数据库与操作

设计数据库 1. 数据建模1.1 概念模型1.2 逻辑模型1.3 实体模型主键外键外键约束 2. 标准化2.1 第一范式2.2 链接表2.3 第二范式2.4 第三范式 3. 数据库模型修改3.1 模型的正向工程3.2 同步数据库模型3.3 模型的逆向工程3.4 实际应用建议 4. 数据库实体模型4.1 创建和删除数据库…