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

部署Prometheus + Grafana实现监控数据指标

1.1 Prometheus安装部署

  • Prometheus监控服务

主机名IP地址系统配置作用
Prometheus192.168.110.27/24CentOS 7.94颗CPU 8G内存 100G硬盘Prometheus服务器
grafana192.168.110.28/24CentOS 7.94颗CPU 8G内存 100G硬盘grafana服务器
  • 监控机器

主机名IP地址系统配置
k8s-master-01192.168.110.21/24CentOS 7.94颗CPU 8G内存 100G硬盘

1.1.1 环境准备

  • 所有机器配置Hosts解析

cat >> /etc/hosts << EOF
192.168.110.21 k8s-master-01
192.168.110.27 Prometheus
192.168.110.28 grafana
EOF
  • 关闭防护墙和SElinux

  • 设置时间同步

sed -i '3,6 s/^/# /' /etc/chrony.conf
sed -i '6 a server ntp.aliyun.com iburst' /etc/chrony.conf
systemctl restart chronyd.service
chronyc sources

1.1.2 二进制方式安装Prometheus(二选一)

  • 从 Download | Prometheus 下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译

[root@Prometheus ~]# wget -c https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
  • 解压软件

[root@Prometheus ~]# tar xf prometheus-2.52.0.linux-amd64.tar.gz -C /usr/local/
[root@Prometheus ~]# cd /usr/local/
[root@Prometheus local]# ln  -sv prometheus-2.52.0.linux-amd64/ prometheus
‘prometheus’ -> ‘prometheus-2.52.0.linux-amd64/’
  • 创建数据目录

[root@Prometheus ~]# mkdir /usr/local/prometheus/data
  • 创建服务运行用户

[root@Prometheus ~]# useradd prometheus -M -s /sbin/nologin
[root@Prometheus ~]# chown -R prometheus.prometheus /usr/local/prometheus/*
  • 创建服务运行脚本

[root@Prometheus ~]# vim /usr/lib/systemd/system/prometheus.service 
[Unit]
Description=prometheus
After=network.target
​
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure
ExecReload=/bin/kill -HUP $MAINPID
​
[Install]
WantedBy=multi-user.target
  • 启动服务

[root@Prometheus ~]# systemctl daemon-reload 
[root@Prometheus ~]# systemctl enable --now prometheus.service
[root@Prometheus ~]# systemctl is-active prometheus.service
active
[root@Prometheus ~]# ss -lunpt | grep 9090
tcp    LISTEN     0      128    [::]:9090               [::]:*                   users:(("prometheus",pid=2486,fd=7))
  • 访问 http://本机IP:9090 http://192.168.110.27:9090

image-20240527103638863

1.1.3 容器方式安装 Prometheus(二选一)

  • 安装Docker-ce

[root@Prometheus ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
[root@Prometheus ~]# sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@Prometheus ~]# sed -i 's/$releasever/7Server/g' /etc/yum.repos.d/docker-ce.repo
[root@Prometheus ~]# mkdir -p /etc/docker
[root@Prometheus ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://dbckerproxy.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
]
}
EOF
​
[root@Prometheus ~]# systemctl daemon-reload
[root@Prometheus ~]# systemctl enable --now docker.service
[root@Prometheus ~]# docker --version
Docker version 20.10.21, build baeda1
  • 拉取Prometheus镜像

[root@Prometheus ~]# docker pull prom/prometheus
[root@Prometheus ~]# docker image ls
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
prom/prometheus   latest    ecb74a3b23a9   2 weeks ago   272MB
[root@Prometheus ~]# docker save -o prometheus.tar prom/prometheus:latest
[root@Prometheus ~]# ls
anaconda-ks.cfg  prometheus.tar
  • 直接使用官方的镜像启动,并映射prometheus.yml配置文件到本地进行管理

[root@Prometheus ~]# mkdir /data
[root@Prometheus ~]# vim /data/prometheus.yml
global:scrape_interval: 15s
​
scrape_configs:- job_name: 'local'metrics_path: '/metrics'scrape_interval: 5sstatic_configs:- targets: ['192.168.110.27:9090']
​
[root@Prometheus ~]# docker run -d --name prometheus -v /data:/data -p 9090:9090 prom/prometheus --config.file=/data/prometheus.yml
eb149926e5cb74c4a3f0641e82d40c590118647297676c862280b559213f3ca6

image-20240527105703939

1.1.4 主机数据展示

  • 通过http://服务器IP:9090/metrics可以查看到监控的数据

[root@Prometheus ~]# curl http://192.168.110.27:9090/metrics

1.1.5 Grafana安装部署

  • 下载地址:Download Grafana | Grafana Labs

[root@grafana ~]# yum install https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-8.0.4-1.x86_64.rpm -y
[root@grafana ~]# systemctl enable --now grafana-server
[root@grafana ~]# netstat -lnupt | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      13068/grafana-serve 
  • 使用grafana-cli 安装插件

[root@grafana ~]# grafana-cli plugins list-remote    # 列出所有可用的插件
[root@grafana ~]# grafana-cli plugins install grafana-worldmap-panel   # 安装世界地图插件
[root@grafana ~]# grafana-cli plugins install grafana-clock-panel   # 安装时间插件
[root@grafana ~]# grafana-cli plugins install grafana-piechart-panel   # 安装圆饼插件
[root@grafana ~]# grafana-cli plugins ls
installed plugins:
grafana-clock-panel @ 2.1.5
grafana-piechart-panel @ 1.6.4
grafana-worldmap-panel @ 1.0.6
Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.
​
[root@grafana ~]# systemctl restart grafana-server
  • 使用Grafana连接Prometheus

    • 登录grafana

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

    • 第一次需要修改admin密码,可以直接跳过,用户名密码都为admin

image-20240527153727191

image-20240527155608386

image-20240527155632935

image-20240527155747036

image-20240527155840658

image-20240527155918518

相关文章:

  • sqlalchemy连接池满了报错
  • 刷代码随想录有感(82):贪心算法——摆动序列
  • 【大数据篇】Spark:大数据处理的璀璨之星
  • 用Kotlin协程消灭安卓开发中的回调地狱
  • 【DrissionPage爬虫库 1】两种模式分别爬取Gitee开源项目
  • 《C++primer》第八章课后习题
  • 黑马聚合的分类及实现
  • 埃及媒体分发投放-新闻媒体通稿发布
  • [数据集][目标检测]红外车辆检测数据集VOC+YOLO格式13979张类别
  • K8s Pod 资源进阶
  • C++课程设计实验杭州电子科技大学ACM题目(上)
  • 跳绳技巧一:蝴蝶步
  • 【NumPy】NumPy线性代数模块详解:掌握numpy.linalg的核心功能
  • Vue 3入门指南
  • adb获取包名和界面名
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 「译」Node.js Streams 基础
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CAP 一致性协议及应用解析
  • ES6 ...操作符
  • EventListener原理
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Mysql优化
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 基于 Babel 的 npm 包最小化设置
  • 系统认识JavaScript正则表达式
  • 小程序 setData 学问多
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Git) gitignore基础使用
  • (SERIES10)DM逻辑备份还原
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)原生js案例之数码时钟计时
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (含笔试题)深度解析数据在内存中的存储
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (三)uboot源码分析
  • (转)大型网站的系统架构
  • ..回顾17,展望18
  • .env.development、.env.production、.env.staging
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net MVC中使用angularJs刷新页面数据列表
  • .Net Web项目创建比较不错的参考文章
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • @PreAuthorize与@Secured注解的区别是什么?
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