自由的羽毛 发表于 2024-7-22 13:28:53

Linux摆设Prometheus+Grafana

一、Prometheus(普罗米修斯)

1、Prometheus简述

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB),基于Go语言开发,是Google BorgMon监控系统的开源版本。Prometheus在2016年加入了云原生存算基金会,成为Kubernetes之后的第二个项目。
Prometheus是一个开源的监控系统,它可以帮助用户监控各种不同类型的系统和应用步伐。Prometheus采用的是pull模子,它定期从目标系统中拉取指标数据在当地数据库中。这些指标数据可以用于天生图表、警报和报告,以帮助用户相识他们系统的运作状态和性能表现。Prometheus通过多种数学算法能实现强大的监控需求,原生支持k8s服务发现,能监控容器的动态变化,并且结合Grafana能绘出美丽图形,然后使用Altermanager或Grafana实现报警。
2、Prometheus特点



[*] 多维数据模子:由度量名称和键值对标识的时间序列数据
[*] 时间序列数据:按照时间序次记录系统、装备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用步伐性能监控数据、网络数据等都是时序数据
[*] 内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等
[*] promQL 一种机动的查询语言,可以利用多维数据完成复杂查询
[*] 基于 HTTP 的 pull(拉取)方式采集时间序列数据
[*] 同时支持 PushGateway 组件网络数据
[*] 通过静态配置或服务发现发现目标
[*] 支持作为数据源接入 Grafana
3、Prometheus生态组件

Prometheus Server:用于网络、存储和查询监控数据的核心组件。它定期从配置的目标中拉取指标数据,并将其存储在当地的时间序列数据库中。
Alertmanager:用于处理和发送警报通知的组件。Alertmanager可以根据配置的规则对监控数据举行分析,并在触发警报条件时发送通知。
Exporters:用于将各种服务和应用步伐的指标数据转换成Prometheus可读取的格式。
Client Libraries:用于将应用步伐的指标数据暴露给Prometheus Server的库。Prometheus提供了多种语言的客户端库,方便开发人员集成监控功能到他们的应用步伐中。
Service Discovery:服务发现,用于动态发现待监控的 Target,Prometheus 支持多种服务发现机制:文件、DNS、Consul、Kubernetes 等等。 服务发现可通过第三方提供的接口,Prometheus 查询到需要监控的 Target 列表,然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持
Grafana:一个开源的数据可视化工具,可以与Prometheus集成,用于创建仪表板和图表展示监控数据。
4、Prometheus工作原理

●Prometheus Server 基于服务发现(Service Discovery)机制或静态配置获取要监视的目标(Target),并通过每个目标上的指标 exporter 来采集(Scrape)指标数据;
●Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据,用户可使用 PromQL 接口来检索数据,也能够按需将告警需求发往 Alertmanager 完成告警内容发送;
●一些短期运行的作业的生命周期过短,难以有效地将必要的指标数据供给到 Server 端,它们一般会采用推送(Push)方式输出指标数据, Prometheus 借助于 Pushgateway 吸收这些推送的数据,进而由 Server 端举行抓取
二、摆设Prometheus

1、系统架构

https://i-blog.csdnimg.cn/direct/d6c9fe2227b9431e8127ce3f5d4653d5.png#pic_center
2、摆设Prometheus

直接访问官网
①地址:https://prometheus.io/download/
https://i-blog.csdnimg.cn/direct/b8b2e34604584c9484a78ab940d07ce1.png#pic_center
在服务器上直接下载
②地址:https://prometheus.io/download/
https://i-blog.csdnimg.cn/direct/99a08d1d3ad342189487336511c6f1c1.png#pic_center
wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
https://i-blog.csdnimg.cn/direct/c389f890f93e4f20b9fe2f1409de5719.png#pic_center
# setenforce 0
# systemctl disable--now firewalld.service
# tar -xvf prometheus-2.53.0.linux-amd64.tar.gz
#mv prometheus-2.53.0.linux-amd64 /usr/local/prometheus
3、修改配置文件

