当前位置: 首页 > news >正文

部署Prometheus+Grafana简介、监控及设置告警(一)

部署Prometheus+Grafana简介、监控及设置告警

一. 环境准备

服务器类型IP地址组件
           Prometheus服务器、agent服务器、Grafana服务器192.168.213.7Prometheus 、node_expprter,Grafana
agent服务器192.168.213.8node_exporter

如果有防火请记得开启9090(Prometheus)、9100(Exporters)\3000(Grafana)

二. 部署Prometheus(普罗米修斯)

1.Promethus简介

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB),基于Go语言开发,是Google BorgMon监控系统的开源版本。Prometheus在2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个项目。

从目标系统中拉取指标数据并存储在本地数据库中。这些指标数据可以用于生成图表、警报和报告,以帮助用户了解他们系统的运作状况和性能表现。

Prometheus通过多种数学算法能实现强大的监控需求,原生支持K8S服务发现,能监控容器的动态变化。并且结合Grafana能绘出漂亮 图形,然后使用alertmanager或Grafana实现报警。它与其他监控相比有以下主要优势:

  • 数据格式是Key/Value形式,简单、速度快;采用多维数据模型(由指标名称和键/值维集定义的timeseries)
  • timeseries收集是通过HTTP上的拉取(pull mode)模型进行,通过中间网关支持timeseries的推送,通过服务发现或静态配置来发现目标,监控数据的精细程度可达到秒级(数据采集精度高情况下,对磁盘消耗大,存在性能瓶颈,且不支持集群,但可以通过联邦能力进行扩展)
  • 不依赖分布式存储,数据直接保存在本地,单节点是自治的,可独立运行管理,可以不需要额外的数据库配置。但是如果对历史数据 有较高要求,可以结合OpenTSDB;支持分层和水平联合。
  • 周边插件丰富,如果对监控要求不是特别严格的话,默认的几个成品插件已经足够使用;支持多种图形和仪表板
  • 本身基于数学计算模型,有大量的函数可用,可以实现很复杂的监控(故学习成本高,需要有一定数学思维,独有的数学命令行很难 入门)
  • 可以嵌入很多开源工具的内部去进行监控,数据更可信。
  • 使用PromQL,它是一种强大而灵活的查询语言,PromQL作为Prometheus强大的查询语言,可以灵活地处理监视数据。
     

    Prometheus最初是由SoundCloud开发的,现在已经成为了Cloud Native Computing Foundation(CNCF)旗下的一个项目。它有很多优点,包括易于安装和配置、支持动态发现、具有高可用性和灵活的查询语言等。此外,Prometheus集成了一个强大的警报系统,可以根据用户自定义的规则 进行警报通知,并支持多种通知方式,如Email、Slack和PagerDuty等。

    在现代应用程序和微服务架构的时代,Prometheus已经成为了一个被广泛采用的监控解决方案。

    【Prometheus的3大局限性】

2.prometheus部署

下载地址:https://prometheus.io/download/

 2.1下载安装包(两种方式)

2.1.1直接在官网下载

访问下载官网:https://prometheus.io/download/

 

选择版本,在哪部署选择哪个哪个,本文在linux上部署,所以,选择linux的tar包;

点击,等待下载完成,上传到服务器中;

2.1.2 服务器上直接使用wget下载

也是同样的先打开官网:找到自己要下载的版本;右击点击复制链接;

直接把包传上去

2.2 解压安装包并放到指定目录

#解压安装包

[root@localhost ~]# tar xf prometheus-3.3.0-rc.0.linux-amd64.tar.gz

#移动到/usr/local/目录,并修改名字

[root@localhost ~]# mv prometheus-3.3.0-rc.0.linux-amd64 /usr/local/prometheus

 2.3修改Prometheus配置文件

#进入Prometheus目录

root@localhost ~]# cd /usr/local/prometheus/

#备份配置文件

[root@localhost prometheus]# cp -ar prometheus.yml prometheus.yml-bak

#修改配置文件

## 第六行添加

scrape_timeout: 10s

## 找到下面这行localhost改为本机的IP(其实不改也可以,为了分辨,建议修改)

- targets: ["192.168.213.5:9090"]   

修改两处 

2.4 配置系统文件启动文件,设置开机自启(两种方式:推荐第一种)

2.4.1第一种:配置系统启动文件,设置开机自启

#进入这个文件,默认是没有的,直接进入就行

