前提条件
- 已安装Docker Engine 18.06或更高版本。
- 已安装Docker Compose 1.25.0或更高版本。
- 服务器具有至少2GB可用内存。
- 服务器开放以下端口:9090(Prometheus)3000(Grafana)。
一、安装Prometheus
步骤一:环境准备
#Docker环境检查:查看docker版本,确保服务器安装有docker。
docker -v
AI 代码解读
步骤二:获取镜像
# 您也可以直接拉docker pull prom/prometheus, 即拉取最新的镜像docker pull prom/prometheus:lastest
docker pull prom/prometheus:v2.41.0
AI 代码解读
步骤三:准备相关挂载目录及文件
目录准备
# /opt/prometheus/data目录,准备用来挂载放置prometheus的数据
# /opt/prometheus/config目录,准备用来放置prometheus的配置文件
# /opt/prometheus/rules目录,准备用来挂载放置prometheus的规则文件
mkdir -p /opt/prometheus/{
data,config,rules}
# 授权相关文件夹权限
chmod -R 777 /opt/prometheus/data
chmod -R 777 /opt/prometheus/config
chmod -R 777 /opt/prometheus/rules
AI 代码解读
准备文件
# 配置文件
cat > /opt/prometheus/config/prometheus.yml << \EOF
global:
# 数据采集间隔
scrape_interval: 45s
# 告警检测间隔
evaluation_interval: 45s
# 告警规则
rule_files:
# 这里匹配指定目录下所有的.rules文件
- /prometheus/rules/*.rules
# 采集配置
scrape_configs:
# 采集项(prometheus)
- job_name: 'prometheus'
static_configs:
# prometheus自带了对自身的exporter监控程序,所以不需额外安装exporter就可配置采集项
- targets: ['localhost:9090']
EOF
# 查看一下配置文件
cat /opt/prometheus/config/prometheus.yml
AI 代码解读
prometheus配置项说明 :
global:定义全局默认参数(如采集间隔),各job的单独配置可覆盖全局设置。
alerting:配置Alertmanager报警组件的连接信息,用于对接告警通知系统。
rule_files:加载自定义告警规则文件,定义触发告警的阈值条件和规则逻辑。
scrape_configs:配置监控数据采集目标,支持静态target列表或动态服务发现机制。
remote_write/read:实现与远程存储系统的数据读写交互,支持长期数据存储方案。
步骤四:启动容器
# 启动prometheus
# config.file:指定容器中,配置文件的位置
# web.enable-lifecycle:启动此项后,当配置文件发生变化后,可通过HTTP API 发送 post 请求到 /-/reload,实现热加载,如:curl -X POST http://47.105.39.189:9090/-/reload
# -v /etc/localtime:/etc/localtime:ro表示让容器使用宿主机的时间, :ro表示只读(注:此方式只针对宿主机和容器的时区文件均为/etc/localtime)
docker run --name prometheus -d \
-p 9090:9090 \
-v /etc/localtime:/etc/localtime:ro \
-v /opt/prometheus/data:/prometheus/data \
-v /opt/prometheus/config:/prometheus/config \
-v /opt/prometheus/rules:/prometheus/rules \
prom/prometheus:v2.41.0 --config.file=/prometheus/config/prometheus.yml --web.enable-lifecycle
AI 代码解读
步骤五:服务验证
#服务器IP地址+端口号
ip:9090
AI 代码解读
二、安装Grafana
步骤一:环境准备
##Docker环境检查:查看docker版本,确保服务器安装有docker。
docker -v
AI 代码解读
步骤二:获取镜像
# 您也可以直接拉docker pull grafana/grafana, 即拉取最新的镜像docker pull grafana/grafana:lastest
docker pull grafana/grafana:9.3.2
AI 代码解读
步骤三:准备相关挂载目录及文件
1.准备目录
# /opt/grafana/data目录,准备用来挂载放置grafana的数据
# /opt/grafana/plugins目录,准备用来放置grafana的插件
# /opt/grafana/config目录,准备用来挂载放置grafana的配置文件
mkdir -p /opt/grafana/{
data,plugins,config}
# 授权相关文件夹权限
chmod -R 777 /opt/grafana/data
chmod -R 777 /opt/grafana/plugins
chmod -R 777 /opt/grafana/config
AI 代码解读
2.准备配置文件
# 先临时启动一个容器
docker run --name grafana-tmp -d -p 3000:3000 grafana/grafana:9.3.2
# 将容器中默认的配置文件拷贝到宿主机上
docker cp grafana-tmp:/etc/grafana/grafana.ini /opt/grafana/config/grafana.ini
# 移除临时容器
docker stop grafana-tmp
docker rm grafana-tmp
# 修改配置文件(需要的话)
# vim /opt/grafana/config/grafana.ini
AI 代码解读
步骤四:启动容器
# 启动prometheus
# 环境变量GF_SECURITY_ADMIN_PASSWORD:指定admin的密码
# 环境变量GF_INSTALL_PLUGINS:指定启动时需要安装得插件
# grafana-clock-panel代表时间插件
# grafana-simple-json-datasource代表json数据源插件
# grafana-piechart-panel代表饼图插件
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /etc/localtime:/etc/localtime:ro \
-v /opt/grafana/data:/var/lib/grafana \
-v /opt/grafana/plugins/:/var/lib/grafana/plugins \
-v /opt/grafana/config/grafana.ini:/etc/grafana/grafana.ini \
-e "GF_SECURITY_ADMIN_PASSWORD=admin" \
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,grafana-piechart-panel" \
grafana/grafana:9.3.2
AI 代码解读
步骤五:服务验证
#服务器IP地址+端口号访问,默认账密admin/admin进行登录。
ip:3000
AI 代码解读