# cp prometheus.yml prometheus.yml.bak

## 第六行添加
scrape_timeout: 10s      ##采集超时时间
## 最后一行localhost改为本机的ip(其实不改也可以,为了分辨,建议修改)
- targets: ["172.16.11.209:9090"]
https://i-blog.csdnimg.cn/direct/8daa5d6c18364f758de8926d3613de37.png#pic_center
4、配置系统启动文件

配置系统启动文件,并且设置开机自启动
#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/prometheus.service


   #服务单元
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target   #依赖关系


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


WantedBy=multi-user.target
https://i-blog.csdnimg.cn/direct/7cb76f9ff4eb46f7b718debbb98ea5a9.png#pic_center
# systemctl restart prometheus
# systemctl enable prometheus
# ss -antp|grep 9090
https://i-blog.csdnimg.cn/direct/447a2f50ed2847a986ae381b9c259081.png#pic_center
通过浏览器访问http:// 服务器 IP:9090 就可以访问到 Prometheus 的主界面:
https://i-blog.csdnimg.cn/direct/7261532051be4ebe81fd7af965c0ce23.png#pic_center
默认只监控了本机一台,点 Status→点 Targets→可以看到只监控了本机:
https://i-blog.csdnimg.cn/direct/ddadcb4f2e3e48528558bca9ac63adf6.png#pic_center
通过 http:// 服务器 IP:9090/metrics 可以查看到监控的数据:
https://i-blog.csdnimg.cn/direct/42978d06fd274277862739b5d1eec126.png#pic_center
三、摆设 Node Exporter 监控系统级指标

1、下载安装包

地址:https://prometheus.io/download/
监控长途主机(被监控端上安装node_Export192.168.10.131)组件
https://i-blog.csdnimg.cn/direct/3da1af028b2b4b8b8149ae59ef37561e.png#pic_center
(1)上传所需要软件包到 /opt目次,并解压
# tar xf node_exporter-1.8.1.linux-amd64.tar.gz
# ls
node_exporter-1.8.1.linux-amd64node_exporter-1.8.1.linux-amd64.tar.gzrh
# cd node_exporter-1.8.1.linux-amd64/
# ls
LICENSEnode_exporterNOTICE
# mv node_exporter /usr/local/bin/
#
https://i-blog.csdnimg.cn/direct/13e51481e6fd4bbbb9a5aff1a0694215.png#pic_center
2、配置启动文件

# vim /usr/lib/systemd/system/node_exporter.service


Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target


Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure


WantedBy=multi-user.target
https://i-blog.csdnimg.cn/direct/69f519e7633a42b1a8a3c6c4b59bcfdf.png#pic_center
3、启动

# systemctl start node_exporter.service
# systemctl enable node_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
# ss -natp|grep 9100

浏览器访问:http://192.168.109.20:9100/metrics ,可以看到 Node Exporter 采集到的指标数据
https://i-blog.csdnimg.cn/direct/8d8ba8022cc345e1ade78e9f87277186.png#pic_center
通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端网络的监控信息:
https://i-blog.csdnimg.cn/direct/8f2b3cbb9fc34deaa4eef98333a84041.png#pic_center
点击Metrics可以查看node_exporter 在被监控端网络的监控信息
https://i-blog.csdnimg.cn/direct/bb1d1eda57884b599202c08fe4d6d84e.png#pic_center
(1)修改Prometheus配置文件
vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent'
    static_configs:
    - targets: ['192.168.10.131:9100']
# systemctl restart prometheus.service    #修改完后重启服务
# systemctl status prometheus
https://i-blog.csdnimg.cn/direct/ed6a442712664f06a6fc3b35700b040d.png#pic_center
监测prometheus配置文件是否正确
#cd /usr/local/prometheus
# ./promtool check config prometheus.yml
成功状态
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
失败状态
Checking prometheus.yml
FAILED: parsing YAML file prometheus.yml: "172.16.11.209:9999/cs" is not a valid hostname
(2)访问Prometheus服务器,刷新
回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标
https://i-blog.csdnimg.cn/direct/66b8f17fa9ba4d39aea092ea76f7b486.png#pic_center
注:也可以在本机安装 node_exporter,使用上面的方式监控本机。
四、监控长途MySQL

