简单搭建基本Prometheus监控系统
前言
- 适用场景:新手入门;内网离线部署,只是需要了解服务器基本情况,不需要告警系统。
- 需要准备的安装包:
- grafana的docker包(先在线下载,然后
docker save保存镜像。如果没有docker,还需要准备docker的离线安装包) - prometheus和node_exporter官方下载地址
- 从grafana官方下载dashboard的json文件,ID为8919或1860
- grafana的docker包(先在线下载,然后
| 系统版本 | IP | 应用 | 应用版本 | 说明 |
|---|---|---|---|---|
| centos 7 x86-64 | 192.168.0.11 | prometheus | 2.37.1 | 服务端 |
| centos 7 x86-64 | 192.168.0.11 | node_exporter | 1.3.1 | 客户端 |
| centos 7 x86-64 | 192.168.0.11 | grafana | 8.3.3 | 可视化 |
安装prometheus
- 解压和创建目录
mkdir -p /home/apps
tar xf prometheus-2.37.1.linux-amd64.tar.gz -C /home/apps
cd /home/apps
mv prometheus-2.37.1.linux-amd64 prometheus
rm -f prometheus-2.37.1.linux-amd64.tar.gz
cd prometheus
mkdir sd_configs data
- 编辑服务配置文件:
vim /home/apps/prometheus/prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# 修改以下内容
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
file_sd_configs:
- files: ['/home/apps/prometheus/sd_configs/*.yml']
refresh_interval: 10s
- 启动。(启动脚本可参考"附录 - prometheus启动脚本")
nohup /home/apps/prometheus/prometheus \
--storage.tsdb.path=/home/apps/prometheus/data \
--config.file=/home/apps/prometheus/prometheus.yml \
--web.listen-address=:19090 \
--storage.tsdb.retention=15d > /dev/null 2>&1 &
参数说明:
-storage.tsdb.path:数据存储路径-config.file:配置文件路径-web.listen-address:服务监听端口-storage.tsdb.retention:数据存储期限。这里设置为15天
- 编辑文件服务发现的配置文件:
vim /home/web/prometheus/prometheus/sd_configs/nodes.yml
- targets: ['192.168.0.11:19091']
labels:
instance: 192.168.0.11
- Prometheus服务端配置完成
安装node_exporter
- 解压和修改目录名
tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /home/apps
cd /home/apps
mv node_exporter-1.3.1.linux-amd64 node_exporter
- 启动。(启动脚本可参考“附录 - node_exporter启动脚本”)
nohup /home/apps/node_exporter/node_exporter \
--collector.processes \
--web.listen-address 0.0.0.0:19091 > /dev/null 2>&1 &
参数说明:
-web.listen-address:监听19091端口--collector.processes:收集进程相关指标
- 客户端配置完成
配置grafana
- 使用
docker load -i指令加载事先准备好的docker镜像 - 创建容器并运行:
docker run -d --name=grafa -p 3000:3000 grafana/grafana:latest
- 浏览器打开
192.168.0.10:3000,默认账户名为admin,默认密码为admin - 添加Prometheus数据源,地址为:192.168.0.10:19090

- 导入事先准备好的json

- grafana配置完成


附录
prometheus启动脚本
#!/bin/bash
# description: prometheus的启动脚本
set -u
script_dir=$(cd $(dirname $0) && pwd)
function checkEnv() {
# 检查环境
[ -d ${script_dir}/data ] || mkdir -p ${script_dir}/data
[ -d ${script_dir}/sd_configs ] || mkdir -p ${script_dir}/sd_configs
timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/19090"
if [[ $? -ne 0 ]]; then
echo "19090端口已被占用, 请修改启动脚本中的端口号"
exit 1
fi
}
function startApp() {
# 启动
nohup ${script_dir}/prometheus \
--storage.tsdb.path=${script_dir}/data \
--config.file=${script_dir}/prometheus.yml \
--web.listen-address=:19090 \
--storage.tsdb.retention=15d > /dev/null 2>&1 &
}
function main() {
checkEnv
startApp
}
main
node_exporter启动脚本
#!/bin/bash
# description: node_exporter启动脚本
set -u
script_dir=$(cd $(dirname $0) && pwd)
function checkEnv() {
# 检查环境
timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/19091"
if [[ $? -ne 0 ]]; then
echo "19091端口已被占用, 请修改启动脚本中的端口号"
exit 1
fi
}
function startApp() {
# 启动
nohup ${script_dir}/node_exporter \
--collector.systemd \
--collector.processes \
--web.listen-address 0.0.0.0:19091 > /dev/null 2>&1 &
}
function main() {
# 入口主函数
startapp
}
main
简单搭建基本Prometheus监控系统的更多相关文章
- Prometheus监控系统之入门篇(一)续
在上篇Prometheus监控系统之入门篇(一)中我们讲解了Prometheus的基本架构和工作流程, 并从0到1搭建了Prometheus服务,pushgateway以及告警系统. 本篇我们主要介绍 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- 容器编排系统K8s之Prometheus监控系统+Grafana部署
前文我们聊到了k8s的apiservice资源结合自定义apiserver扩展原生apiserver功能的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/ ...
- 手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统
摘要:在CentOS7.4服务器版本的环境下安装nginx服务器.配置文件服务器.流媒体服务器. 本文分享自华为云社区<华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器.搭建物联 ...
- Grafana+Prometheus 搭建 JuiceFS 可视化监控系统
作为承载海量数据存储的分布式文件系统,用户通常需要直观地了解整个系统的容量.文件数量.CPU 负载.磁盘 IO.缓存等指标的变化. JuiceFS 没有重复造轮子,而是通过 Prometheus 兼容 ...
- prometheus监控系统
关于Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等,以找到系统的 ...
- 搭建Lepus数据库监控系统-记录
一. 安装环境 系统环境:centos6.5 IP:192.168.30.242 hostname:vpn.org 软件:LAMP均已安装.(请确保这些正常安装,并能使用). 系统核心包:(摘自官方 ...
- 搭建Lepus数据库监控系统
一. 安装环境 系统环境:centos6.5 IP:192.168.30.242 hostname:vpn.org 软件:LAMP均已安装.(请确保这些正常安装,并能使用). 系统核心包:(摘自官方 ...
- 运维开发实践——基于Sentry搭建错误日志监控系统
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...
- Prometheus监控系统之入门篇(一)
1. 简介 Prometheus: (简称Prom)是由SoundCloud开发的开源监控报警系统.是大名鼎鼎的CNCF云原生基金会下的第二大开源项目.具有如下特点: 使用Go语言开发 内置时序数据库 ...
随机推荐
- sklearn中的KFold简单介绍
这一部分主要讲解关于什么是K-foldCV(K折交叉验证),简单的使用一些案例进行分析,然后使用sklearn库函数中一些简单的案例进行分析. 在机器学习中,多数最主要的功能函数被封装到sklearn ...
- 2023-01-05:konradkleine/docker-registry-frontend是registry的web界面工具之一。请问部署在k3s中,yaml如何写?
2023-01-05:konradkleine/docker-registry-frontend是registry的web界面工具之一.请问部署在k3s中,yaml如何写? 答案2023-01-05: ...
- 2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线、纵坐标上10条线的区域。给你三个 参数 x,y,k。返回“马”从(0,0)位置出发,必须走k步。最后落在(x,y)上的方法数有多少种?
2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线.纵坐标上10条线的区域.给你三个 参数 x,y,k.返回"马 ...
- 03、SECS-I 协议介绍
03.SECS-I 协议介绍 上一篇我们学习了 SECS-II 协议,对 SECS-II 协议有了初略的了解,现在我们再来一起学习 SECS-I 协议. 文章的内容基本上来自参考资料和自己看的文档,若 ...
- 基于nerdctl+buildkitd+containerd实现镜像构建
1.容器技术简介 容器技术除了的docker之外,还有coreOS的rkt.google的gvisor.以及docker开源的containerd.redhat的podman.阿⾥的pouch等,为了 ...
- Linux服务器设置虚拟内存
cd /usrsudo mkdir swapcd swapsudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096du -sh /usr/ ...
- 逍遥自在学C语言 | 枚举的那些事儿
前言 在C语言中,枚举是一种方便组织和表示一组相关常量的工具.枚举类型有助于提高代码的可读性和可维护性.本文将介绍C语言枚举的基本概念.语法和用法,以及一些高级技巧. 一.人物简介 第一位闪亮登场,有 ...
- CentOS7 配置本地yum源软件仓库
CentOS7 配置本地yum源软件仓库 前言 配置本地yum源软件仓库可以离线状态下安装本地已有的软件 先连接虚拟光驱,对应的光驱iso文件 查看磁盘分区状态 可以看到sr0 未挂载 [root@l ...
- NVIDIA Maxine Video Effects SDK 編程指南 - 实践小记
NVIDIA Maxine Video Effects SDK 編程指南 - 实践小记 本篇博客重点只说Video Effect的部分,此外还有Audio Effect的部分.还有AR部分,不在本篇范 ...
- 程序包xx不存在解决方案:java: 程序包org.aspectj.lang.annotation
java: 程序包org.aspectj.lang.annotation不存在 #我自己已经配置好pom.xml文件,但是一直报错这个 aspectj 不存在 下面是我的pom.xml配置 可以看出来 ...