Docker 实践(六):容器监控

前言 这两天研究了一下容器监控的问题,配置的过程中网上基本上找不到成型的教程文章,所以这篇文章记录一下,希望能给有需要的人带来帮助

前言

这两天研究了一下容器监控的问题,配置的过程中网上基本上找不到成型的教程文章,所以这篇文章记录一下,希望能给有需要的人带来帮助。

zabbix

zabbix 是一款很强大的监控系统,这里主要使用 zabbix 的 docker 容器的监控插件 zabbix-docker-monitoring

配置服务端

zabbix 也是 C/S 架构,首先需要配置服务端,最好能独立一台宿主机作为专门监控的服务器。

1. 创建一个数据卷容器

docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest

2. 创建 Zabbix 数据库

docker run / -d / --name zabbix-db / -v /backups:/backups / -v /etc/localtime:/etc/localtime:ro / --volumes-from zabbix-db-storage / --env="MARIADB_USER=zabbix" / --env="MARIADB_PASS=my_password" / monitoringartist/zabbix-db-mariadb

3. 创建 Zabbix 服务器

docker run / -d / --name zabbix / -p 80:80 / -p 10051:10051 / -v /etc/localtime:/etc/localtime:ro / --link zabbix-db:zabbix.db / --env="ZS_DBHost=zabbix.db" / --env="ZS_DBUser=zabbix" / --env="ZS_DBPassword=my_password" / monitoringartist/zabbix-xxl:latest

当然,也可以使用 docker-compose编排:

docker-compose.yml

version: '2'services: zabbix: image: monitoringartist/zabbix-xxl ports: - 8080:80 - 10051:10051 volumes: - /etc/localtime:/etc/localtime:ro depends_on: - zabbix.db environment: ZS_DBHost: zabbix.db ZS_DBUser: zabbix ZS_DBPassword: 123456 zabbix.db: image: monitoringartist/zabbix-db-mariadb volumes: - /backups:/backups - /etc/localtime:/etc/localtime:ro volumes_from: - zabbix-db-storage environment: MARIADB_USER: zabbix MARIADB_PASS: 123456 zabbix-db-storage: image: busybox:latest volumes: - /var/lib/mysql

配置客户端

运行客户端容器:

docker run / --name=zabbix-agent-xxl / -h $(hostname) / -p 10050:10050 / -v /:/rootfs / -v /var/run:/var/run / -e "ZA_Server=<ZABBIX SERVER IP/DNS NAME>" / -d monitoringartist/zabbix-agent-xxl-limited:latest

修改 ZA_Server,如果是端口是 10050 的话,这里直接改成服务器 ip 即可。

至此,系统配置告一段落,之后是对监控的配置。

配置监控

1. 登录管理系统

通过浏览器访问 ZabbixServerIP:Port可以访问 zabbix 服务器 web 管理界面,默认登录帐号是 Adminzabbix(注意 Admin 首字母大写)。

2. 导入模板

登录之后可将系统语言修改为中文,然后在 配置 > 模板里面导入监控模板: zabbix-template-app-docker.xml

3. 创建主机群组

配置 > 主机群组里面选择创建主机群组,可以命名为 Docker Servers

4. 创建主机

配置 > 主机里面创建主机,群组选择 Docker Servers,再配置 agent代理程序的接口为要监控的宿主机 ip,最后在 模板选项卡中选择第二步中导入的模板,添加更新即可。

等几分钟之后就可以在 监控 > 最新数据中看到监控信息了,也可以修改模板信息排除一些多余的监控信息。

非 Docker 环境下配置

如果之前已经在使用 Zabbix 监控服务器了,那就无需再运行容器了,只需要在 zabbix 客户端配置加载 zabbix_module_docker.so:

1. 编译

# Required CentOS/RHEL tools: yum install -y wget autoconf automake gcc svn# Required Debian/Ubuntu tools: apt-get install -y wget autoconf automake gcc subversion make pkg-configcd ~mkdir zabbix30cd zabbix30svn co svn://svn.zabbix.com/branches/3.0 ../bootstrap.sh./configure --enable-agentmkdir src/modules/zabbix_module_dockercd src/modules/zabbix_module_dockerwget https://raw.githubusercontent.com/monitoringartist/Zabbix-Docker-Monitoring/master/src/modules/zabbix_module_docker/zabbix_module_docker.cwget https://raw.githubusercontent.com/monitoringartist/Zabbix-Docker-Monitoring/master/src/modules/zabbix_module_docker/Makefilemake

参考

2. 配置客户端

编辑 /etc/zabbix/zabbix_agentd.conf文件, 添加

LoadModule=/path/to/zabbix_module_docker.so

然后重启客户端即可:

sudo service zabbix-agent restart

3. 配置服务端

服务端配置和运行 docker 容器的一样,也是在 web 界面中进行配置。

综上,配置结束,接下来就是自己摸索监控系统如何最佳实践的了。

参考

未登录用户
全部评论0
到底啦