在被管理机 agent上安装 mysqld_exporter 组件
1、下载安装包

地址:https://prometheus.io/download/
https://i-blog.csdnimg.cn/direct/bf12d4127a3641db9717110863449457.png#pic_center
也可在服务器上直接下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
2、安装mysqld_exporter组件

# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local
# mv /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
# ls /usr/local/mysqld_exporter/
LICENSEmysqld_exporterNOTICE
https://i-blog.csdnimg.cn/direct/c92ca9235ac34768a2e02ab489474d86.png#pic_center
(1) 安装mariadb数据库,并授权
# yum install mariadb\* -y
# systemctl startmariadb
# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
# mysql
Welcome to the MariaDB monitor.Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'192.168.10.131' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>
https://i-blog.csdnimg.cn/direct/d0379165c7044e0f90a978345f3d7ed1.png#pic_center
(2)创建一个mariadb配置文件
创建一个mariadb配置文件,写上毗连的用户名和密码(和上面的授权的用户名和密码要对应)
https://i-blog.csdnimg.cn/direct/7edd3ea4d7d2439d943e4284e1eab507.png#pic_center
(3)配置启动文件
# vim /usr/lib/systemd/system/mysqld_exporter.service


Description=node_exporter
Documentation=https://prometheus.io/
After=network.target


Type=simple
ExecStart=/usr/local/bin/mysqld_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure


WantedBy=multi-user.target
https://i-blog.csdnimg.cn/direct/83d17161c99e492eb8caa7e90d068686.png#pic_center
#启动
systemctl restart mysqld_exporter

#设置开机自启
systemctl enable mysqld_exporter

#查看端口是否启动9104
netstat -anput | grep 9104
https://i-blog.csdnimg.cn/direct/6dd087c3949642b6bae5fd74bc477d99.png#pic_center
第二种启动方式
#进入解压目录
cd /usr/local/mysqld_exporter

#挂后台执行 mysqld_exporter
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &

#查看端口是否启动
netstat -anput | grep 9104
https://i-blog.csdnimg.cn/direct/c0337c293da5488a87c53f301ffe70c3.png#pic_center
页面访问:IP:9104
https://i-blog.csdnimg.cn/direct/376eeeeb718f4971b2072d2e87a13e81.png#pic_center
客户端配置完成
3、配置服务端

# vim /usr/local/prometheus/prometheus.yml

- job_name: "agetn-mysql"
    static_configs:   
      - targets: ["192.168.10.131:9104"]

# systemctl restart prometheus.service

https://i-blog.csdnimg.cn/direct/15783317e5034c63b8088f4ff64e9017.png#pic_center
添加完后,重启服务
# systemctl restart prometheus.service
等候重启完成,刷新一下页面,假如还是没有可以扫除一下缓存,试试。
https://i-blog.csdnimg.cn/direct/aa504ec91c444c668d02da640e82ff2a.png#pic_center
添加成功
五、Grafana平台摆设

1、Grafana简介