[root@localhost ~]# vi /usr/lib/systemd/system/prometheus.service

#将下面的全部写进去

[Unit]

Description=Prometheus Server

Documentation=https://prometheus.io

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/prometheus/prometheus \

--config.file=/usr/local/prometheus/prometheus.yml \

--storage.tsdb.path=/usr/local/prometheus/data/ \

--storage.tsdb.retention=15d \

--web.enable-lifecycle

ExecReload=/bin/kill -HUP $MAINPID

Restart=on-failure

[Install]

WantedBy=multi-user.target

#启动

[root@localhost ~]# systemctl restart prometheus

#设置开机自启

[root@localhost ~]# systemctl enable prometheus

#查看端口是否启动9090

[root@localhost prometheus]# netstat -anput | grep 9090

 2.4.2 第二种:进入解压目录,挂后台执行./prometheus

#进入解压目录

[root@localhost ~]# cd /usr/local/prometheus

#挂后台执行./prometheus

[root@localhost prometheus]# ./prometheus &

#查看端口是否启动

[root@localhost prometheus]# netstat -anput | grep 9090

2.5 页面访问

浏览器访问:http://192.168.213.5:9090,访问到Prometheus的Web UI页面

点击页面的Status ->Target,如看到Target状态都为UP,说明Prometheus能正常采集到数据

http://192.168.213.5:9090/metrc,可以看到Prometheus采集到自己得指标数据

 

点击这个红色框内可以查看监控数据

点击graph可以查看折线图

add可添加多个要监控得这折线图

2.6 服务端安装完成

至此,Prometheus 服务端安装完成

三. 部署Exporters(普罗米修斯客户端)

Exporters远程监控linux主机,也就是普罗米修斯客户端

1.Exporters部署 

在远程linux主机(客户端agent)上安装node_exporter组件。

下载地址: https://prometheus.io/download/

1.1下载按安装包(两种方式)

1.1.1直接在官网下载

访问下载官网:https://prometheus.io/download/ 

可以ctrl+f搜索node_exporter

同样也是下载linux版本;点击,等待下载完成,上传到服务器中;

1.1.2服务器上直接使用wget下载

也是同样的先打开官网:找到自己要下载的版本;右击点击复制连接;

在服务器上使用wget下载

