prometheus安装及使用

Prometheus

架构图

环境准备: 
	10.0.0.31 prometheus-server31 
		2 core 2GB+
	10.0.0.32 prometheus-server32 
		1 core 1GB+
	10.0.0.33 prometheus-server33
		1 core 1GB+
	10.0.0.41 node-exporter41 
		1 core 1GB+
	10.0.0.42 node-exporter42 
		1 core 1GB+
	10.0.0.43 node-exporter43
		1 core 1GB+
	10.0.0.51 grafana51
		2 core 2GB+



- Prometheus概述:
官网地址:
	https://prometheus.io/
	
github地址:
	https://github.com/prometheus/prometheus
	
	
	
- Prometheus  一键部署
	1.下载Prometheus server 
[root@prometheus-server31 ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.linux-amd64.tar.gz



	2.创建工作目录
[root@prometheus-server31 ~]# mkdir -pv /yanshier/softwares

	
	3.解压软件包 
[root@prometheus-server31 ~]# tar xf prometheus-2.53.3.linux-amd64.tar.gz -C /yanshier/softwares/


	4.启动Prometheus server 
[root@prometheus-server31 ~]# cd /yanshier/softwares/prometheus-2.53.3.linux-amd64/
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# 
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# ll
total 261340
drwxr-xr-x 4 1001 colord      4096 Nov  5 20:37 ./
drwxr-xr-x 3 root root        4096 Nov 11 09:42 ../
drwxr-xr-x 2 1001 colord      4096 Nov  5 20:35 console_libraries/
drwxr-xr-x 2 1001 colord      4096 Nov  5 20:35 consoles/
-rw-r--r-- 1 1001 colord     11357 Nov  5 20:35 LICENSE
-rw-r--r-- 1 1001 colord      3773 Nov  5 20:35 NOTICE
-rwxr-xr-x 1 1001 colord 137839708 Nov  5 20:19 prometheus*
-rw-r--r-- 1 1001 colord       934 Nov  5 20:35 prometheus.yml
-rwxr-xr-x 1 1001 colord 129729365 Nov  5 20:19 promtool*
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# 
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# ./prometheus 
ts=2024-11-11T01:42:50.535Z caller=main.go:589 level=info msg="No time or size retention was set so using the default time retention" duration=15d
ts=2024-11-11T01:42:50.536Z caller=main.go:633 level=info msg="Starting Prometheus Server" mode=server version="(version=2.53.3, branch=HEAD, revision=1491d29fb1e8f8acbab29fd54fd4ce9be2cbd7bc)"
ts=2024-11-11T01:42:50.536Z caller=main.go:638 level=info build_context="(go=go1.22.8, platform=linux/amd64, user=root@c6939e39a10c, date=20241105-12:18:07, tags=netgo,builtinassets,stringlabels)"
ts=2024-11-11T01:42:50.536Z caller=main.go:639 level=info host_details="(Linux 5.15.0-119-generic #129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024 x86_64 prometheus-server31 (none))"
ts=2024-11-11T01:42:50.536Z caller=main.go:640 level=info fd_limits="(soft=1048576, hard=1048576)"
ts=2024-11-11T01:42:50.536Z caller=main.go:641 level=info vm_limits="(soft=unlimited, hard=unlimited)"
ts=2024-11-11T01:42:50.544Z caller=web.go:568 level=info component=web msg="Start listening for connections" address=0.0.0.0:9090
ts=2024-11-11T01:42:50.545Z caller=main.go:1148 level=info msg="Starting TSDB ..."
ts=2024-11-11T01:42:50.545Z caller=tls_config.go:313 level=info component=web msg="Listening on" address=[::]:9090
...
	
	
	5.访问Prometheus的WebUI
http://10.0.0.31:9090/

二进制部署node-exporter

node_exporter的作用:
	可以暴露Linux服务器的指标,可以采集CPU,内存,磁盘,网络等一系列使用情况,基于http协议暴露到外端。
	
	
	1.下载node-exporter
[root@node-exporter41 ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz


	2.创建工作目录 
[root@node-exporter41 ~]# mkdir -pv /yanshier/softwares


	3.解压node-exporter
[root@node-exporter41 ~]# tar xf node_exporter-1.8.2.linux-amd64.tar.gz -C /yanshier/softwares/

	
	4.启动node-exporter 
[root@node-exporter41 ~]# cd /yanshier/softwares/node_exporter-1.8.2.linux-amd64/
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# 
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# ll
total 20048
drwxr-xr-x 2 1001 1002     4096 Jul 14 19:58 ./
drwxr-xr-x 3 root root     4096 Nov 11 10:29 ../
-rw-r--r-- 1 1001 1002    11357 Jul 14 19:57 LICENSE
-rwxr-xr-x 1 1001 1002 20500541 Jul 14 19:54 node_exporter*
-rw-r--r-- 1 1001 1002      463 Jul 14 19:57 NOTICE
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# 
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# ./node_exporter 
ts=2024-11-11T02:29:41.996Z caller=node_exporter.go:193 level=info msg="Starting node_exporter" version="(version=1.8.2, branch=HEAD, revision=f1e0e8360aa60b6cb5e5cc1560bed348fc2c1895)"
ts=2024-11-11T02:29:41.996Z caller=node_exporter.go:194 level=info msg="Build context" build_context="(go=go1.22.5, platform=linux/amd64, user=root@03d440803209, date=20240714-11:53:45, tags=unknown)"
ts=2024-11-11T02:29:41.996Z caller=node_exporter.go:196 level=warn msg="Node Exporter is running as root user. This exporter is designed to run as unprivileged user, root is not required."
ts=2024-11-11T02:29:41.997Z caller=filesystem_common.go:111 level=info collector=filesystem msg="Parsed flag --collector.filesystem.mount-points-exclude" flag=^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+|var/lib/containers/storage/.+)($|/)
ts=2024-11-11T02:29:41.997Z caller=filesystem_common.go:113 level=info collector=filesystem msg="Parsed flag --collector.filesystem.fs-types-exclude" flag=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
ts=2024-11-11T02:29:41.998Z caller=diskstats_common.go:111 level=info collector=diskstats msg="Parsed flag --collector.diskstats.device-exclude" flag=^(z?ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\d+n\d+p)\d+$
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:111 level=info msg="Enabled collectors"
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=arp
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=bcache
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=bonding
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=btrfs
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=conntrack
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=cpu
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=cpufreq
ts=2024-11-11T02:29:41.998Z caller=node_exporter.go:118 level=info collector=diskstats
...


	5.测试验证
http://10.0.0.41:9100/metrics

参考格式说明:
	TYPE:
		表示metric的数据类型。
	HELP:
		表示metric帮助信息。
	metric:
		具体的指标
	标签:
		给指标打标签,起到标识性作用。

# HELP node_cpu_seconds_total Seconds the CPUs spent in each mode.
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{cpu="0",mode="idle"} 422.62
node_cpu_seconds_total{cpu="0",mode="iowait"} 0.17
node_cpu_seconds_total{cpu="0",mode="irq"} 0
node_cpu_seconds_total{cpu="0",mode="nice"} 0
node_cpu_seconds_total{cpu="0",mode="softirq"} 0.03
node_cpu_seconds_total{cpu="0",mode="steal"} 0
node_cpu_seconds_total{cpu="0",mode="system"} 3.98
node_cpu_seconds_total{cpu="0",mode="user"} 2.46
node_cpu_seconds_total{cpu="1",mode="idle"} 424.3
node_cpu_seconds_total{cpu="1",mode="iowait"} 0.27
node_cpu_seconds_total{cpu="1",mode="irq"} 0
node_cpu_seconds_total{cpu="1",mode="nice"} 0
node_cpu_seconds_total{cpu="1",mode="softirq"} 0.14
node_cpu_seconds_total{cpu="1",mode="steal"} 0
node_cpu_seconds_total{cpu="1",mode="system"} 2.59
node_cpu_seconds_total{cpu="1",mode="user"} 2.44

- node-exporter配置模块黑白名单

	1.默认启用,禁用的指标:
https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default

https://github.com/prometheus/node_exporter?tab=readme-ov-file#disabled-by-default

	2.模块白名单
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# ./node_exporter --collector.cpu --collector.uname --collector.disable-defaults
ts=2024-11-11T02:51:24.052Z caller=node_exporter.go:193 level=info msg="Starting node_exporter" version="(version=1.8.2, branch=HEAD, revision=f1e0e8360aa60b6cb5e5cc1560bed348fc2c1895)"
ts=2024-11-11T02:51:24.052Z caller=node_exporter.go:194 level=info msg="Build context" build_context="(go=go1.22.5, platform=linux/amd64, user=root@03d440803209, date=20240714-11:53:45, tags=unknown)"
ts=2024-11-11T02:51:24.052Z caller=node_exporter.go:196 level=warn msg="Node Exporter is running as root user. This exporter is designed to run as unprivileged user, root is not required."
ts=2024-11-11T02:51:24.053Z caller=node_exporter.go:111 level=info msg="Enabled collectors"
ts=2024-11-11T02:51:24.053Z caller=node_exporter.go:118 level=info collector=cpu
ts=2024-11-11T02:51:24.053Z caller=node_exporter.go:118 level=info collector=uname
ts=2024-11-11T02:51:24.053Z caller=tls_config.go:313 level=info msg="Listening on" address=[::]:9100
ts=2024-11-11T02:51:24.053Z caller=tls_config.go:316 level=info msg="TLS is disabled." http2=false address=[::]:9100

	3.模块黑名单
[root@node-exporter41 node_exporter-1.8.2.linux-amd64]# ./node_exporter --no-collector.cpu


注意,只需要将"--no-collector.MODULE",将NAME换成你需要禁用的模块即可。




温馨提示:
	将41-43节点都安装上node-exporter


- Prometheus监控node-exporter实战

	1.修改Prometheus的配置文件 
[root@prometheus-server31 ~]# vim /yanshier/softwares/prometheus-2.53.3.linux-amd64/prometheus.yml 
...
# 全局配置
global:
  # 采集目标(targets)的时间间隔
  scrape_interval: 3s
  ...
  
...
# 抓取配置
scrape_configs:
   ...
   
   - job_name: "yanshier-node-exporter"
     metrics_path: "/metrics"
     scheme: "http"
     static_configs:
       - targets: ["10.0.0.41:9100","10.0.0.42:9100","10.0.0.43:9100"]     
	   
	   

	2.重新加载配置 
[root@prometheus-server31 ~]# curl -X POST 10.0.0.31:9090/-/reload


	3.访问WebUI验证 
http://10.0.0.31:9090/targets

http://10.0.0.31:9090/config




- prometheus metrics type
prometheus监控中采集过来的数据统一称为Metrics数据,其并不是代表具体的数据格式,而是一种统计度量计算单位。

当我们需要为某个系统或者某个服务做监控时,就需要使用到metrics。

prometheus支持的metrics包括但不限于以下几种数据类型:
	guage:
		最简单的度量指标,只是一个简单的返回值,或者叫瞬时状态。
		比如说统计硬盘,内存等使用情况。
	
	counter:
		就是一个计数器,从数据量0开始累积计算,在理想情况下,只能是永远的增长,不会降低(有特殊情况,比如粉丝量)。
		比如统计1小时,1天,1周,1一个月的用户访问量,这就是一个累加的操作。
		
	histogram:
		是统计数据的分布情况,比如最小值,最大值,中间值,中位数等,代表的是一种近似百分比估算数值。
		通过histograms可以分别统计处在一个时间段(1s,2s,5s,10s)内nginx访问用户的响应时间。
		
	summary:
		summary是histograms的扩展类型,主要弥补histograms不足。




- PromQL语句初体验
	up
		判断一个被监控目标是否存活,若存活则为1,若不存或则为0。
		
	node_load5-0
		查询5分钟内的负载,不显示metrics。
	
	node_cpu_seconds_total{instance="10.0.0.42:9100"}
		基于标签过滤,查询10.0.0.42节点的CPU信息。
		
	node_cpu_seconds_total{instance="10.0.0.42:9100",mode="idle",cpu="1"}
		可以定义多个过滤参数,使用逗号分隔即可。
		
	node_cpu_seconds_total{instance="10.0.0.42:9100",cpu="1",mode!="idle"}
		表示查询CPU不等于"idle"的模式。
	
	node_cpu_seconds_total{instance="10.0.0.42:9100",cpu="1",mode=~"i.*"}	
		支持基于正则匹配我们需要的数据,表示查询以i开头的所有模式。
		
	node_cpu_seconds_total{instance="10.0.0.42:9100",cpu="1",mode!~"i.*"}
		取反效果,表示查询不以i开头的所有模式。
		
	node_cpu_seconds_total{instance="10.0.0.42:9100",cpu="1",mode="idle"}[10s]
		表示查询10s内CPU采集的数据信息。



- Prometheus常用的函数
官方文档:
	 https://prometheus.io/docs/prometheus/2.53/querying/functions/
	 

实验环境准备:
[root@node-exporter42 ~]# apt -y install stress
[root@node-exporter42 ~]# 
[root@node-exporter42 ~]# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 20m



increase函数:
	用来针对counter数据类型,截取其中一段时间总的增量。
	
	
例子:
	increase(node_cpu_seconds_total{mode="idle",cpu="0", instance="10.0.0.42:9100"}[1m])
		统计1分钟内,使用标签过滤器查看"10.0.0.42:9100"节点的第0颗CPU,空闲状态使用的总时间增量。


sum函数:
	加和的作用。
	
	
例子:
	sum(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
		统计1分钟内,使用标签过滤器查看所有节点的第0颗CPU,空闲状态使用的总时间增量,并将返回结果累加。

avg函数:
	求平均值。
	
	avg(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
	
max函数:
	求最大值。
	max(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
	
min:
	求最小值。
	min(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
	




by函数:
	将数据进行分组,类似于MySQL的"GROUP BY"。
	
	
举个例子:
	sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)
		统计1分钟内,使用标签过滤器查看CPU空闲状态,并将结果进行累加,基于instance进行分组。


rate函数:
	它的功能是按照设置的时间段,取counter在这个时间段中平均每秒的增量。
	
	
举个例子:
	rate(node_cpu_seconds_total{mode="idle",cpu="0", instance="10.0.0.42:9100"}[1m])
		统计1分钟内,使用标签过滤器查看"10.0.0.42:9100"节点的第0颗CPU,空闲状态使用的每秒的增量。
		


		
increase和rate如何选择:
	(1)对于采集数据频率较低的场景建议使用increase函数,因为使用rate函数可能会出现断点,比如针对硬盘容量监控。
	(2)对于采集数据频率较高的场景建议使用rate函数,比如针对CPU,内存,网络流量等都是可以基于rate函数来采集等。



topk函数:
	取前几位的最高值,实际使用的时候一般会用该函数进行瞬时报警,而不是为了观察曲线图。
	
举个例子:
	topk(3, rate(node_cpu_seconds_total{mode="idle"}[1m]))
		统计1分钟内,使用标签过滤器查看CPU,所有状态使用的每秒的增量,只查看前3个节点。


count函数:
	把数值符合条件的,输出数目进行累加加和。
	比如说企业中有100台服务器,如果只有10台服务器CPU使用率高于80%时候是不需要报警的,但是数量超过70台时就需要报警了。
	
举个例子:
	count(yanshier_tcp_wait_conn > 500):
		假设yanshier_tcp_wait_conn是咱们自定义的KEY。
		若TCP等待数量大于500的机器数量就判断条件为真。

	count(rate(node_cpu_seconds_total{cpu="0",mode="idle"}[1m]))
		对统计的结果进行计数。





- 统计各个节点CPU的使用率
	1.我们需要先找到CPU相关的KEY
node_cpu_seconds_total

	2.过滤出CPU的空闲时间({mode='idle'})和全部CPU的时间('{}')
node_cpu_seconds_total{mode='idle'}
	过滤CPU的空闲时间。
node_cpu_seconds_total{}
	此处的'{}'可以不写,因为里面没有任何参数,代表获取CPU的所有状态时间。
	
	3.统计1分钟内CPU的增量时间
increase(node_cpu_seconds_total{mode='idle'}[1m])
	统计1分钟内CPU空闲状态的增量。
increase(node_cpu_seconds_total[1m])
	统计1分钟内CPU所有状态的增量。
	
	4.将结果进行加和统计
sum(increase(node_cpu_seconds_total{mode='idle'}[1m]))
	将1分钟内所有CPU空闲时间的增量进行加和计算。
sum(increase(node_cpu_seconds_total[1m]))
	将1分钟内所有CPU空闲时间的增量进行加和计算。
	
	5.按照不同节点进行分组
sum(increase(node_cpu_seconds_total{mode='idle'}[1m])) by (instance)
	将1分钟内所有CPU空闲时间的增量进行加和计算,并按照机器实例进行分组。
sum(increase(node_cpu_seconds_total[1m])) by (instance)
	将1分钟内所有CPU空闲时间的增量进行加和计算,并按照机器实例进行分组。
	
	6.计算1分钟内CPU空闲时间的百分比
sum(increase(node_cpu_seconds_total{mode='idle'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)

	7.统计1分钟内CPU的使用率,计算公式: (1 - CPU空闲时间的百分比) * 100%。
(1 - sum(increase(node_cpu_seconds_total{mode='idle'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

	8.统计1小时内CPU的使用率,计算公式: (1 - CPU空闲时间的百分比) * 100%。
(1 - sum(increase(node_cpu_seconds_total{mode='idle'}[1h])) by (instance) / sum(increase(node_cpu_seconds_total[1h])) by (instance)) * 100




最终结果:
	1.计算CPU一分钟内的使用率
(1 - (sum(increase(node_cpu_seconds_total{mode='idle'}[1m])) by (instance)) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100


	2 计算CPU用户态的1分钟内百分比
sum(increase(node_cpu_seconds_total{mode='user'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance) * 100




	3 计算CPU内核态的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='system'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100



	4 计算CPU IO等待时间的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='iowait'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100


	5.计算CPU nice时间的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='nice'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100


	6.计算CPU softirq软中断时间的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='softirq'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

	
	7.计算CPU steal虚拟机CPU时间被物理机偷走时间的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='steal'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

	8.计算CPU irq中断时间的1分钟内百分比
(sum(increase(node_cpu_seconds_total{mode='irq'}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100


- ubuntu部署grafana

grafana是一款优秀的开源图形化展示界面,支持以Prometheus为数据源展示数据。


	1.准备MySQL数据源 
[root@prometheus-server31 ~]# wget http://192.168.13.253/Resources/Docker/softwares/yanshier-autoinstall-docker-docker-compose.tar.gz


[root@prometheus-server31 ~]# tar xf yanshier-autoinstall-docker-docker-compose.tar.gz 

[root@prometheus-server31 ~]# ./install-docker.sh i


[root@prometheus-server31 ~]# wget http://192.168.13.253/Resources/Docker/images/WordPress/yanshier-mysql-v8.0.36-oracle.tar.gz

[root@prometheus-server31 ~]# docker load  -i yanshier-mysql-v8.0.36-oracle.tar.gz 


[root@prometheus-server31 ~]# docker run -d --network host --restart always -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -e MYSQL_DATABASE=prometheus -e MYSQL_USER=grafana -e MYSQL_PASSWORD=yanshier --name mysql-server mysql:8.0.36-oracle


[root@prometheus-server31 ~]# docker exec -it mysql-server mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| prometheus         |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> 
mysql> SHOW TABLES FROM prometheus;
Empty set (0.01 sec)

mysql> 
mysql> 




	2.安装grafana依赖库
[root@grafana51 ~]# apt-get install -y adduser libfontconfig1 musl


	3.下载grafana
[root@grafana51 ~]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.5.21_amd64.deb



	4.安装grafana 
[root@grafana51 ~]# dpkg -i grafana-enterprise_9.5.21_amd64.deb 


	5.修改grafana的配置文件[根据你的MySQL环境做修改即可]
[root@grafana51 ~]# vim /etc/grafana/grafana.ini 
...
[database]
...
type = mysql
host = 10.0.0.31:3306
name = prometheus
user = grafana
password = yanshier     

温馨提示:
	如果我们不配置MySQL作为grafana的数据源,则默认会将数据存储在"/var/lib/grafana"目录的sqlite3数据库中。
	sqlite3数据库性能相比于MySQL较弱,生产环境建议更换为MySQL作为grafana的数据库存储哟~

	6.启动grafana 
[root@grafana51 ~]# systemctl enable --now grafana-server.service 
[root@grafana51 ~]# 
[root@grafana51 ~]# ss -ntl | grep 3000
LISTEN 0      4096               *:3000            *:*          
[root@grafana51 ~]# 


	7.访问grafana的WebUI
http://10.0.0.51:3000/


默认的用户名和密码均为: admin


	
- grafana基本使用


grafana免费开源代码原地址
https://grafana.com/grafana/dashboards/
---------------------------------------------------------
Prometheus通过pull拉取pushgatway与exproters的数据放在存储IO并提供webUI进行临时查询数据同时编写对应promQL查询数据的语法由grafana图形化展示实现存储

APIclients--开发人员基于库操作


posted @ 2025-01-20 13:45  颜十二  阅读(17)  评论(0编辑  收藏  举报