容器监控

博客介绍了多种 Docker 容器监控工具。包括 Docker 自带监控子命令,如 ps、top、stats;轻量级且原生支持容器的 sysdig;能自动生成 docker host 地图的 Weave Scope;Google 开发的 cAdvisor;以及需配置 prometheus.yml 文件的 Prometheus。

docker 自带的监控子命令

  • ps:docker ps | docker container ls
  • top:docker container top $name
  • stats:docker container stats

sysdig

sysdig 是一个轻量级的系统监控工具,同时它原生还支持容器。

docker container 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
  • 交互界面
  • 实时性
  • 命令行操作

Weave Scope

weave scope 的最大特点是会自动生成一张 docker host 地图,直观地理解、监控和控制容器。

curl -L git.io/scope -o /usr/local/bin/scope
chmod a+x /usr/local/bin/scope
scope launch

Weave Scope 的访问地址为http://[Host IP]:4040/
在这里插入图片描述

cAdvisor

cAdvisor 是 google 开发的容器监控工具。
安装:

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 \
--name=cadvisor \
google/cadvisor:latest

通过 http://[Host IP]:8080 访问cAdvisor。

Prometheus

docker run -d -p 9100:9100 \
-v "/proc:/host/proc" \
-v "/sys:/host/sys" \
-v "/:/rootfs" \
--net=host \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

prometheus.yml配置文件

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # By default, scrape targets every 15 seconds.
  # scrape_timeout: 10s # is set to the global default (10s).

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

rule_files:
  # - "rules/node.rules"
  # - "rules2/*.rules"
  
scrape_configs:
  - job_name: 'prometheus'

    static_configs:
      - targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.24.136:8080','192.168.24.136:9100']

运行 Grafana在 host 192.168.24.137 上执行如下命令:

docker run -d -i -p 3000:3000 \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
--net=host \
grafana/grafana
### 配置 Zabbix 监控数据库容器的性能和状态 为了实现对数据库容器监控,需要从以下几个方面进行配置: #### 1. 安装 Zabbix Agent 并连接数据库 确保在目标数据库容器中安装并运行了 `Zabbix Agent`。例如,在 MySQL 数据库容器中,可以通过以下方式部署 Zabbix Agent: ```yaml version: '3' services: zabbix-agent: image: zabbix/zabbix-agent:centos-5.2-latest restart: always ports: - "10051:10050" environment: - ZBX_HOSTNAME="mysql-monitored" - ZBX_SERVER_HOST="zabbix-server-ip" # 替换为 Zabbix Server 的 IP 地址 - ZBX_METADATA="mysql" ``` 通过以上配置,Zabbix Agent 可以与 Zabbix Server 建立通信,并提供监控数据 [^4]。 #### 2. 创建自定义监控项(Items) 在 Zabbix Web 界面中,创建针对数据库容器的自定义监控项。这些监控项可以包括 CPU 使用率、内存占用、磁盘 I/O、网络流量等资源指标。例如,可以通过以下命令获取容器的 CPU 使用情况: ```bash docker stats --no-stream --format "{{.CPUPerc}}" mysql-monitored ``` 将上述命令集成到 Zabbix Agent 的用户参数中: ```ini UserParameter=mysql.cpu,docker stats --no-stream --format "{{.CPUPerc}}" mysql-monitored ``` 随后在 Zabbix Web 界面中添加对应的监控项,并设置触发器来检测异常值 [^4]。 #### 3. 配置数据库模板 Zabbix 提供了多种内置模板用于监控常见的数据库系统,如 MySQL、TiDB 和神通数据库。可以在 Zabbix Web 界面中导入相应的模板,例如: - **MySQL 模板**:包含预定义的监控项、触发器和图形化展示。 - **TiDB 模板**:支持分布式数据库的监控需求 [^5]。 此外,如果使用的是神通数据库,则可以参考相关教程配置特定的监控项 [^3]。 #### 4. 监控容器的运行状态 除了资源监控外,还需要关注数据库容器的运行状态。可以通过以下方法实现: - **健康检查**:在 Docker 中启用健康检查功能,例如: ```yaml healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3306"] interval: 30s timeout: 10s retries: 3 ``` - **Zabbix 触发器**:在 Zabbix 中创建触发器,当容器健康检查失败时发送告警通知 [^4]。 #### 5. 集成日志监控 对于数据库容器的日志文件,可以通过 Zabbix Agent 的 `log[]` 或 `logrt[]` 监控项进行实时监控。例如,监控 MySQL 日志文件中的错误信息: ```ini UserParameter=mysql.error.log,cat /var/log/mysql/error.log | grep -i "error" ``` 随后在 Zabbix Web 界面中创建对应的监控项,并设置触发器来检测关键错误 [^4]。 #### 6. 配置告警和可视化 最后,配置 Zabbix 的告警规则和仪表盘,以便及时发现潜在问题。具体步骤如下: - **告警规则**:根据监控项的历史数据设置合理的阈值,例如 CPU 使用率超过 80% 时触发告警。 - **仪表盘**:利用 Zabbix 的图形化功能,创建数据库容器的性能概览图,包括 CPU、内存和磁盘使用趋势 [^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值