Prometheus(https://prometheus.io/)是一款开源监控解决方案,适用于记录和查询时间序列数据。Grafana(https://grafana.com/docs/grafana/latest/)是一款开源的数据可视化工具,可以与Prometheus无缝集成,提供丰富的图表和监控面板。
本文将介绍如何在Docker环境中安装Prometheus和Grafana,并实现基本的监控功能。
安装Prometheus
拉取Prometheus镜像
docker pull prom/prometheus
创建挂载目录
Prometheus需要一些目录来存放其配置文件和数据。我们创建这些目录并赋予相应的权限:
mkdir -p /usr/local/prometheus/{config,data}
chmod 777 /usr/local/prometheus/{config,data}
创建初始容器获取配置文件
创建一个临时的Prometheus容器来获得默认的配置文件prometheus.yml
:
docker run \
-d \
--name prometheus \
-p 9090:9090 \
prom/prometheus
然后,将配置文件从容器复制到主机上的目录:
Prometheus的数据存储在容器内的
/etc/prometheus
目录中
docker cp prometheus:/etc/prometheus/prometheus.yml /usr/local/prometheus/config/prometheus.yml
给配置文件增加读写执行权限。
chmod a+rwx /usr/local/prometheus/config/prometheus.yml
修改配置文件
vim /usr/local/prometheus/config/prometheus.yml
编辑配置文件/usr/local/prometheus/config/prometheus.yml
,根据需要添加监控目标,并将localhost
替换为实际的IP地址或域名:
![]() | ![]() |
---|
启动Prometheus容器
强制删除正在运行的Prometheus容器:
docker rm -f prometheus
重新创建Prometheus容器,挂载配置目录和数据持久化目录:
Prometheus的数据存储在容器内的/prometheus目录中,因此每次容器重新启动时数据都会被清除。为了保存数据可以容器设置持久存储(或绑定挂载)。
docker run \
-d \
--name prometheus \
-p 9090:9090 \
-v /usr/local/prometheus/config:/etc/prometheus \
-v /usr/local/prometheus/data:/prometheus \
prom/prometheus
配置防火墙
如果系统有防火墙,打开9090端口:
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-all
访问Prometheus Web UI
通过Web浏览器访问 192.168.101.101:9090
来查看Prometheus的Web界面。
默认只监控了本机,点击Status
,Targets
,可以看到监控的数据。
安装Grafana
拉取Grafana镜像
从Docker Hub拉取Grafana的镜像:
docker pull grafana/grafana
创建挂载目录
为Grafana创建数据目录并赋予相应权限:
mkdir -p /usr/local/grafana/data
chmod 777 /usr/local/grafana/data
运行Grafana容器
使用以下命令启动Grafana容器,并将数据目录映射到主机:
docker run -d -p 3000:3000 \
--name=grafana \
--user "$(id -u)" \
--volume "/usr/local/grafana/data:/var/lib/grafana" \
grafana/grafana
配置防火墙
如果使用防火墙,需要允许3000端口的访问:
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-all
访问Grafana Web UI
通过Web浏览器访问 http://192.168.101.101:3000
来进入Grafana的Web界面,使用默认的用户名和密码admin/admin
登录。
配置Prometheus作为数据源
登录后导航到Connections > Data Sources > Add data source
。
选择Prometheus
作为类型。
输入Prometheus服务器的URL。
点击Save & Test
按钮验证配置。
这样就能够在Grafana中看到来自Prometheus的数据,并可以构建不同的仪表板了!