本文记录如何用安装 memcached_exporter 来收集 memcached 信息并且暴露给 Prometheus 监听程序,Prometheus 将收集的信息传递给 grafana 进行信息可视化。
安装 Memcached Exporter
prometheus 官方的 memcached_exporter 文档
bridge 桥接方式
在 192.168.21.16 服务器上运行了三个 memcached 端口分别为 11211:11213 目前官方的这个版本还不支持多个地址,社区的解决方案点这里
1 | docker run -d -p 9211:9150 --name=memcached_11211 quay.io/prometheus/memcached-exporter:v0.5.0 --memcached.address=192.168.21.16:11211 |
在这里我们启动了三个 docker container 用的是 bridge 网络方式来分别监听 11211–11213 需要注意的是 memcached.address 默认监听的是 localhost:11211 如果是 bridge 方式的话,用默认的方法 localhost 只能监听到容器内部。
host 网络方式
如果服务器只有一个 memcached 进程的话,那么我们可以用 host 网络的方式。 容器和服务器共享网络,优点是网络高性能,缺点就是需要注意端口冲突。
1 | docker run --network=host --name=memcached_11211 quay.io/prometheus/memcached-exporter:v0.5.0 --memcached.address=localhost:11211 |
注意 iptable
一旦使用了 docker 我们需要特别注意的就是 iptable
-A INPUT -s 172.16.0.0/12 -j DROP#检查iptables filter 表 INPUT 链是否阻止了docker container IP,因为 docker 默认 IP 是 172.17.0.0/24,- -A INPUT -s 172.17.0.0/24 -p tcp –dport 11211:11213 -j ACCEPT #若采用 bridge 桥接方式, 需要允许容器连接到 memcached
- -A INPUT -s Prometheus_IP -p tcp –dport 9211:9213 -j ACCEPT #给 Prometheus 开放监听的白名单
检查 memcached_exporter 结果
1 | curl 172.17.0.2:9150/metrics #直接访问容器内部 |
如果看到输出的结果,那说明 memcached_exporter 已经收集到 memcached 的信息并将此暴露出来了。
memcached 一些字段的含义
常见错误
- 配置错误 connection failed,注意地址 –memcached.address=192.168.21.16:11212
- 启动新的容器失败,地址端口占用,需要重启一下docker
- iptables 一般 reload, restart 会刷新 NAT 表,导致 docker 路由失败。这种情况需要重启 docker, docker 会在 NAT 表添加路由
Grafana 数据可视化
grafana 官方文档,添加数据源,模板。
prometheus function 函数在画图时非常重要
1 | # 每分钟 command 的数量 |