docker 部署 prometheus+grafana
关闭防火墙和selinux
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭selinux
setenforce 0 (临时生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config(永久生效)
# centos7 安装docker
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
#安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 设置开机启动
systemctl enable docker
# 下载Prometheus镜像
docker pull prom/prometheus
# 创建Prometheus容器
docker run -itd --name=docker_prometheus --restart=always -p 9090:9090 prom/prometheus
容器创建成功后,即可通过浏览器访问 http://prometheus机器ip:9090 查看
# 下载镜像
docker pull grafana/grafana
# 创建容器
docker run -itd --name=grafana --restart=always -p 3000:3000 -v $PWD/grafana-storage:/var/lib/grafana grafana/grafana
容器创建成功后,即可通过浏览器访问 http://grafana机器ip:3000,默认账号密码都是:admin
node_export
node_export是Prometheus的一个export,主要是用来收集服务器硬件资源使用情况的。所以这个往往会部署再被监控的服务器上。即:grafana、Prometheus会独立部署在一台机器上,node_export则被部署在被监控的服务器上,收集被监控的服务器资源数据,给Prometheus,然后再通过grafana展示出来。
node_export部署在被监控的服务器上,可以根据服务器的实际情况,选择直接安装,还是用docker安装。
服务器上直接安装node_export
首先,用浏览器访问:https://github.com/prometheus/node_exporter/releases 这里能获得node_export所有的发布版本,可以根据自己服务器的实际情况,选择要下载的包
下载包后,上传到被监控的服务器上,解压
进入解压文件夹,直接启动./node_exporter
服务器上用docker安装node_export
# 下载镜像
docker pull prom/node-exporter
# 创建容器
docker run -itd --name=node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
node-exporter部署启动好了后,在服务器的防火墙上开放9100端口,则可以通过浏览器访问 http://服务器ip:9100/metrics 查看监控收集的数据
配置Prometheus+node_exporter
prometheus本身没有数据收集功能,需要用node_exporter收集,他们俩之间如何连接在一起呢?这就要修改Prometheus的配置文件,这个文件在Prometheus容器的 /etc/prometheus/prometheus.yml
# 从Prometheus容器中拷贝配置文件到宿主机
docker cp docker_prometheus:/etc/prometheus/prometheus.yml $PWD
修改prometheus.yml文件
vim prometheus.yml
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['被监控的服务器ip:9100']
labels:
instance: localhost
注意 :yml文件的编辑,注意格式;想添加多个监控服务器时,可以在中括号中,用逗号分隔写多个
# 把修改后的Prometheus配置文件拷贝到容器中
docker cp $PWD/prometheus.yml docker_prometheus:/etc/prometheus/prometheus.yml
重启Prometheus容器
docker restart docker_prometheus
配置Grafana+Prometheus
现在,万事俱备,只欠东风了,只需要配置grafana+prometheus就能看到监控结果了。
用浏览器访问 http://grafana机器ip:3000 登录用户密码:admin
登录后,在首页,选择 "Add your first data source"
选择 Prometheus,填写相关信息
点击back按钮,回到首页
再点击 import
输入12884,点击 load
再页面底部,Prometheus数据库下拉框中,选择自己添加的数据源的名称,点击 import按钮,所有工作就都完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?