[root@localhost ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-amd64.tar.gz

等待下载完成之后。

1.2 解压安装包并放到指定目录

#解压安装包

[root@localhost ~]# tar xf node_exporter-1.9.1.linux-amd64.tar.gz

#移动到/usr/local/目录,并修改名字(名字可自行修改,只要记住这个文件夹是干什么得就行)

[root@localhost ~]# mv node_exporter-1.9.1.linux-amd64 /usr/local/prometheus_node

1.3配置系统启动文件,设置开机自启(两种方式:推荐第一种)

1.3.1第一种:配置系统启动文件,启动并设置开机自启 

#进入这个文件,默认是没有得,直接进入就行

[root@localhost ~]# vi /usr/lib/systemd/system/node_exporter.service

#将下面得全部写进去

#启动

[root@localhost ~]# systemctl restart node_exporter

#设置开机自启

[root@localhost ~]# systemctl enable node_exporter

#查看端口是否启动9100

[root@localhost ~]# netstat -anput | grep 9100

1.3.2 第二种进入解压目录,挂后台执行./node_exporter

#进入解压目录

[root@localhost ~]# cd /usr/local/prometheus_node

#挂后台执行 

[root@localhost ~]# ./node_exporter &

#查看端口是否启动

[root@localhost ~]# netstat -anput | grep 9100

 也是可以启动的,但是不好的是,不能设置开机自启,如果想要开机自启,还需要手动写一个启动服务器去执行他的 命令或者周期性计划任务,所以不推荐使用方法二

1.4页面访问

浏览器访问IP:192.168.213.6:9100

 

点击Metrics可以查看node_exporter 在被监控端收集得监控信息:

1.5客户端安装完成

回到Prometheus服务端得配置文件里添加被监控机器得配置段

2.修改Prometheus服务端的配置文件里添加被监控机器的配置端

2.1添加客户端到服务端(分为添加单个客户端与多个客户端两部分)

2.1.1添加单个客户端

#进入prometheus的配置文件中

[root@localhost ~]# vi /usr/local/prometheus/prometheus.yml

#添加以下几行,到最后(格式和上面的服务端一样,因为yml文件格式要求严格,所以必须一样,否则启动会报错)

2.1.2 添加多个客户端

给服务端也安装一个客户端,添加到服务端

添加方式一:使用多个命名来命名客户端的作用

 - job_name: 'agent1'

    static_configs:

      - targets: ["192.168.213.6:9100"]

  - job_name: "agent2"

    static_configs:

      - targets: ["192.168.213.6:9100"]

2.2重启服务器

[root@localhost ~]# systemctl restart prometheus

等待重启完成,刷新一下页面,如果还是没有可以清除一下缓存,试试。

如果重启还不好使

注意:这里的重启不报错不代表重启成功

把下面这段插进去

[root@localhost ~]# sudo vi /usr/lib/systemd/system/prometheus.service

[Unit]

Description=prometheus

Documentation=prometheus

After=network.target

[Service]

User=root

WorkingDirector=/root/prometheus

ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml

ExecReload=/bin/kill -HUP $MAINPID

Restart=on-failure

LimitNOFILE=65535

[Install]

WantedBy=multi-user.target

 3.附加(服务端配置文件)

3.1监测prometheus配置文件是否正确

[root@localhost ~]# cd /usr/local/prometheus/

[root@localhost prometheus]# ./promtool check config prometheus.yml

Checking prometheus.yml

SUCCESS: prometheus.yml is valid prometheus config file syntax

 4.实例:监控远程MySQL服务

在被客户端agent上安装mysql_exporter组件

下载地址:Download | Prometheus 

4.1下载安装包(两种方式)

4.1.1直接在官网下载

访问下载官网:Download | Prometheus

 选择要下载的版本

同样也是下载linux版本;点击,等待下载完成,上传到服务器中;

4.1.2 服务器上直接使用wget下载

也是同样的先打开官网:找到自己要下载的版本;右击点击复制连接;

在服务器上使用wget下载

[root@localhost ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz

等待下载完成之后,

4.2解压安装包并放到指定目录

#解压安装包并放到/usr/local/下

[root@localhost ~]# tar xf mysqld_exporter-0.17.2.linux-amd64.tar.gz

#进入/usr/local/下给重命名为:mysql_exporter

[root@localhost ~]# mv mysqld_exporter-0.17.2.linux-amd64/ mysqld_exporter

4.3安装mysql数据库,并授权

4.3.1安装mysql数据库并进行用户授权

第一种:新安装mariadb开始

#安装mariadb

[root@localhost ~]# yum install mariadb\* -y

#启动数据库

[root@localhost ~]# systemctl start mariadb

#设置开机自启

[root@localhost ~]# systemctl enable mariadb

#查看数据库是否启动(有进程则启动)

[root@localhost ~]# netstat -anput | grep 3306

#数据库初始化操作(设置密码)

 

第一步回车,在设置密码下面,一路y

#进入mysql数据库

[root@localhost ~]# mysql -uroot -p123456

#创建mysql_exporter用户并设置密码

MariaDB [(none)]> create user 'mysql_exporter'@'localhost' identified by '123456';

#给mysql_exporter查询权限

MariaDB [(none)]> grant select,replication client,process on *.* to 'mysql_exporter'@'localhost';

#刷新权限

MariaDB [(none)]> flush privileges;

4.4创建一个mysqld_exporter配置文件

创建一个mysqld_exporter配置文件,写上连接的用户名和密码(和上面的授权的用户名和密码要对应)

[root@localhost ~]# cat /usr/local/mysqld_exporter/.my.cnf

[client]

user=mysql_exporter

password=123456

4.5配置系统启动文件,设置开机自启(两种方式:推荐第二种) 

4.5.1第一种:配置系统启动文件,启动并设置开机自启

#进入这个文件,默认是没有的,直接进入就行

[root@localhost ~]# vi /usr/lib/systemd/system/mysqld_exporter.service

#将下面的全部写进去

[Unit]

Description=mysqld_exporter

Documentation=https://prometheus.io/

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \

--collector.ntp \

--collector.mountstats \

--collector.systemd \

--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID

Restart=on-failure

[Install]

WantedBy=multi-user.target

四,部署Grafana(可视化) 

1.Grafana简介

Grafana 是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。

Grafana是一个开源的数据可视化工具,它可以拉取各种不同的数据源并将它们呈现为漂亮而易于理解的图表。 Grafana可以用于监控和分析各种服务和应用程序的性能和状况,包括数据库、Web服务器、应用程序服务器等。Grafana具有可扩展性,可以支持许多不同的数据源和可视化库, 例如Graphite、InfluxDB、Prometheus、Elasticsearch等。同时,Grafana还提供了丰富的插件和面板,帮助用户更好地理解和管理数据。

  随着公司业务的不断发展,紧接来的是业务种类的增加、服务器数量的增长、网络环境的越发复杂以及发布更加频繁,从而不可避免 地带来了线上事故的增多,因此需要对服务器到应用的全方位监控,提前预警,急需一个工具来解决这个问题,而Grafana的出现完美的解决了这个问题。

 

 

主要特点

1.1.grafana提供了快速灵活的可视化效果,可以让自己以任何想要的方式来可视化数据

 

1.2.支持众多插件,使用Grafana插件可以连接自己的工具和团队,数据源插件通过API挂接到现有数据源中,实时呈现数据,而无需迁移或引入数据。

1.3.告警系统,可以在一个简单的UI中创建,管理所有警报从而轻松整合和集中所有警报。

2.Grafana部署/下载

官网下载地址:Download Grafana | Grafana Labs 

进入官网直接下载最新版本就行

2.1下载安装包

 2.2启动grafana并设置开机自启

#启动grafana-server服务

systemctl start grafana-server

#设置开机自启

systemctl enable grafana-server

#查看端口(默认为3000)

netstat -natp | grep 3000

2.3页面访问

IP:192.168.213.5:3000

注意:默认账号密码为:

账号:admin

密码:admin

grafana默认配置文件目录/etc/grafana/grafana.ini

进去还需要设置一个新密码

 

2.4配置数据源

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

选择 Prometheus

点击保存测试

2.5导入模板

可以看到我们刚刚创建的

点进去,选择:Dashboards->从中选择任意一个模板,这里我选择第二个。点击import

安装成功

然后点击名称,进入可以查看模板

这里可以看到了,但是他只是个模板,不能显示出来,接下来,我们将自己做数据源将数据展示出来。

2.6为数据源做自定义数据展示

点击右上角的加号,再点击创建新的仪表盘

选择刚刚添加的监控项

选择load1、load5、load1;一分钟

五分钟、十五分钟负载

点击下方红框可以测试,直接在上面显示

这里写了三个条件

点击保存

自定义名称、点击保存;

最后在dashboard可以查看到 。

http://www.xdnf.cn/news/323209.html

相关文章:

  • ChromeDriverManager的具体用法
  • uni-app实现完成任务解锁拼图功能
  • 数字康养新范式:七彩喜平台重构智慧养老生态的深度实践
  • 【Python 实战】---- 使用Python批量将 .ncm 格式的音频文件转换为 .mp3 格式
  • 加速项目落地(Trae编辑器)
  • 知识图谱:AI大脑中的“超级地图”如何炼成?
  • MCU缓存架构设计与优化策略
  • 【工具】HandBrake使用指南:功能详解与视频转码
  • IBM BAW(原BPM升级版)使用教程Toolkit介绍
  • MATLAB中去除噪声
  • 安装并运行第一个Spark程序
  • 什么是声明式UI什么是命令式UI?鸿蒙ArkTS为什么是声明式UI-优雅草卓伊凡
  • 如何使用UGUI的EventTrigger
  • IT项目实施方案,软件系统实施方案,信息化项目实施方案,软件文档资料(Word)
  • TextIn ParseX重磅功能更新:支持切换公式输出形式、表格解析优化、新增电子档PDF去印章
  • 如何构建直播美颜SDK?从美颜API调用逻辑到GPU优化实战
  • IEC103 转 ModbusTCP 网关
  • 【STM32F1标准库】理论——通信协议:串口
  • 大数据应用开发和项目实战-电商双11美妆数据分析2
  • 扣子(Coze)的记忆系统详解
  • unity 使用蓝牙通讯(PC版,非安卓)
  • linux 安装ssh server
  • 配电站室智能巡检:机器人 VS 固定摄像头,谁更胜一筹?
  • 聊一聊Qwen3思考模式实现以及背后原理探讨
  • 信息论11:从互信息到最大信息系数——信息论中的非线性关联度量
  • 内网和外网怎么互通?外网访问内网的几种简单方式
  • 在cursor中使用MCP插件生成旅行规划到桌面的执行步骤分析
  • PDF文档压缩攻略
  • Python循环进阶:嵌套与控制的深度解析
  • 详解Redis