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

目录

一、安装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 

 基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第1张图片

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

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第2张图片

四、启动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是否启动起来

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第3张图片

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

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第4张图片

访问targets:

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第5张图片

五、安装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搭建Prometheus+Grafana+node-exporter+cadvisor_第6张图片

# 查看容器
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/

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第7张图片

默认用户名admin 默认密码admin

2、添加数据源

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第8张图片

选择prmetheus

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第9张图片

配置地址

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第10张图片

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

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第11张图片

3、查看模版

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第12张图片

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第13张图片

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第14张图片

4、导入官网模版

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第15张图片

导入linux服务器监控9276

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第16张图片

导入

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第17张图片

这里还有:

推荐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 点击下载地址

基于Docker搭建Prometheus+Grafana+node-exporter+cadvisor_第18张图片

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

你可能感兴趣的:(docker,性能测试,linux,docker,centos,运维)