cadvisor+influxdb+grafana docker监控
程序员文章站
2022-06-07 08:48:43
...
cadvisor+influxdb+grafana进行docker监控,看了一些blog,自己尝试进行了多台服务器的监控
首先有两台服务器A1,A2,A1安装infludb,存放所有的监控数据
docker run -d -p 8083:8083 -p 8086:8086 -v /opt/influxdb:/var/lib/influxdb --hostname=influxdb tutum/influxdb
然后访问A1:8086可看到
然后选择创建数据库,在这创建A1db 和 A2db两个 (监控几台服务器创建几个数据库)
创建完成后可选择 show databases 查看
然后在A1,A2上 安装cadvisor,下面是在A1上执行的,A2同理
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true google/cadvisor -storage_driver=influxdb -storage_driver_db=A1db -storage_driver_host=A1:8086
在这需要指定 --name 容器的名字 ,在查询的时候会用到
执行完成后,在A1上安装grafana
docker run -d -p 3000:3000 --hostname grafana --name grafana grafana/grafana:3.1.1
然后打开浏览器 输入 A1:3000 可看到
登陆成功后 先创建两个数据源
添加后
然后创建监控图表显示
剩下的Axes是对x轴和y轴的单位 min max等配置 ,其他的可以自己尝试
其中一个显示结果:
以下container_name 为 cadvisor创建的时候指定的容器名称
Memory查询:
SELECT mean("value") FROM "memory_usage" WHERE container_name='cadvisor' AND container_name='cadvisor' AND $timeFilter GROUP BY time($interval), "container_name" fill(previous)
cpu查询:
SELECT derivative(mean("value"), 10s) FROM "cpu_usage_total" WHERE container_name='cadvisor' AND $timeFilter GROUP BY time($interval), container_name fill(previous)
网络io:
tx:
SELECT derivative(mean("value"), 10s)/8 FROM "tx_bytes" WHERE container_name='cadvisor' AND $timeFilter GROUP BY time($interval), container_name fill(previous)
rx:
SELECT derivative(mean("value"), 10s)/8 FROM "rx_bytes" WHERE container_name='cadvisor' AND $timeFilter GROUP BY time($interval), container_name fill(previous)