[toc]

docker容器状态查看

docker自带的监控命令

1
2
3
4
# 命令
docker ps # 查看正在运行的容器
docker top 容器ID # 查看容器进程
docker stats # 查看容器资源占用

有了上面的命令,我们就可以使用zabbix来监控docker容器了,但是问题就是,zabbix-agent的端口,我们在宿主机上只能映射出来一个。

解决方案:

  • 可以映射宿主机上不同的端口

    1
    2
    3
    -p10050:10050  
    -p10052:10050
    -p10053:10050
  • 可以起多块网卡

    1
    2
    3
    4
    -p10.0.0.81:10050:10050   
    -p10.0.0.88:10050:10050
    -p10.0.0.89:10050:10050
    -p10.0.0.90:10050:10050
  • 修改不同容器的agent端口

  • 映射容器的相关文件,然后监控宿主机上的对应文件

    1
    2
    3
    4
    5
    6
    7
    8
    # 将容器运行的输出内容存放在文件中
    (docker run -it busybox free -m) > /opt/nginx/mem.info

    # 查看输出信息
    cat /opt/nginx/mem.info
    total used free shared buff/cache available
    Mem: 973 315 94 0 563 498
    Swap: 1024 49 975

使用普罗米修斯监控容器

  • cAdvisor
    • 数据收集器,类似于:zabbix-agent
    • 收集容器的数据
    • 监控容器
  • node_exporter
    • 数据收集器,类似于:zabbix-agent
    • 收集宿主机的数据
    • 监控物理机
  • prometheus
    • 监控工具 ,类似:zabbix-server
  • grafana
    • 出图工具,类似于:zabbix、elasticsearch中的绘图
    • 可以关联zabbix、elasticsearch、kinnba、Prometheus等软件进行绘图
    • 将收集到数据绘图展示(更专业)