基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor

22 篇文章 0 订阅
10 篇文章 1 订阅

目录

一、安装docker

二、下载prometheus和grafana、node-exporter镜像包

三、启动node-exporter

四、启动prometheus

五、安装cadvisor 

六、启动grafana

1、安装

2、添加数据源

3、查看模版

4、导入官网模版


目前我使用这个

部署系统:Centos 7.2以上

# 关闭防火墙
service firewalld stop
# 不启用防火墙
systemctl disable firewalld

一、安装docker

yum  -y install docker
systemctl start docker
# 设置docker开机启动
systemctl enable docker

二、下载prometheus和grafana、node-exporter镜像包

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

三、启动node-exporter

docker run -d -p --restart=always --name node 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \
  --net="host" \
  prom/node-exporter

 # -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone 我后加的 解决时区问题

等待几秒钟,查看端口9100是否起来了

netstat -anpt 

 

# 浏览器访问
http://192.168.233.131:9100/metrics

四、启动prometheus

编辑配置文件prometheus.yml

mkdir -p /opt/prom/{prometheus,prometheus/tsdb}
# 赋权限
chmod 777 -R /opt/prom/{prometheus,prometheus/tsdb}
cd /opt/prom/prometheus/
vim prometheus.yml

# 输入
global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux # 这个应该是监控node
    static_configs:
      - targets: ['192.168.91.132:9100']
        labels:
          instance: localhost

注意:修改IP地址,这里的192.168.91.132就是本机地址,监控node_exporter

#启动

docker run -d -p 9090:9090 --restart=always --name prometheus \
-u root \
-v /opt/prom/prometheus/tsdb:/etc/prometheus/tsdb \
-v /opt/prom/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \
--privileged=true prom/prometheus \
--storage.tsdb.path=/etc/prometheus/tsdb \
--storage.tsdb.retention=7d \
--config.file=/etc/prometheus/prometheus.yml

# -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone 我后加的,解决时区问题

#  简单版本
docker run  -d --restart=always --name prometheus\
  -p 9090:9090 \
  -v /opt/prom/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus

查看端口9090是否启动起来

# 访问,我遇到了360兼容性模型打开不行,使用极速模式的
http://192.168.233.131:9090/graph

访问targets:

五、安装cadvisor 

CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具。CAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。


#  注意端口,之前使用last镜像有问题,这次指定了版本
sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \
  --publish=8090:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:v0.24.1

# -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezoneo  我后加的解决时区问题

ip+端口 访问,数据能实时查询,但是不能存储,所有使用prometheus方式

# 在prometheus.yml加入配置文件 
 - job_name: docker
    static_configs:
      - targets: ['192.168.233.132:8090']
        labels:
          instance: docker

六、启动grafana

1、安装

#  费了很大劲使用这个
docker run \
       -d --name grafana  -p 3000:3000 --restart=always \
       -e "GF_SECURITY_ADMIN_PASSWORD=123456" \
       --volume "grafana_data:/var/lib/grafana" \
       -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \
       grafana/grafana grafana

#  -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone 我后加的

 =====================以下部分不要看了==============



# 启动
docker run -d --restart=always \
  -p 3000:3000 \
  --name=grafana \
  grafana/grafana

至此,基本安装完成,但是,考虑到一旦docker容器停止,其存储的数据就会丢失,因此还需要进行数据的持久化工作。

需要把容器内的/etc/grafana、/var/lib/grafana、/var/log/grafana三个目录挂载到宿主机上以确保数据不随容器的停止而消失。

# 新建文件存储数据
mkdir -p /opt/grafana/{conf,data,log}

在前述运行的grafana系统中,把上述三个目录内的文件和目录全部拷贝到宿主机中。

docker cp grafana:/etc/grafana/. /opt/grafana/conf
docker cp grafana:/var/lib/grafana/. /opt/grafana/data
docker cp grafana:/var/log/grafana/. /opt/grafana/log

修改宿主机新建目录的所有者为grafana(这一步很重要,若缺乏所有者权限配合,grafana页面在登录时就会出错,无法登录)

(1)宿主机新增用户grafana,并修改UID和GID都为472(因为容器内的运行用户也是grafana,且UID和GID都是472)

useradd grafana

vi /etc/passwd

vi /etc/group

修改grafana目录所有者为grafana

chown -R grafana:grafana  /opt/grafana

cd /opt
ls -lhat

 ls -lhat grafana

# 查看容器
docker ps -a
# 删除之前启动的grafana
docker stop grafana
docker rm grafana

# 启动
docker run -d --restart=always --name grafana -p 3000:3000 -v /opt/grafana/conf:/etc/grafana -v /opt/grafana/data:/var/lib/grafana -v /opt/grafana/log:/var/log/grafana grafana/grafana

 =====================以上部分不要看了========

等待几秒钟,查看端口3000状态

# 访问
http://192.168.233.131:3000/

默认用户名admin 默认密码admin

2、添加数据源

选择prmetheus

配置地址

点击保存之后,再去开启模版

3、查看模版

4、导入官网模版

导入linux服务器监控9276

导入

这里还有:

推荐id:
nginx:193
linux:9276,8919

mysql:7362,12826,6239

cAdvisor: 8321

9276:我使用发现cpu等监控不行,做了一些修改,导出为json,可以使用json导入 点击下载地址 

7362:做了一些修改,导出为json,可以使用json导入 点击下载地址 

cAdvisor:做了修改,注意prometheusde的配yml配置文件 要是ip:端口方式。 instance: 192.168.233.132:8090 点击下载地址

通过自己画或者社区导入自己喜欢的仪表盘
Dashboards | Grafana Labs

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Docker Compose的搭建PrometheusGrafana、Alertmanager、Blackbox ExporterNode Exporter的示例: ```yaml version: "3" services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.enable-admin-api' restart: always grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" volumes: - ./grafana:/var/lib/grafana restart: always alertmanager: image: prom/alertmanager container_name: alertmanager ports: - "9093:9093" volumes: - ./alertmanager/config.yml:/etc/alertmanager/config.yml command: - '--config.file=/etc/alertmanager/config.yml' restart: always blackbox-exporter: image: prom/blackbox-exporter container_name: blackbox-exporter ports: - "9115:9115" volumes: - ./blackbox-exporter/config.yml:/etc/blackbox-exporter/config.yml command: - '--config.file=/etc/blackbox-exporter/config.yml' restart: always node-exporter: image: prom/node-exporter container_name: node-exporter ports: - "9100:9100" restart: always ``` 需要注意的是,这里的配置文件都需要自己创建并且挂载到对应的容器中。例如,prometheus.yml、config.yml和config.yml分别对应Prometheus、Alertmanager和Blackbox Exporter的配置文件。同时,Grafana的数据目录也需要挂载到主机上以便数据持久化。 另外,需要注意的是这只是一个示例,具体的配置文件需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值