基于docker搭建Prometheus实验总结
时间: 2023-07-07 09:03:44 浏览: 108
Docker实践总结
Prometheus是一款开源的监控系统,用于记录和查询大量时间序列数据。使用Prometheus可以对系统的各种指标进行监控,例如CPU、内存、网络、存储等等。
本文将介绍如何使用Docker搭建一个基本的Prometheus监控系统,并通过一个简单的Demo来演示如何使用Prometheus监控一个HTTP服务。
1. 安装Docker
首先需要在本地安装Docker,具体安装方法可以参考官方文档:https://docs.docker.com/engine/install/
2. 下载Prometheus镜像文件
在Docker中,我们可以通过命令行来下载Prometheus的镜像文件。打开终端,输入以下命令:
```
docker pull prom/prometheus
```
这会从Docker Hub上下载最新的Prometheus镜像文件到本地。
3. 创建并启动Prometheus容器
下载完成后,我们可以创建一个名为“prometheus”的容器,并将Prometheus的默认配置文件(prometheus.yml)挂载到容器中,以便我们可以对其进行配置。启动容器的命令如下:
```
docker run -d --name prometheus -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
```
其中,-d参数表示在后台运行容器,--name参数指定容器的名称,-p参数将容器的9090端口映射到主机的9090端口,-v参数将主机上的prometheus.yml文件挂载到容器的/etc/prometheus/目录下。
4. 配置Prometheus
Prometheus的默认配置文件位于/etc/prometheus/prometheus.yml。我们可以通过修改该文件,来配置Prometheus监控的指标和目标。
在本文的Demo中,我们将监控一个HTTP服务的请求次数和响应时间。因此,我们需要将Prometheus的配置文件中的targets字段修改为:
```
scrape_configs:
- job_name: 'http_requests'
static_configs:
- targets: ['localhost:8000']
```
这表示我们要监控的是名为“http_requests”的任务,它的目标是localhost的8000端口。
5. 编写Demo应用
为了演示如何使用Prometheus监控一个HTTP服务,我们需要编写一个简单的Demo应用。这个Demo应用会监听8000端口,并在接收到请求时返回一个“Hello, World!”的响应。在响应前,它会随机休眠1-5秒钟,模拟HTTP请求的响应时间不同的情况。
Demo应用的代码如下:
```
import random
import time
from http.server import BaseHTTPRequestHandler, HTTPServer
class MyHTTPHandler(BaseHTTPRequestHandler):
def do_GET(self):
response = b"Hello, World!"
sleep_time = random.randint(1, 5)
time.sleep(sleep_time)
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.send_header("Content-length", str(len(response)))
self.end_headers()
self.wfile.write(response)
def run(server_class=HTTPServer, handler_class=MyHTTPHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
if __name__ == "__main__":
run()
```
将以上代码保存为一个名为“demo.py”的文件。
6. 启动Demo应用
在终端中运行以下命令,启动Demo应用:
```
python demo.py
```
7. 访问Demo应用
打开浏览器,访问http://localhost:8000,应该可以看到一个“Hello, World!”的页面。每次刷新页面,Demo应用就会模拟一次HTTP请求,并随机等待1-5秒钟,模拟HTTP请求的响应时间不同的情况。
8. 查看Prometheus监控数据
访问http://localhost:9090,可以看到Prometheus的首页。点击左侧的“Graph”菜单,进入查询页面。在表单中输入以下查询语句:
```
http_requests_latency_seconds
```
点击“Execute”按钮,可以看到Demo应用的HTTP请求的响应时间分布情况。我们还可以使用其他查询语句,来查询Demo应用的HTTP请求次数、请求响应时间的平均值等等。
总结:
本文介绍了如何使用Docker搭建一个基本的Prometheus监控系统,并通过一个简单的Demo来演示如何使用Prometheus监控一个HTTP服务。Prometheus具有强大的查询语言和灵活的配置方式,可以用于监控各种系统指标和业务指标。开发人员可以根据自己的需求,自由地配置和扩展Prometheus监控系统。
阅读全文