网络运维Day15

news2024/10/6 22:30:01

文章目录

  • Prometheus简介
  • 环境准备
    • 配置模板机环境
    • 部署阿里镜像源
    • 实验环境准备
  • 部署prometheus服务
    • 查看及测试
  • Promethues 被监控端
  • Grafana简介
    • 部署 Grafana 服务器
    • 修改数据源
  • 监控数据库
    • 安装部署Mariadb
    • 安装导出器
    • 修改 Prometheus服务端配置
    • Grafana配置
  • 总结

Prometheus简介

  • Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。
  • 也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。
  • 主要用在容器监控方面,也可以用于常规的主机监控。
  • 使用google公司开发的go语言编写。
  • Prometheus是一个框架,可以与其他组件完美结合

在这里插入图片描述

环境准备

主机名IP地址
prometheus192.168.8.100(vmnet8网络模式)
node1192.168.8.101(vment8网络模式)
  • 重新安装一台CentOS7.9图形版虚拟机作为模板机、

  • 关闭防火墙和SELinux

  • 模板机机需要使用 centos7.9的镜像创建

  • 英文安装,时区选择亚洲上海,时间和自己真机保持一致

由于装机大家已经很熟练了,这里不再做展示,如果安装出现问题,可参阅之前笔记

下方罗列本次装机需要注意的事项

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

配置模板机环境

[root@localhost ~]# systemctl stop firewalld				#停止防火墙
[root@localhost ~]# systemctl disable firewalld				#将防火墙设置为开机不自启
[root@localhost ~]# vim /etc/selinux/config
...
7 SELinux=disabled						#将SELinux状态改为disabled禁用
...
[root@localhost ~]# poweroff			#关闭虚拟机

部署阿里镜像源

  • 阿里云镜像站点,主要提供各种开发者资源和开源软件的镜像下载
    • 阿里云镜像地址
  • wget为Linux下载命令
    • -O:表示将数据另存为制定路径

模板机操作

[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo	 	#删除自带的repo文件
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-7.repo		     #下载阿里镜像源

实验环境准备

使用模板机链接克隆prometheus、node1

prometheus主机操作(修改主机名及配置IP地址,网卡名不要照抄)

    [root@localhost ~]# hostnamectl set-hostname prometheus
    [root@prometheus ~]# nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes
    [root@prometheus ~]# nmcli connection up ens33

node1主机操作(修改主机名及配置IP地址,网卡名不要照抄)

[root@localhost ~]# hostnamectl set-hostname node1
[root@node1 ~]# nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes
[root@node1 ~]# nmcli connection up ens33

两台主机使用MobaXterm远程连接

prometheus_soft.tar.gz 压缩包拷贝至 promethues主机的/root 家目录下

部署prometheus服务

[root@prometheus ~]# tar -xf prometheus_soft.tar.gz 
[root@prometheus ~]# cd prometheus_soft/
]# tar -xf prometheus-2.17.2.linux-386.tar.gz 
]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus

修改配置文件,让 promethues 自己监控自己

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
....
static_configs:
 - targets: ['192.168.8.100:9090'] 				#修改 IP,指定自己监控自己

检查配置文件是否修改正确(\表示一行写不下,折行写)

[root@prometheus ~]# /usr/local/prometheus/promtool check config  \ /usr/local/prometheus/prometheus.yml
SUCCESS: 0 rule files found

默认prometheus启动服务是很复杂的,如果想利用systemd更快速更方便的管理prometheus
服务,就需要编写服务文件,让 systemd 管理

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service  #编辑服务配置文件
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data
[Install]
WantedBy=multi-user.target
[root@prometheus ~]# systemctl enable prometheus.service --now #设置为开启自启并立即启动服务
[root@prometheus ~]# systemctl status prometheus.service
[root@prometheus ~]# ss -ntulp | grep 9090				#Prometheus服务监听9090端口
tcp LISTEN 0 128 :::9090 :::* users:(("prometheus",pid=10885,fd=8))

查看及测试

  • 通过浏览器访问 prometheus 的 web 监控页面,查看监控数据
  • 访问:http://192.168.8.100:9090(不要照抄,以自己的IP为准)

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

  • 用真机访问 prometheus 时,会出现时差问题;
  • 用 prometheus 本机的浏览器访问测试,时差问题就可以解决。
[root@prometheus ~]# firefox http://192.168.8.100:9090

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

Promethues 被监控端

  • 先将 prometheus_soft.tar.gz 压缩包拷贝至 node1 的/root 家目录下,然后安装被监控端

部署被监控端(node1)

[root@node1 ~]# tar -xf prometheus_soft.tar.gz 
[root@node1 ~]# cd prometheus_soft/
[root@node1 prometheus_soft]# tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz 
]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter
[root@node1 prometheus_soft]# ls /usr/local/node_exporter/
LICENSE node_exporter NOTICE