Grafana是一种开源的数据可视化和监控平台,它允许用户通过创建动态仪表板来监视和分析数据。Grafana最初由Torkel Ödegaard于2014年创建,旨在为不同数据源提供统一的可视化界面。它支持多种数据源,包括但不限于Graphite、Prometheus、Elasticsearch、InfluxDB等。通过Grafana,用户可以轻松创建图标、图形和面板,以直观和动态的方式展示数据趋势、指标和报警。
随着公司业务的不停发展,业务种类的增长、服务器数目的增长和网络情况的复杂以及版本发布频繁,从而不可制止带来了线上事故的增多,因此需要对服务器举行全方位的监控,提前预警,急需一个工具来实现办理这个题目,而Grafana的出现完美办理了这个题目。
https://i-blog.csdnimg.cn/direct/7cdabc80234c4b80b647c81577bfd2c2.png#pic_center
Grafana特点:
多数据源支持:可以从多种数据源中网络数据,并在同一仪表板中举行统一展示。
可视化选项丰富:提供了各种图表类型、样式和配置选项,用户可以根据需求定制图表。
告警功能:支持设置警报规则,并在到达特定条件时发送通知。
插件生态系统:拥有丰富的插件生态系统,用户可以根据需要扩展和定制功能。
社区支持:拥有活泼的开发社区,提供了丰富的文档、教程和支持资源。
https://i-blog.csdnimg.cn/direct/93856548fb4149669ab380f39244d275.gif#pic_center
2、Grafana起源与初衷

Grafana的起源可以追溯到2014年,由瑞典工程师Torkel Ödegaard创建。其时,Torkel是一位开发者,他感受到了在处理和展示不同数据源时的困难和不便。他意识到,很多组织和开发者都面对着雷同的挑战,需要从多个数据源中网络数据,并以可视化的方式将其出现出来。
因此,Torkel决定创建一个开源的数据可视化平台,旨在为用户提供统一的界面和工具,帮助他们轻松地监控和分析数据。他的初衷是构建一个机动、易于使用且功能强大的平台,能够满意各种不同场景下的需求。在初始阶段,Grafana重要是为了满意Graphite这样的数据存储和可视化工具的需求而创建的。但随着时间的推移,Grafana的功能渐渐扩展,开始支持更多的数据源,如InfluxDB、Prometheus、Elasticsearch等,使其成为一个更加通用的数据可视化和监控平台。由于其开放源代码的特性,Grafana迅速得到了开发者和用户的欢迎,形成了一个活泼的社区。这个社区不停贡献新的功能、插件和改进,推动了Grafana的不停发展和壮大。
https://i-blog.csdnimg.cn/direct/f0f48c903ec54186b0a61847b663bfb0.gif#pic_center
3、Grafana摆设

下载地址:https://grafana.com/grafana/download
https://i-blog.csdnimg.cn/direct/e276f421ad464342a0c09cf09e097539.png#pic_center
下载保举rpm包,点击一下,就会自动下载;大概复制一下,粘贴到服务器上也会下载。
https://i-blog.csdnimg.cn/direct/87381b5dfbfd4db8a1d88ad0f98fa685.png#pic_center
假如是直接在服务器实行下载的,直接等候下载完成启动即可,假如是下载的rpm包,就需要上传到服务器上,然后使用rpm -ivh grafana-enterprise-9.5.2-1.x86_64.rpm 举行安装;
假如是使用的二进制离线包安装的,默认是没有系统启动配置文件的,以是我们需要加一个:
#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/grafana.service

#将下面的全部写进去

Description=Grafana instance
After=network.target


Type=simple
WorkingDirectory=/data/monitor/grafana/
ExecStart=/data/monitor/grafana/bin/grafana-server
Restart=always


WantedBy=multi-user.target


# systemctl start grafana-server.service    #启动
# systemctl enable grafana-server.service   #设置开机自启
#ss -anput | grep 3000               #查看端口是否启动3000
https://i-blog.csdnimg.cn/direct/3edf24d1fe684c82bb0facf4a1f72f51.png#pic_center
页面访问 IP:port(3000)
注意:默认账号密码为:
账号:admin
密码:admin

grafana默认配置文件目录 /etc/grafana/grafana.ini
https://i-blog.csdnimg.cn/direct/92889b58acfe45bd933c6ba806feaf3e.png#pic_center
进去需要设置一个新的密码
https://i-blog.csdnimg.cn/direct/51b67f73ac0249f48089502fd3a40f80.png#pic_center
4、配置数据源

