Docker实战系列——第三话–docker 监控(三)– how could we monitoring(3)?
2017-07-30 08:26
716 查看
前言:
Docker监控服务器和容器变得越来越需要我们提供的Docker主机和容器。本教程将引导您了解如何将几个不同的组件粘合在一起,以实现Docker监控。前置条件:
Docker已经安装,配置并运行在主机上。请确保您可以使用本地或公共IP上的Web浏览器连接到Docker主机。
Docker监控组件
cAdvisor - Google一直在使用容器,并创建了cAdvisor来帮助监控其基础架构。这个单独的工具是一个惊人的监控工具。它不仅通过在Docker主机上运行cAdvisor容器来监视Docker容器,还可以监视Docker主机,而无需任何配置。请确保查看cAdvisor GitHub有关API和不同配置选项的更多文档InfluxDB - InfluxDB是一个分布式时间序列数据库。 cAdvisor仅显示实时信息,不存储指标。我们需要存储cAdvisor提供的监视信息,以显示实时以外的时间范围。
Grafana Metrics Dashboard ,Grafana工作面板允许我们将所有的零件拉到一起。这个功能强大的工作面板允许我们针对InfluxDB运行查询,并以非常漂亮的布局对其进行统计。
Docker监控的安装
现在我们对Docker监控设置中涉及的不同组件进行了概述,我们开始将它们全部拉在一起。 我们将首先从InfluxDB开始,并尝试连接到cAdvisor。1.安装InfluxDb。我们使用下面的默认设置,并命名容器influxsrv,稍后我们将使用它来进行链接。
sudo docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb
让我们快速测试,我们的InfluxDB安装正确。导航到您的http:// DockerIP:8083使用以下凭据登录InfluxDB。
Username - root
Password - root
2.创建cadvisor 数据库
登录InfluxDB后,单击屏幕顶部的“数据库”链接。键入数据库名称的名称管理员,然后单击创建数据库
3.安装cAdvisor容器并将其链接到InfluxDB容器。
sudo 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 --link influxsrv:influxsrv --name=cadvisor google/cadvisor:latest -storage_driver_db=influxdb -storage_driver_host=influxsrv:8086
一旦安装并运行了cAdvisor容器,您现在可以导航到http:// DockerIP:8080例如http://192.168.10.1:8080 您现在应该可以在Docker主机和容器上查看cAdvisor收集统计信息。
4.安装Grafana仪表板并将其链接到InfluxDB容器:
sudo docker run -d -p 3000:3000 -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana grafana/grafana
5.登录到Grafana并配置数据源
导航到http:// DockerIP:3000
使用如下信息登录:
Username - admin
Password - admin
6.将InfluxDB连接到Grafana工作控制台:
登录后点击GUI的左上角的Grafana图标(Fireball)。这应该弹出一个侧边栏菜单。点击数据源。
接下来,点击屏幕顶部的添加新数据源。 在数据源屏幕中填写以下信息:
数据源设置
名称:influxdb类型:InfluxDB 0.8.x
一定要检查默认框
Http settings
网址:http:// influxsrv:8086(这是在Grafana容器上创建链接时指定的名称)
Access: proxy
Basic Auth: Enabled
User: admin
Password: admin
InfluxDB Details
Database: cadvisor (Or the name you specified when creating the database in step 2)
User: root
Password: root
您现在应该已经建立了与InfluxDB的连接,我们将在下一节中进行测试。
配置Grafana进行Docker监控
现在有趣的部分。我们设置我们的第一个工作控制台与Grafana,并可视化来自cAdvisor的数据。1.再次点击Grafana图标(Fireball图标左上角)
2.打开仪表板菜单 - >展开主菜单下拉 - >单击+新建
3.我们现在在Grafana内部创建了一个新的仪表板。我们在这个仪表盘内创建我们的第一个图形。点击绿色垂直线,如下图所示,屏幕截图中以红色圈出。这扩展了仪表板的行选项。
4.单击添加面板 - >图
5.单击您创建的新图形的标题区域,其中显示“无标题(单击此处)”,然后单击编辑
6.现在是写我们的图表的第一个查询。我们将创建一个显示文件系统存储限制和用法的图形。
查询1 - 在图形屏幕中填写以下信息:series:stats 点击“值”,它将显示InfluxDB内部可用系列的下拉列表。
select: mean(fs_limit)
Alias: Limit
查询2 - 在图形底部屏幕是一个+添加查询按钮,允许我们在图表中添加另一个指标。
series: stats
select: mean(fs_usage)
Alias: Usage
7.单击常规菜单并更改图形的标题
8.单击轴和网格菜单
Left Y Unit: Bytes 您的图表现在应以正确的单位显示
9.一旦完成任何其他项目,一定要保存你的工作。点击屏幕顶部的保存图标。
在屏幕截图中看到的查询示例可以在这里找到:Docker Monitoring Queries
Docker监控结论
我们现在已经构建了一个单一的Grafana仪表板,其中包含了我们的Filesystem统计信息。您可以看到创建多个图表来监视我们的Docker主机和容器是非常简单的。请务必查看Grafana文档,深入了解Grafana的查询和功能。看看下面的屏幕截图,显示了创建一些非常有趣的图形(带宽,每个容器的CPU使用量,内存使用量和文件系统限制/使用)的可能性。
故障排除
如果你有麻烦,这是给你的。弄清楚所有设置,以及Grafana到InfluxDB的连接问题。如果您的图表有问题,我强烈建议您的浏览器中选择一个开发控制台。使用开发控制台,您很容易看到您的查询或连接到InfluxDB容器的问题。例如:Chrome开发工具 - >更多工具 - > Javascript控制台
另一个解决方法是使用容器的IP地址来解决连接问题。但是,如果您重新启动容器,IP地址更改,因此这只是临时修复。
docker inspect <container name>
在输出中搜索网络设置部分下的IP地址,如下所示:
"NetworkSettings": { "Bridge": "docker0", "Gateway": "172.17.42.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.54",
然后,您可以将我们上面使用的数据源设置中使用的名称替换为解决方法。这对我有用,直到我修复了容器之间的链接。
更新
感谢大家对本文的压倒性回应。由于这篇文章发表了Dale Kate-Murray和Ross Jimenez创建了一个Docker Monitoring Compose文件,以帮助所有人开始使用。评论中提出的另一个问题是如何构建不同的工作控制台。所以这里是Dashboard中的JSON文件 - https://github.com/vegasbrianc/docker-monitoring
原文链接:https://www.brianchristner.io/how-to-setup-docker-monitoring/
未完,详情请见下一篇,如何设置邮件报警?《Docker实战系列——第三话–docker 监控(三)– how could we monitoring(4)?》
相关文章推荐
- Docker实战系列——第三话--docker 监控(三)-- how could we monitoring(2)?
- Docker实战系列——第三话–docker 监控(三)– how could we monitoring(4)?
- Docker实战系列——第三话--docker 监控(三)-- how could we monitoring(1)?
- Docker实战系列——第三话--docker 监控(二)-- what should we monitoring?
- Docker实战系列——第三话--docker 监控(一)-- what and why?
- Docker 监控实战
- Docker 监控实战
- Docker实战系列——第二话--docker仓库管理(二)--玩转Harbor
- 实战Docker到Kubernetes技术系列视频教程
- Docker实战中从Ubuntu系列换到CentOS7.X系列应该避免的地方
- docker入门实战(理论+实践)系列--docker部署和镜像容器管理
- Skype For Business 2015实战系列16:安装并配置监控存档服务器 推荐
- Docker实战系列—第四话–kubernetes(一)-什么是kubernetes?
- [52ABP实战课程系列]Docker&Ubuntu从入门到实战开课啦~
- Docker系列一之基础快速入门企业实战
- Docker下实战zabbix三部曲之二:监控其他机器
- docker入门实战(理论+实践)系列---进入docker的三种方式