如果想更好更快的管理 node_exporter 导出器服务,需要编写 service 服务文件,让 systemd
进行管理

[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
[root@node1 ~]# systemctl enable node_exporter --now
[root@node1 ~]# systemctl status node_exporter
[root@node1 ~]# ss -utnlp | grep node_exporter
tcp LISTEN 0 128 :::9100 :::* 
users:(("node_exporter",pid=11222,fd=3))

prometheus服务端修改监控端服务器配置

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 
......
 - job_name: 'node1' 						#定义监控任务名字,可以任意名称
 static_configs:
 - targets: ['192.168.8.101:9100'] 			#被监控端主机和端口
[root@prometheus ~]# systemctl restart prometheus	#重启服务,再查看web页面信息

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

Grafana简介

  • Grafana是一种开源的数据可视化和监控平台,用于实时分析和可视化大规模的指标数据。它提供了丰富的数据可视化工具和面板,可以轻松地创建交互式仪表板来监控、查询和分析多种数据源的数据。Grafana支持广泛的数据源,包括Graphite、InfluxDB、Prometheus、Elasticsearch、MySQL等。用户可以通过Grafana的灵活的查询编辑器和插件系统,自定义数据查询和展示方式,从而满足各种不同的数据分析和监控需求。Grafana还具有强大的告警功能,可以及时通知用户关于数据异常或者预先设定的指标阈值的超出情况。Grafana简单易用、功能强大,已经成为开源社区和企业中常用的数据可视化和监控平台之一。

部署 Grafana 服务器

  • Grafana 可以在任意主机部署,我们的规划是在监控服务器 prometheus 上安装部署 Grafana
  • Grafana默认端口:3000
[root@prometheus ~]# cd prometheus_soft/
[root@prometheus prometheus_soft]# ls
.....
grafana-6.7.3-1.x86_64.rpm
[root@prometheus prometheus_soft]# yum -y install grafana-6.7.3-1.x86_64.rpm
[root@prometheus ~]# systemctl enable grafana-server --now
[root@prometheus ~]# systemctl status grafana-server
[root@prometheus ~]# ss -utnlp | grep grafana-server
  • 在启动 grafana 服务后,可以通过浏览器访问 grafana 的 web 的页面,注意需要加上 3000 端
    口访问,默认的的初始用户名和密码都是 admin,但浏览器如果和 Grafana 版本不兼容,我
    们修改新密码就会失败
  • 浏览器访问:http://192.168.8.100:3000

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

  • 如果无法修改密码,就需要修改配置文件,设置成可以通过匿名访问的方式,再重新访问 Grafana 页面
[root@prometheus ~]# vim /etc/grafana/grafana.ini 
304 [auth.anonymous]
306 enabled = true 				#启用匿名访问
312 org_role = Admin 			#以管理员的身份登录
[root@prometheus ~]# systemctl restart grafana-server		#重启服务

在这里插入图片描述

修改数据源

  • 如果需要 Grafana 能够显示 prometheus 监控的数据,通过数据绘制成图形,需要将
    prometheus 监控的数据作为数据源添加到 Grafana 里面
  • 点击 Add data source,添加数据源

在这里插入图片描述

选择Prometheus作为数据源

在这里插入图片描述

给数据源进行命名,并设置为默认数据源,然后设置数据源来源地址,最后保存配置

在这里插入图片描述

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

保存成功之后,可以点击齿轮图标,选择 data sources,查看数据源,这样就有了数据的来源:

在这里插入图片描述

  • 在有了数据源之后,想让 Grafana 通过数据绘制出图形,这个时候还需要导入数据模板,这
    里 Grafana 也自带了一个模板,我们也可以尝试导入,然后查看绘制的图形,在这里也需要
    知道,不同的数据模板最终绘制的图形以及显示的数据信息也都不一样

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

  • 默认的模板无法查看被监控主机的信息;
  • 如何还想查看被监控主机node1主机node_exporter的内存、CPU 等信息,这里也需要导入 node_exporter 导出器的模板(模板文件运维工程师无法自己编写,涉及到开发,如果想要其他模板,需要到官网上下载):

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

最后可以将该面板保存下来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

监控数据库

安装部署Mariadb

将 node1 主机搭建成 Mariadb 数据服务器,配置账户和密码

[root@node1 ~]# yum -y install mariadb mariadb-server
[root@node1 ~]# systemctl enable mariadb --now 			#设置为开启自启,并立即启动服务
[root@node1 ~]# mysql
MariaDB [(none)]> GRANT ALL ON *.* TO tom@'127.0.0.1' IDENTIFIED BY '123';
MariaDB [(none)]> EXIT;

安装导出器

  • 如果想让 prometheus 能够监控 node1 主机的数据库,就需要安装数据库相关的导出器,
  • 安装 mysqld_exporter 导出器,并修改导出器的配置文件,指定数据库的用户名、密码、端
    口、主机信息,这样导出器才能获取本机的数据库的状态信息
  • mysqld_exporter默认端口号:9104
[root@node1 ~]# cd prometheus_soft/
[root@node1 prometheus_soft]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz 
]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
[root@node1 prometheus_soft]# ls /usr/local/mysqld_exporter/
LICENSE mysqld_exporter NOTICE
[root@node1 prometheus_soft]# vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=127.0.0.1
port=3306
user=tom
password=123
[root@node1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \
--config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
[Install]
WantedBy=multi-user.target
[root@node1 ~]# systemctl enable mysqld_exporter --now   #设置开机自启,并立即启动服务
[root@node1 ~]# systemctl status mysqld_exporter
[root@node1 ~]# ss -nutlp | grep mysqld_exporter		 #默认监听9104
tcp LISTEN 0 128 :::9104 :::* 
users:(("mysqld_exporter",pid=11807,fd=3))

修改 Prometheus服务端配置

  • 如果要将 node1 的数据库进行监控,需要在 prometheus 上添加 node1 数据库监控相关的配
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 
......
 - job_name: 'node1_mysql'
 static_configs:
 - targets: ['192.168.4.11:9104'] 		#指定 node1 导出器服务端口和地址
[root@prometheus ~]# systemctl restart prometheus #重启服务让配置生效

Grafana配置

  • 如果想在 Grafana 中展示 node1 的数据库监控状态信息,也需要在 Grafana 中导入数据库的
    相关模板,用于展示数据库的状态信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

总结

  • 掌握Prometheus使用场景及工作原理
  • 掌握Prometheus部署方式
  • 掌握exporter作用
  • 掌握Prometheus监控服务器硬件及数据库服务
  • 掌握Grafana可视化工具

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

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

相关文章

MobileSAM论文笔记

摘要 自Meta研究团队发布SAM(Segment Anything Model)项目依赖,因其令人惊艳的零样本迁移特性和与其他视觉应用兼容的高通用性,引起了极大的关注。由于大多数类似的应用都需要运行在资源限制的边缘设备,如手机&#x…

苹果独占鳌头,国产手机围攻,双十一“照妖镜”显露谁有真实力

随着双十一购物节的结束,电商平台也给出了各手机品牌的销量数据,苹果毫无疑问成为双十一的赢家,不过两家国产手机品牌也显露了他们的实力,已具有与苹果一战之力。 与去年双十一和今年618类似,苹果仍然占据热销榜前列&a…

YOLOv8-Seg改进:SPPF系列改进篇 | 大核分离卷积注意力模块( Large Separable Kernel Attention)

🚀🚀🚀本文改进:大核分离卷积注意力模块( Large Separable Kernel Attention),实现涨点的目标并且降低计算复杂度和显存,引入到YOLOv8,与SPPF结合实现二次创新; 🚀🚀🚀Large Separable Kernel Attention 亲测在多个数据集能够实现涨点,同样适用于小目标分…

自己动手重装电脑Win10系统方法教程

如果我们自己电脑系统出现问题了,无法通过简单的操作解决,这时候最佳的解决方法,就是给电脑重装安装操作系统。有用户想给电脑重装Win10系统,但不清楚具体的重装步骤方法,下面小编就给大家详细介绍自己手动重新安装Win…

win下oracle安装与navicat远程连接配置

oracle安装 navicat远程连接配置 1、打开navicat,工具>选项>环境 2、配置 找到oracle安装目录 3、连接

7.jvm对象内存布局

目录 概述对象里的三个区对象头验证代码控制台输出分析 验证2代码控制台输出 实例数据对其填充 访问对象结束 概述 jvm对象内存布局详解。 相关文章在此总结如下: 文章地址jvm基本知识地址jvm类加载系统地址双亲委派模型与打破双亲委派地址运行时数据区地址运行时数…

【C/PTA——8.数组2(课外实践)】

C/PTA——8.数组2&#xff08;课外实践&#xff09; 7-4 矩阵运算7-2 方阵循环右移7-3 螺旋方阵7-4 数组-杨辉三角7-5 数组-对角线求和7-6 数组-矩阵最小值 7-4 矩阵运算 #include<stdio.h> int main() {int n, i, j;int a[10][10] { 0 };scanf("%d", &n)…

CodeEase标准化的低代码平台

目录 一、引言二、网站简介三、网站特色四、为什么推荐这个网站&#xff1f;五、总结 一、引言 随着互联网的快速发展&#xff0c;我们每天都会浏览各种各样的网站。今天&#xff0c;我想向大家推荐一个独特而出色的网站——CodeEase&#xff0c;这是一个致力于为用户提供便捷…

LLM App ≈ 数据ETL管线

虽然现有的 LLM 应用程序工具&#xff08;例如 LangChain 和 LlamaIndex&#xff09;对于构建 LLM 应用程序非常有用&#xff0c;但在初始实验之外不建议使用它们的数据加载功能。 当我构建和测试我的LLM应用程序管道时&#xff0c;我能够感受到一些尚未开发和破解的方面的痛苦…

TrOCR模型微调【基于transformer的光学字符识别】

TrOCR&#xff08;基于 Transformer 的光学字符识别&#xff09;模型是性能最佳的 OCR 模型之一。 在我们之前的文章中&#xff0c;我们分析了它们在单行打印和手写文本上的表现。 然而&#xff0c;与任何其他深度学习模型一样&#xff0c;它们也有其局限性。 TrOCR 在处理开箱…

任正非说:要提高合同质量,使我们从广种薄收转向有效益的扩张。

你好&#xff01;这是华研荟【任正非说】系列的第38篇文章&#xff0c;让我们聆听任正非先生的真知灼见&#xff0c;学习华为的管理思想和管理理念。 华研荟注&#xff1a;前两天为大家分享了任正非先生讲话中关于IPD、ISC、LTC流程的一些内容。今天来看看任正非对于合同的要求…

Programming Abstractions in C阅读笔记:p196

《Programming Abstractions in C》学习第63天&#xff0c;p196总结。涉及到编程之外的知识&#xff0c;依然是读起来很费劲&#xff0c;需要了解作者在书中提到的人物(Edouard Lucas)、地点(Benares)、神话传说(Brahma)等等。虽然深知自己做不到对人文知识&#xff0c;历史知识…

【教3妹学编程-算法题】阈值距离内邻居最少的城市

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 立冬之后又开始降温了&#xff0c; 外面风吹的呼呼的。 3妹&#xff1a;今天还有雨&#xff0c;2哥上班记得带伞。 2哥 : 好的 3妹&#xff1a;哼&#xff0c;不喜欢冬天&#xff0c;也不喜欢下雨天&#xff0c;要是我…

Vue学习day01:追风记事本

文章目录 一、插值表达式二、Vue常用指令2.1 内容渲染指令2.2 条件渲染指令2.3 事件绑定指令2.4 属性绑定指令2.5 列表渲染指令2.6 双向绑定指令 三、案例&#xff1a;追风记事本 一、插值表达式 插值表达式是一种Vue的模板语法&#xff0c;我们可以用插值表达式渲染出Vue提供的…

通用的链栈实现(C++)

template<class T> class MyStack//链栈 { private:struct StackNode{T data;StackNode* next;StackNode(const T& val T(), StackNode* p nullptr) :data(val), next(p) {}//};StackNode* top;int cursize;void clone(const MyStack& s){Clear();cursize s.c…

基于 Junit 的接口自动化测试框架实现!

分层的自动化测试 5~10 年前&#xff0c;我们接触的自动化测试更关注的是 UI 层的自动化测试&#xff0c;Mercury 的 WinRunner/QTP 是那个时代商业性自动化测试产品的典型代表&#xff0c;在那个时代大家单纯想的都是能用一个自动化操作的工具替代人力的点击&#xff0c;商业…

CorelDraw(cdr)2023最新版本的图形设计软件

CorelDRAW 2023是Corel公司推出的最新版本的图形设计软件。CorelDRAW是一款功能强大的矢量图形编辑工具&#xff0c;被广泛用于图形设计、插图、页面布局、照片编辑和网页设计等领域。 CorelDraw&#xff08;cdr&#xff09;2023 1. 新增的设计工具&#xff1a;CorelDRAW 2023…

vue3中的getCurrentInstance()函数,为什么要解构出proxy,因为proxy是响应式对象,要用响应式对象

Vue3组合式API&#xff1a;getCurrentInstance_vue3 getcurrentinstance-CSDN博客 1.getCurrentInstance函数只能写在生命周期钩子函数里&#xff0c;不能写在除生命周期之外的普通函数里&#xff0c;写了拿到的是null 2.调用 getCurrentInstance函数拿到的是一个对象&#xf…

HTML字符实体

从注释汲取知识&#xff0c;由代码熟悉用法&#xff0c;所以直接看代码吧&#xff01;&#x1f447;&#x1f447;&#x1f447; <body><!-- 空格 --><!-- 三个空格&#xff0c;实际只显示一个 --><div>我 嘎嘎嘎</div><!-- 用字符实体代替…

观察者模式-C++

观察者模式&#xff08;Observer&#xff09;是一种行为型设计模式&#xff0c;它用于在对象之间建立一对多的依赖关系&#xff0c;当一个对象发生改变时&#xff0c;所有依赖它的对象都会收到通知进行相应的改变。 观察者模式中有两种核心角色&#xff1a; 观察者&#xff0…