https://i-blog.csdnimg.cn/direct/aaf899d843ac4eefbc5249185e009177.png#pic_center
https://i-blog.csdnimg.cn/direct/d76ee4ba716a42028c230e93b1a614dc.png#pic_center
https://i-blog.csdnimg.cn/direct/4d350f00426e43b990aa6d43f65315a2.png#pic_center
点击保存测试
https://i-blog.csdnimg.cn/direct/a2be8e9b339a4882aab6e47204991c96.png#pic_center
可以看到刚创建的模板
https://i-blog.csdnimg.cn/direct/c628edc36a47416b8e27421fe69b508d.png#pic_center
5、导入模板

点进去,选择:Dashboards–>从中选择恣意一个模板,这里我选择第二个,点击import。
https://i-blog.csdnimg.cn/direct/54ff34efed1c4632bc9866a3a7f0b944.png#pic_center
https://i-blog.csdnimg.cn/direct/ef9a5e73d1874d2580623b3259e14a60.png#pic_center
点击名称,进入可以查看模板
https://i-blog.csdnimg.cn/direct/6ecdbc3ccf084620a0ebadadfee7e598.png#pic_center
这里所展示的只是个模板
6、数据源做数据展示

点击右上角加号,再点击创建新的仪表板
https://i-blog.csdnimg.cn/direct/67a8ce92750b4ac389401cb54f6aadaa.png#pic_center
https://i-blog.csdnimg.cn/direct/0b2edbee1937410d92bc0721bcfd4f47.png#pic_center
选择刚刚添加的监控项
https://i-blog.csdnimg.cn/direct/76e3fdb5570f44fc93fc4c010701e876.png#pic_center
https://i-blog.csdnimg.cn/direct/95654d217e2e43a091641f96c96a70c3.png#pic_center
https://i-blog.csdnimg.cn/direct/d76b00187333441b9077817e717841b0.png#pic_center
在这写了三个条件
https://i-blog.csdnimg.cn/direct/40c0937f344943ef839ed965d63dd5c1.png#pic_center
https://i-blog.csdnimg.cn/direct/7ff462fe5d1f4825a4572dfa3eee363c.png#pic_center
https://i-blog.csdnimg.cn/direct/4f9505d921354ab4bc0390e013c37e76.png#pic_center
再次点击dashboard可以查看到
https://i-blog.csdnimg.cn/direct/ed4c190fc84647c78008d1537e9c1f76.png#pic_center
自界说的监控模块(监控的服务端的1、5、15分钟的平均负载),一个一个添加比较麻烦,我们可以去找一些模板
7、导入监控模板

这里我们使用现成的模板导入即可,GitHub上面很多人开发了dashboards模板,官方社区上也有很多开源的dashboards模板,我们只需要把模板的Copy ID 或者 Download JSON文件导入到grafana即可,参考官网免费的dashboards模板。

官方模板地址:https://grafana.com/grafana/dashboards/
进入官网,往下拉,可以看到选择这几个,Data Source 选择Prometheus,然后搜刮主机监控,大概本身界说,linux什么的都可以,根据本身的需求选择
https://i-blog.csdnimg.cn/direct/f5a80b6063bf4a0dab9a2681c45cda1b.png#pic_center
可以看到右边有Copy ID 和 Download JSON,自行选择就行;这里我选择复制id,json需要下载
https://i-blog.csdnimg.cn/direct/ce7f54f2d7844c93aff7973cfe3744c6.png#pic_center
复制好id之后,打开在 grafana 页面中,+ Create -> Import ,输入面板 ID 号大概上传 JSON 文件,点击 Load,即可导入监控面板
https://i-blog.csdnimg.cn/direct/260f7f129c464b1081d1e65d812d533e.png#pic_center
https://i-blog.csdnimg.cn/direct/52b5187528254a728ab49c59baaf0a98.png#pic_center
添加完成后页面视图如下
https://i-blog.csdnimg.cn/direct/fced83d275fb42788cc57b0a2205e1f5.png#pic_center
https://i-blog.csdnimg.cn/direct/b1e8319ccc264f22bca03e73df1c612b.png#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux摆设Prometheus+Grafana