目录
docker自带的监控命令
docker top / stats / logs
//默认会显示一个实时变化的列表,展示每个容器的cpu使用率,内存使用
量和可用量
sysdig
轻量级的系统监控程序
[root@docker01 ~]# docker run -it --rm --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig
//下载插件失败后可以运行下边的命令,重新下载
root@6d37c6f2646e:/# sysdig-probe-loader
//下载成功之后,可以运行sysdig命令,查看监控项
root@e1b7bf293e05:/# csysdig
Weave scope
图形化的显示,能够直观的看到容器资源使用情况,便于理解,监控和控制容器
[root@docker01 ~]# sudo curl -L git.io/scope -o /usr/local/bin/scope
[root@docker01 ~]# sudo chmod a+x /usr/local/bin/scope
[root@docker01 ~]# scope launch
这里如果是多台docker,步骤是一样的,比如三台docker
[root@docker01 ~]# scope launch 192.168.1.20 192.168.1.21 192.168.1.22 //把三台的ip都写上就可以了
PS: scope可以监控单台dockerhost,也可以监控多台的dockerhost,监控效果只需在运行scope launch 本机IP地址 其他IP地址 , 不过需要注意的是如果是多台的dockerhost,在运行前,保证主机名不能冲突,区别主机名。
PS: 注意,此服务会将宿主机的4040端口打开,然后虽然说使用此服务的人员可以访问,但,同样,如果是集群外的其他IP地址,也能够访问此服务,而且scope目前没有关于USER访问限制。所以,想要使用此服务,必须严格管理宿主机的4040端口的访问。而且最好,将默认的端口进行修改。
prometheus(普罗米修斯)
prometheus官方网站:https://prometheus.io/
Prometheus是由SoundCloud开发的开源监控系统的开源版本。2016年,由Google发起的Linux基金会(Cloud Native ComputingFoundation,CNCF)将Prometheus纳入其第二大开源项目。Prometheus在开源社区也十分活跃
易管理性
Prometheus: Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。
Nagios: 需要有专业的人员进行安装,配置和管理,并且过程很复杂。
业务数据相关性
Prometheus:监控服务的运行状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。
Nagios:大部分的监控能力都是围绕系统的一些边缘性的问题,主要针对系统服务和资源的状态以及应用程序的可用性。
另外Prometheus还存在以下优点:
高效:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点。
易于伸缩:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群;Prometheus提供多种语言的客户端SDK,这些SDK可以快速让应用程序纳入到Prometheus的监控当中。
良好的可视化:Prometheus除了自带有Prometheus UI,Prometheus还提供了一个独立的基于Ruby On Rails的Dashboard解决方案Promdash。另外最新的Grafana可视化工具也提供了完整的Proetheus支持,基于Prometheus提供的API还可以实现自己的监控可视化UI。
实验环境:
主机名称 | IP地址 | 安装组件 |
---|---|---|
machine | 192.168.1.20 | NodeEXporter、cAdvisor、Prometheus Server、Grafana |
node01 | 192.168.1.21 | NodeEXporter、cAdvisor |
node02 | 192.168.1.22 | NodeEXporter、cAdvisor |
全部关闭防火墙,禁用selinux。
需要部署的组件:
Prometheus Server: 普罗米修斯的主服务器。
NodeEXporter: 负责收集Host硬件信息和操作系统信息。
cAdvisor: 负责收集Host上运行的容器信息。
Grafana: 负责展示普罗米修斯监控界面。
注意:在部署之前要同步时间,否则在后面的监控面板没有东西
[root@docker01 ~]# yum -y install ntp
[root@docker01 ~]# systemctl start ntpd
[root@docker01 ~]# ntpstat
[root@docker01 ~]# date
1)3个节点,全部部署node-EXporter,和cAdvisor.
[root@docker01 ~]# docker run -d -p 9100:9100 --name exporter -v /proc:/host/proc -v /sys:/host/sys -v /:/rootfs --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.