zabbix 监控docker中的redis
1、添加mysql.conf文件(名字无所谓主要是.conf)
进入zabbix-agent的conf目录,自己根据实际的配置路径找。
如果redis设置有密码, "redis-cli info" 修改为:"redis-cli -a 密码 info" 2>/dev/null
2>/dev/null是为了:将标准错误丢弃(Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.)
#vi redis.conf
【
#当前连接的客户端数量
UserParameter=redis_connected_clients,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "connected_clients" | awk -F ':' '{print $2}' 2>/dev/null
#进程占用的物理内存总量 进程实际使用的物理内存大小,包含内存碎片;如果rss过大导致内部碎片大,内存资源浪费,和fork的耗时和cow内存都会增大
UserParameter=redis_used_memory_rss_human,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "used_memory_rss_human" | awk -F ':' '{print $2}' | sed 's/.$//'| sed 's/.$//'
#进程占用的物理内存总量 有单位
UserParameter=redis_used_memory_rss_human_unit,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "used_memory_rss_human" | awk -F ':' '{print $2}'
#redis的内存消耗峰值
UserParameter=redis_used_memory_peak_human,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "used_memory_peak_human" | awk -F ':' '{print $2}' | sed 's/.$//'|sed 's/.$//'
#redis的内存消耗峰值 有单位
UserParameter=redis__used_memory_peak_human_unit,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "used_memory_peak_human" | awk -F ':' '{print $2}'
#服务器已接受的连接请求数量
UserParameter=redis_total_connections_received,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "total_connections_received" | awk -F ':' '{print $2}'
#服务器每秒钟执行的命令数量
UserParameter=redis_instantaneous_ops_per_sec,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "instantaneous_ops_per_sec" | awk -F ':' '{print $2}'
#网络入口kps
UserParameter=redis_instantaneous_input_kbps,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "instantaneous_input_kbps" | awk -F ':' '{print $2}'
#网络出口kps
UserParameter=redis_instantaneous_output_kbps,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "instantaneous_output_kbps" | awk -F ':' '{print $2}'
#因为最大客户端数量限制而被拒绝的连接请求数量
UserParameter=redis_rejected_connections,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "rejected_connections" | awk -F ':' '{print $2}'
#因为过期而被自动删除的数据库键数量
UserParameter=redis_expired_keys,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "expired_keys" | awk -F ':' '{print $2}'
#因为最大内存容量限制而被驱逐(evict)的键数量
UserParameter=redis_evicted_keys,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "evicted_keys" | awk -F ':' '{print $2}'
#查找数据库键成功的次数
UserParameter=redis_keyspace_hits, echo | docker exec -i redis bash -c "redis-cli info" | grep -w "keyspace_hits" | awk -F ':' '{print $2}'
#查找数据库键失败的次数
UserParameter=redis_keyspace_misses,echo | docker exec -i redis bash -c "redis-cli info" | grep -w "keyspace_misses" | awk -F ':' '{print $2}'
#Redis存活监控 返回 PONG 为存活
UserParameter=redis_alive,echo "ping" | docker exec -i redis bash -c "redis-cli "
#list阻塞调用被阻塞的连接个数 (blocked_clients): 如果监控数据大于0,告警
UserParameter=redis_blocked_clients, echo | docker exec -i redis bash -c "redis-cli info" | grep -w "blocked_clients"| awk -F ':' '{print $2}'
】
2、重启zabbix-agent
3、测试
#echo "ping" | docker exec -i redis bash -c "redis-cli "
4、web管理配置监控项
注意键值,键值不能有空格
5、最新数据
添加完监控项后,等一会,在最新数据能查看到信息