Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/7.4
Redis by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Redis monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- Redis versions 3.0.6, 4.0.14, 5.0.6, 7.2.4
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
-
Set up and configure
zabbix-agent2compiled with the Redis monitoring plugin. -
The Redis default user should have permissions to run
CONFIG,INFO,PING,CLIENTandSLOWLOGcommands. -
Or, the default user ACL should have the
@admin,@slow,@dangerous,@fastand@connectioncategories. -
Test availability:
zabbix_get -s 127.0.0.1 -k redis.ping[tcp://127.0.0.1:6379]
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CONN.URI} | Connection string in URI format. When set, this parameter overrides the value specified in the Otherwise, the plugin's default value is used: |
tcp://localhost:6379 |
| {$REDIS.USERNAME} | Username for Redis server authentication. |
|
| {$REDIS.PASSWORD} | Password for Redis server authentication. |
|
| {$REDIS.SECTION} | Section of Redis server information to retrieve. |
|
| {$REDIS.PATTERN} | Pattern for filtering Redis server configuration parameters. |
|
| {$REDIS.PROCESS_NAME} | Name of the Redis server process to monitor. |
redis-server |
| {$REDIS.LLD.PROCESS_NAME} | Redis process name used during LLD. |
redis-server |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Regex pattern for databases to include during discovery. |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Regex pattern for databases to exclude during discovery. |
CHANGE_IF_NEEDED |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag allowed between Redis master and replica, in seconds. |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Slowlog entry rate threshold that triggers a warning. |
1 |
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Threshold for the maximum percentage of connected Redis clients. |
80 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used by the Redis server. |
90 |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Threshold for the Redis server memory fragmentation ratio. |
1.5 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Retrieves general Redis server information and statistics. |
Zabbix agent | redis.info["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.SECTION}","{$REDIS.USERNAME}"] |
| Get config | Extracts Redis server info. |
Zabbix agent | redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"] Preprocessing
|
| Ping | Verifies Redis server connectivity. |
Zabbix agent | redis.ping["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"] Preprocessing
|
| Slowlog entries per second | Tracks |
Zabbix agent | redis.slowlog.count["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"] Preprocessing
|
| Get Client info | Extracts client-related information from the Redis server. |
Dependent item | redis.clients.info_raw Preprocessing
|
| Get CPU info | Extracts CPU usage data from the Redis server. |
Dependent item | redis.cpu.info_raw Preprocessing
|
| Get Keyspace info | Extracts keyspace data from the Redis server. |
Dependent item | redis.keyspace.info_raw Preprocessing
|
| Get Memory info | Extracts memory data from the Redis server. |
Dependent item | redis.memory.info_raw Preprocessing
|
| Get Persistence info | Collects persistence data from the Redis server. |
Dependent item | redis.persistence.info_raw Preprocessing
|
| Get Replication info | Extracts replication data from the Redis server. |
Dependent item | redis.replication.info_raw Preprocessing
|
| Get Server info | Retrieves Redis server information. |
Dependent item | redis.server.info_raw Preprocessing
|
| Get Stats info | Collects Redis server statistics. |
Dependent item | redis.stats.info_raw Preprocessing
|
| CPU sys | Retrieves Redis Server CPU usage (system). |
Dependent item | redis.cpu.sys Preprocessing
|
| CPU sys children | Retrieves system CPU usage of the Redis server child processes. |
Dependent item | redis.cpu.sys_children Preprocessing
|
| CPU user | Collects user CPU usage data from the Redis server. |
Dependent item | redis.cpu.user Preprocessing
|
| CPU user children | Retrieves user-level CPU usage of Redis server child processes. |
Dependent item | redis.cpu.user_children Preprocessing
|
| Blocked clients | Retrieves blocked clients from the Redis server. |
Dependent item | redis.clients.blocked Preprocessing
|
| Max input buffer | Monitors maximum input buffer size of Redis server clients. |
Dependent item | redis.clients.max_input_buffer Preprocessing
|
| Max output buffer | Monitors maximum output buffer size of Redis server clients. |
Dependent item | redis.clients.max_output_buffer Preprocessing
|
| Connected clients | Monitors the number of active Redis server clients. |
Dependent item | redis.clients.connected Preprocessing
|
| Cluster enabled | Indicates if Redis server cluster mode is enabled. |
Dependent item | redis.cluster.enabled Preprocessing
|
| Memory used | Monitors the memory used by the Redis server. |
Dependent item | redis.memory.used_memory Preprocessing
|
| Memory used Lua | Monitors the memory used by Lua scripts in the Redis server. |
Dependent item | redis.memory.used_memory_lua Preprocessing
|
| Memory used peak | Monitors peak memory usage of the Redis server. |
Dependent item | redis.memory.used_memory_peak Preprocessing
|
| Memory used RSS | Monitors resident memory (RSS) used by the Redis server. |
Dependent item | redis.memory.used_memory_rss Preprocessing
|
| Memory fragmentation ratio | Shows the memory fragmentation ratio of the Redis server instance. This value indicates the efficiency of Redis memory mapping: Above 1.0 – Memory fragmentation is likely. Consider restarting the Redis server to allow the operating system to reclaim fragmented memory, especially if the ratio exceeds 1.5. Below 1.0 – Redis may have insufficient available memory. Consider optimizing memory usage or adding more RAM. Note: If peak memory usage is significantly higher than current memory usage, the memory fragmentation ratio may be unreliable. More information: https://redis.io/topics/memory-optimization |
Dependent item | redis.memory.fragmentation_ratio Preprocessing
|
| AOF current rewrite time sec | Monitors the current AOF rewrite time on the Redis server. |
Dependent item | redis.persistence.aof_current_rewrite_time_sec Preprocessing
|
| AOF enabled | Indicates if AOF persistence is enabled on the Redis server. |
Dependent item | redis.persistence.aof_enabled Preprocessing
|
| AOF last bgrewrite status | Shows the status of the last AOF background rewrite on the Redis server. |
Dependent item | redis.persistence.aof_last_bgrewrite_status Preprocessing
|
| AOF last rewrite time sec | Shows the duration of the last AOF rewrite in seconds on the Redis server. |
Dependent item | redis.persistence.aof_last_rewrite_time_sec Preprocessing
|
| AOF last write status | Shows the status of the last AOF write on the Redis server. |
Dependent item | redis.persistence.aof_last_write_status Preprocessing
|
| AOF rewrite in progress | Indicates if an AOF rewrite is currently in progress on the Redis server. |
Dependent item | redis.persistence.aof_rewrite_in_progress Preprocessing
|
| AOF rewrite scheduled | Indicates if an AOF rewrite is scheduled on the Redis server. |
Dependent item | redis.persistence.aof_rewrite_scheduled Preprocessing
|
| Dump loading | Indicates if the Redis server is currently loading a dump file. |
Dependent item | redis.persistence.loading Preprocessing
|
| RDB bgsave in progress | Indicates if an RDB |
Dependent item | redis.persistence.rdb_bgsave_in_progress Preprocessing
|
| RDB changes since last save | Shows the number of changes since the last RDB save on the Redis server. |
Dependent item | redis.persistence.rdb_changes_since_last_save Preprocessing
|
| RDB current bgsave time sec | Monitors the current RDB |
Dependent item | redis.persistence.rdb_current_bgsave_time_sec Preprocessing
|
| RDB last bgsave status | Shows the status of the last RDB |
Dependent item | redis.persistence.rdb_last_bgsave_status Preprocessing
|
| RDB last bgsave time sec | Monitors the last RDB |
Dependent item | redis.persistence.rdb_last_bgsave_time_sec Preprocessing
|
| RDB last save time | Shows the timestamp of the last RDB save on the Redis server. |
Dependent item | redis.persistence.rdb_last_save_time Preprocessing
|
| Connected slaves | Shows the number of connected Redis slave servers. |
Dependent item | redis.replication.connected_slaves Preprocessing
|
| Replication backlog active | Indicates if the replication backlog is active on the Redis server. |
Dependent item | redis.replication.repl_backlog_active Preprocessing
|
| Replication backlog first byte offset | Shows the offset of the first byte in the Redis server replication backlog. |
Dependent item | redis.replication.repl_backlog_first_byte_offset Preprocessing
|
| Replication backlog history length | Shows the length of the Redis server replication backlog history. |
Dependent item | redis.replication.repl_backlog_histlen Preprocessing
|
| Replication backlog size | Shows the size of the Redis server replication backlog. |
Dependent item | redis.replication.repl_backlog_size Preprocessing
|
| Replication role | Shows the Redis server replication role (master or slave) from the replication info. |
Dependent item | redis.replication.role Preprocessing
|
| Master replication offset | Shows the master replication offset on the Redis server. |
Dependent item | redis.replication.master_repl_offset Preprocessing
|
| Process id | Retrieves the Redis server process identifier. |
Dependent item | redis.server.process_id Preprocessing
|
| Redis mode | Retrieves the current Redis server mode ( |
Dependent item | redis.server.redis_mode Preprocessing
|
| Redis version | Version of the Redis server. |
Dependent item | redis.server.redis_version Preprocessing
|
| TCP port | Shows the TCP port used by the Redis server. |
Dependent item | redis.server.tcp_port Preprocessing
|
| Uptime | Shows Redis server uptime. |
Dependent item | redis.server.uptime Preprocessing
|
| Evicted keys | Number of keys evicted by the Redis server due to the |
Dependent item | redis.stats.evicted_keys Preprocessing
|
| Expired keys | Total number of keys expired on the Redis server. |
Dependent item | redis.stats.expired_keys Preprocessing
|
| Instantaneous input bytes per second | Instantaneous network read rate in KB/sec on the Redis server. |
Dependent item | redis.stats.instantaneous_input.rate Preprocessing
|
| Instantaneous operations per sec | Shows the number of operations processed per second by the Redis server. |
Dependent item | redis.stats.instantaneous_ops.rate Preprocessing
|
| Instantaneous output bytes per second | Instantaneous network write rate in KB/sec on the Redis server. |
Dependent item | redis.stats.instantaneous_output.rate Preprocessing
|
| Keyspace hits | Number of successful key lookups in the Redis main dictionary. |
Dependent item | redis.stats.keyspace_hits Preprocessing
|
| Keyspace misses | Number of failed key lookups in the Redis server main dictionary. |
Dependent item | redis.stats.keyspace_misses Preprocessing
|
| Latest fork usec | Duration of the latest Redis server fork operation in microseconds. |
Dependent item | redis.stats.latest_fork_usec Preprocessing
|
| Migrate cached sockets | Number of sockets currently open for the Redis server |
Dependent item | redis.stats.migrate_cached_sockets Preprocessing
|
| Pubsub channels | Total number of Redis server pub/sub channels with active client subscriptions. |
Dependent item | redis.stats.pubsub_channels Preprocessing
|
| Pubsub patterns | Total number of Redis pub/sub patterns with active client subscriptions. |
Dependent item | redis.stats.pubsub_patterns Preprocessing
|
| Rejected connections | Number of connections rejected by the Redis server due to the |
Dependent item | redis.stats.rejected_connections Preprocessing
|
| Sync full | Number of full resynchronizations with Redis server replicas. |
Dependent item | redis.stats.sync_full Preprocessing
|
| Sync partial err | Number of denied partial resynchronization requests on the Redis server. |
Dependent item | redis.stats.sync_partial_err Preprocessing
|
| Sync partial ok | Number of accepted partial resynchronization requests on the Redis server. |
Dependent item | redis.stats.sync_partial_ok Preprocessing
|
| Total commands processed | Total number of commands processed by the Redis server. |
Dependent item | redis.stats.total_commands_processed Preprocessing
|
| Total connections received | Total number of connections received by the Redis server. |
Dependent item | redis.stats.total_connections_received Preprocessing
|
| Total net input bytes | Total number of bytes read by the Redis server from the network. |
Dependent item | redis.stats.total_net_input_bytes Preprocessing
|
| Total net output bytes | Total number of bytes written by the Redis server to the network. |
Dependent item | redis.stats.total_net_output_bytes Preprocessing
|
| Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
Dependent item | redis.config.maxclients Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Failed to fetch INFO | Zabbix has not received any item data for the last 30 minutes. |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.SECTION}","{$REDIS.USERNAME}"],30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Redis: Configuration has changed | Redis configuration has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"]))>0 |
Info | Manual close: Yes |
| Redis: Service is down | last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"])=0 |
Average | Manual close: Yes | |
| Redis: Too many entries in the slowlog | min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
Info | ||
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
Warning | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
Warning | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
Warning | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
Warning | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
Info | Manual close: Yes |
| Redis: Replication role has changed | Redis replication role has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
Warning | Manual close: Yes |
| Redis: Version has changed | The Redis version has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
Info | Manual close: Yes |
| Redis: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
Info | Manual close: Yes |
| Redis: Connections are rejected | Number of connections rejected after Redis server reached the |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
High |
LLD rule Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Metrics for individual Redis server keyspaces. |
Dependent item | redis.keyspace.discovery Preprocessing
|
Item prototypes for Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| DB {#DB}: Get Keyspace info | The item gets information about the keyspace of database |
Dependent item | redis.db.info_raw["{#DB}"] Preprocessing
|
| DB {#DB}: Average TTL | Average TTL. |
Dependent item | redis.db.avg_ttl["{#DB}"] Preprocessing
|
| DB {#DB}: Expires | Number of keys with an expiration set. |
Dependent item | redis.db.expires["{#DB}"] Preprocessing
|
| DB {#DB}: Keys | Total number of keys. |
Dependent item | redis.db.keys["{#DB}"] Preprocessing
|
LLD rule AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added. |
Dependent item | redis.persistence.aof.discovery Preprocessing
|
Item prototypes for AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF current size{#SINGLETON} | AOF current file size. |
Dependent item | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing
|
| AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite. |
Dependent item | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing
|
| AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation is pending. |
Dependent item | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing
|
| AOF buffer length{#SINGLETON} | Size of the AOF buffer. |
Dependent item | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer. |
Dependent item | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF pending background I/O fsync{#SINGLETON} | Number of pending |
Dependent item | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing
|
| AOF delayed fsync{#SINGLETON} | Count of delayed |
Dependent item | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing
|
LLD rule Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Slave metrics discovery | If the instance is a replica, additional metrics are provided. |
Dependent item | redis.replication.slave.discovery Preprocessing
|
Item prototypes for Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Master host{#SINGLETON} | Host or IP address of the master. |
Dependent item | redis.replication.master_host[{#SINGLETON}] Preprocessing
|
| Master port{#SINGLETON} | TCP port the master is listening on. |
Dependent item | redis.replication.master_port[{#SINGLETON}] Preprocessing
|
| Master link status{#SINGLETON} | Status of the link (up/down). |
Dependent item | redis.replication.master_link_status[{#SINGLETON}] Preprocessing
|
| Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with the master. |
Dependent item | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing
|
| Master sync in progress{#SINGLETON} | Indicates the master is syncing to the replica. |
Dependent item | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing
|
| Slave replication offset{#SINGLETON} | The replication offset of the replica instance. |
Dependent item | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover. |
Dependent item | redis.replication.slave_priority[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | Flag indicating if the replica is read-only. |
Dependent item | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Slave metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Replication lag with master is too high | min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
Warning |
LLD rule Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided. |
Dependent item | redis.replication.master.discovery Preprocessing
|
Item prototypes for Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag, in bytes. |
Dependent item | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing
|
LLD rule Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Process metrics discovery | Collect metrics by Zabbix agent if it exists. |
Zabbix agent | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing
|
Item prototypes for Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of running processes | Number of running processes on the Redis server. |
Zabbix agent | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Memory usage (rss) | Resident Set Size memory used by the process, in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Memory usage (vsize) | Virtual memory size used by the process, in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
Trigger prototypes for Process metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Process is not running | last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
High |
LLD rule Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 4+ metrics discovery | Additional metrics for versions 4+. |
Dependent item | redis.metrics.v4.discovery Preprocessing
|
Item prototypes for Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Executable path{#SINGLETON} | The path to the server's executable. |
Dependent item | redis.server.executable[{#SINGLETON}] Preprocessing
|
| Memory used peak %{#SINGLETON} | The percentage of |
Dependent item | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing
|
| Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures. |
Dependent item | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing
|
| Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup, in bytes. |
Dependent item | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing
|
| Memory used dataset{#SINGLETON} | The size in bytes of the dataset. |
Dependent item | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing
|
| Memory used dataset %{#SINGLETON} | The percentage of |
Dependent item | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing
|
| Total system memory{#SINGLETON} | The total amount of memory of the Redis host. |
Dependent item | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing
|
| Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redis server. |
Dependent item | redis.memory.maxmemory[{#SINGLETON}] Preprocessing
|
| Max memory policy{#SINGLETON} | The value of the |
Dependent item | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing
|
| Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active. |
Dependent item | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing
|
| Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling |
Dependent item | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing
|
| RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation. |
Dependent item | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing
|
| AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation. |
Dependent item | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing
|
| Expired stale %{#SINGLETON} | Number of stale keys expired by the Redis server. |
Dependent item | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing
|
| Expired time cap reached count{#SINGLETON} | Number of keys expired due to reaching the time limit on the Redis server. |
Dependent item | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing
|
| Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas). |
Dependent item | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing
|
| Active defrag hits{#SINGLETON} | Number of value reallocations performed by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing
|
| Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing
|
| Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented. |
Dependent item | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing
|
| Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing
|
| Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted. |
Dependent item | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Version 4+ metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Memory usage is too high | last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
Warning |
LLD rule Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 5+ metrics discovery | Additional metrics for versions 5+. |
Dependent item | redis.metrics.v5.discovery Preprocessing
|
Item prototypes for Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Allocator active{#SINGLETON} | Active memory allocated by the Redis server allocator. |
Dependent item | redis.memory.allocator_active[{#SINGLETON}] Preprocessing
|
| Allocator allocated{#SINGLETON} | Total memory allocated by the Redis server allocator. |
Dependent item | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing
|
| Allocator resident{#SINGLETON} | Resident memory used by the Redis server allocator. |
Dependent item | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing
|
| Memory used scripts{#SINGLETON} | Memory used by scripts on the Redis server. |
Dependent item | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing
|
| Memory number of cached scripts{#SINGLETON} | Number of scripts cached in the Redis server. |
Dependent item | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing
|
| Allocator fragmentation bytes{#SINGLETON} | Memory fragmentation in bytes reported by the Redis server allocator. |
Dependent item | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing
|
| Allocator fragmentation ratio{#SINGLETON} | Memory fragmentation ratio of the Redis server allocator. |
Dependent item | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing
|
| Allocator RSS bytes{#SINGLETON} | Resident Set Size (RSS) in bytes used by the Redis server allocator. |
Dependent item | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing
|
| Allocator RSS ratio{#SINGLETON} | RSS ratio of the Redis server allocator. |
Dependent item | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing
|
| Memory RSS overhead bytes{#SINGLETON} | Memory RSS overhead in bytes on the Redis server. |
Dependent item | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing
|
| Memory RSS overhead ratio{#SINGLETON} | Memory RSS overhead ratio on the Redis server. |
Dependent item | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing
|
| Memory fragmentation bytes{#SINGLETON} | Total memory fragmentation in bytes on the Redis server. |
Dependent item | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing
|
| Memory not counted for evict{#SINGLETON} | Memory not counted for eviction on the Redis server. |
Dependent item | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing
|
| Memory replication backlog{#SINGLETON} | Memory used by the Redis server replication backlog. |
Dependent item | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing
|
| Memory clients normal{#SINGLETON} | Memory used by normal client connections on the Redis server. |
Dependent item | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing
|
| Memory clients slaves{#SINGLETON} | Memory used by slave client connections on the Redis server. |
Dependent item | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing
|
| Memory AOF buffer{#SINGLETON} | Size of the AOF buffer on the Redis server. |
Dependent item | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/7.2
Redis by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Redis monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- Redis, version 3.0.6, 4.0.14, 5.0.6, 7.2.4
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin.
Redis' default user should have permissions to run CONFIG, INFO, PING, CLIENT and SLOWLOG commands.
Or default user ACL should have @admin, @slow, @dangerous, @fast and @connection categories.
Test availability: zabbix_get -s 127.0.0.1 -k redis.ping[tcp://127.0.0.1:6379]
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Zabbix agent | redis.info["{$REDIS.CONN.URI}"] | |
| Get config | Zabbix agent | redis.config["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Ping | Zabbix agent | redis.ping["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Slowlog entries per second | Zabbix agent | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Get Clients info | Dependent item | redis.clients.info_raw Preprocessing
|
|
| Get CPU info | Dependent item | redis.cpu.info_raw Preprocessing
|
|
| Get Keyspace info | Dependent item | redis.keyspace.info_raw Preprocessing
|
|
| Get Memory info | Dependent item | redis.memory.info_raw Preprocessing
|
|
| Get Persistence info | Dependent item | redis.persistence.info_raw Preprocessing
|
|
| Get Replication info | Dependent item | redis.replication.info_raw Preprocessing
|
|
| Get Server info | Dependent item | redis.server.info_raw Preprocessing
|
|
| Get Stats info | Dependent item | redis.stats.info_raw Preprocessing
|
|
| CPU sys | System CPU consumed by the Redis server |
Dependent item | redis.cpu.sys Preprocessing
|
| CPU sys children | System CPU consumed by the background processes |
Dependent item | redis.cpu.sys_children Preprocessing
|
| CPU user | User CPU consumed by the Redis server |
Dependent item | redis.cpu.user Preprocessing
|
| CPU user children | User CPU consumed by the background processes |
Dependent item | redis.cpu.user_children Preprocessing
|
| Blocked clients | The number of connections waiting on a blocking call |
Dependent item | redis.clients.blocked Preprocessing
|
| Max input buffer | The biggest input buffer among current client connections |
Dependent item | redis.clients.max_input_buffer Preprocessing
|
| Max output buffer | The biggest output buffer among current client connections |
Dependent item | redis.clients.max_output_buffer Preprocessing
|
| Connected clients | The number of connected clients |
Dependent item | redis.clients.connected Preprocessing
|
| Cluster enabled | Indicate Redis cluster is enabled |
Dependent item | redis.cluster.enabled Preprocessing
|
| Memory used | Total number of bytes allocated by Redis using its allocator |
Dependent item | redis.memory.used_memory Preprocessing
|
| Memory used Lua | Amount of memory used by the Lua engine |
Dependent item | redis.memory.used_memory_lua Preprocessing
|
| Memory used peak | Peak memory consumed by Redis (in bytes) |
Dependent item | redis.memory.used_memory_peak Preprocessing
|
| Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
Dependent item | redis.memory.used_memory_rss Preprocessing
|
| Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: - Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. - Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
Dependent item | redis.memory.fragmentation_ratio Preprocessing
|
| AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
Dependent item | redis.persistence.aof_current_rewrite_time_sec Preprocessing
|
| AOF enabled | Flag indicating AOF logging is activated |
Dependent item | redis.persistence.aof_enabled Preprocessing
|
| AOF last bgrewrite status | Status of the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_bgrewrite_status Preprocessing
|
| AOF last rewrite time sec | Duration of the last AOF rewrite |
Dependent item | redis.persistence.aof_last_rewrite_time_sec Preprocessing
|
| AOF last write status | Status of the last write operation to the AOF |
Dependent item | redis.persistence.aof_last_write_status Preprocessing
|
| AOF rewrite in progress | Flag indicating an AOF rewrite operation is on-going |
Dependent item | redis.persistence.aof_rewrite_in_progress Preprocessing
|
| AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
Dependent item | redis.persistence.aof_rewrite_scheduled Preprocessing
|
| Dump loading | Flag indicating if the load of a dump file is on-going |
Dependent item | redis.persistence.loading Preprocessing
|
| RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
Dependent item | redis.persistence.rdb_bgsave_in_progress Preprocessing
|
| RDB changes since last save | Number of changes since the last background save |
Dependent item | redis.persistence.rdb_changes_since_last_save Preprocessing
|
| RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
Dependent item | redis.persistence.rdb_current_bgsave_time_sec Preprocessing
|
| RDB last bgsave status | Status of the last RDB save operation |
Dependent item | redis.persistence.rdb_last_bgsave_status Preprocessing
|
| RDB last bgsave time sec | Duration of the last bg_save operation |
Dependent item | redis.persistence.rdb_last_bgsave_time_sec Preprocessing
|
| RDB last save time | Epoch-based timestamp of last successful RDB save |
Dependent item | redis.persistence.rdb_last_save_time Preprocessing
|
| Connected slaves | Number of connected slaves |
Dependent item | redis.replication.connected_slaves Preprocessing
|
| Replication backlog active | Flag indicating replication backlog is active |
Dependent item | redis.replication.repl_backlog_active Preprocessing
|
| Replication backlog first byte offset | The master offset of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_first_byte_offset Preprocessing
|
| Replication backlog history length | Amount of data in the backlog sync buffer |
Dependent item | redis.replication.repl_backlog_histlen Preprocessing
|
| Replication backlog size | Total size in bytes of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_size Preprocessing
|
| Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
Dependent item | redis.replication.role Preprocessing
|
| Master replication offset | Replication offset reported by the master |
Dependent item | redis.replication.master_repl_offset Preprocessing
|
| Process id | PID of the server process |
Dependent item | redis.server.process_id Preprocessing
|
| Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
Dependent item | redis.server.redis_mode Preprocessing
|
| Redis version | Version of the Redis server |
Dependent item | redis.server.redis_version Preprocessing
|
| TCP port | TCP/IP listen port |
Dependent item | redis.server.tcp_port Preprocessing
|
| Uptime | Number of seconds since Redis server start |
Dependent item | redis.server.uptime Preprocessing
|
| Evicted keys | Number of evicted keys due to maxmemory limit |
Dependent item | redis.stats.evicted_keys Preprocessing
|
| Expired keys | Total number of key expiration events |
Dependent item | redis.stats.expired_keys Preprocessing
|
| Instantaneous input bytes per second | The network's read rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_input.rate Preprocessing
|
| Instantaneous operations per sec | Number of commands processed per second |
Dependent item | redis.stats.instantaneous_ops.rate Preprocessing
|
| Instantaneous output bytes per second | The network's write rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_output.rate Preprocessing
|
| Keyspace hits | Number of successful lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_hits Preprocessing
|
| Keyspace misses | Number of failed lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_misses Preprocessing
|
| Latest fork usec | Duration of the latest fork operation in microseconds |
Dependent item | redis.stats.latest_fork_usec Preprocessing
|
| Migrate cached sockets | The number of sockets open for MIGRATE purposes |
Dependent item | redis.stats.migrate_cached_sockets Preprocessing
|
| Pubsub channels | Global number of pub/sub channels with client subscriptions |
Dependent item | redis.stats.pubsub_channels Preprocessing
|
| Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
Dependent item | redis.stats.pubsub_patterns Preprocessing
|
| Rejected connections | Number of connections rejected because of maxclients limit |
Dependent item | redis.stats.rejected_connections Preprocessing
|
| Sync full | The number of full resyncs with replicas |
Dependent item | redis.stats.sync_full Preprocessing
|
| Sync partial err | The number of denied partial resync requests |
Dependent item | redis.stats.sync_partial_err Preprocessing
|
| Sync partial ok | The number of accepted partial resync requests |
Dependent item | redis.stats.sync_partial_ok Preprocessing
|
| Total commands processed | Total number of commands processed by the server |
Dependent item | redis.stats.total_commands_processed Preprocessing
|
| Total connections received | Total number of connections accepted by the server |
Dependent item | redis.stats.total_connections_received Preprocessing
|
| Total net input bytes | The total number of bytes read from the network |
Dependent item | redis.stats.total_net_input_bytes Preprocessing
|
| Total net output bytes | The total number of bytes written to the network |
Dependent item | redis.stats.total_net_output_bytes Preprocessing
|
| Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
Dependent item | redis.config.maxclients Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Failed to fetch info data | Zabbix has not received any data for items for the last 30 minutes. |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Redis: Configuration has changed | Redis configuration has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0 |
Info | Manual close: Yes |
| Redis: Service is down | last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0 |
Average | Manual close: Yes | |
| Redis: Too many entries in the slowlog | min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
Info | ||
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
Warning | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
Warning | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
Warning | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
Warning | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
Info | Manual close: Yes |
| Redis: Replication role has changed | Redis replication role has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
Warning | Manual close: Yes |
| Redis: Version has changed | The Redis version has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
Info | Manual close: Yes |
| Redis: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
Info | Manual close: Yes |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
High |
LLD rule Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Individual keyspace metrics |
Dependent item | redis.keyspace.discovery Preprocessing
|
Item prototypes for Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| DB {#DB}: Get Keyspace info | The item gets information about keyspace of {#DB} database. |
Dependent item | redis.db.info_raw["{#DB}"] Preprocessing
|
| DB {#DB}: Average TTL | Average TTL |
Dependent item | redis.db.avg_ttl["{#DB}"] Preprocessing
|
| DB {#DB}: Expires | Number of keys with an expiration |
Dependent item | redis.db.expires["{#DB}"] Preprocessing
|
| DB {#DB}: Keys | Total number of keys |
Dependent item | redis.db.keys["{#DB}"] Preprocessing
|
LLD rule AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
Dependent item | redis.persistence.aof.discovery Preprocessing
|
Item prototypes for AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF current size{#SINGLETON} | AOF current file size |
Dependent item | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing
|
| AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
Dependent item | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing
|
| AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
Dependent item | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing
|
| AOF buffer length{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
Dependent item | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
Dependent item | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing
|
| AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
Dependent item | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing
|
LLD rule Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
Dependent item | redis.replication.slave.discovery Preprocessing
|
Item prototypes for Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Master host{#SINGLETON} | Host or IP address of the master |
Dependent item | redis.replication.master_host[{#SINGLETON}] Preprocessing
|
| Master port{#SINGLETON} | Master listening TCP port |
Dependent item | redis.replication.master_port[{#SINGLETON}] Preprocessing
|
| Master link status{#SINGLETON} | Status of the link (up/down) |
Dependent item | redis.replication.master_link_status[{#SINGLETON}] Preprocessing
|
| Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
Dependent item | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing
|
| Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
Dependent item | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing
|
| Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
Dependent item | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
Dependent item | redis.replication.slave_priority[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
Dependent item | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Slave metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Replication lag with master is too high | min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
Warning |
LLD rule Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
Dependent item | redis.replication.master.discovery Preprocessing
|
Item prototypes for Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
Dependent item | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing
|
LLD rule Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
Zabbix agent | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing
|
Item prototypes for Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of running processes | Zabbix agent | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] | |
| Memory usage (rss) | Resident set size memory used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Memory usage (vsize) | Virtual memory size used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
Trigger prototypes for Process metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Process is not running | last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
High |
LLD rule Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
Dependent item | redis.metrics.v4.discovery Preprocessing
|
Item prototypes for Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Executable path{#SINGLETON} | The path to the server's executable |
Dependent item | redis.server.executable[{#SINGLETON}] Preprocessing
|
| Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
Dependent item | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing
|
| Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
Dependent item | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing
|
| Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
Dependent item | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing
|
| Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
Dependent item | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing
|
| Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
Dependent item | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing
|
| Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
Dependent item | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing
|
| Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
Dependent item | redis.memory.maxmemory[{#SINGLETON}] Preprocessing
|
| Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
Dependent item | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing
|
| Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
Dependent item | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing
|
| Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
Dependent item | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing
|
| RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
Dependent item | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing
|
| AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing
|
| Expired stale %{#SINGLETON} | Dependent item | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing
|
|
| Expired time cap reached count{#SINGLETON} | Dependent item | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing
|
|
| Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
Dependent item | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing
|
| Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
Dependent item | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing
|
| Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
Dependent item | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing
|
| Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
Dependent item | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing
|
| Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
Dependent item | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing
|
| Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
Dependent item | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Version 4+ metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Memory usage is too high | last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
Warning |
LLD rule Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
Dependent item | redis.metrics.v5.discovery Preprocessing
|
Item prototypes for Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Allocator active{#SINGLETON} | Dependent item | redis.memory.allocator_active[{#SINGLETON}] Preprocessing
|
|
| Allocator allocated{#SINGLETON} | Dependent item | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing
|
|
| Allocator resident{#SINGLETON} | Dependent item | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing
|
|
| Memory used scripts{#SINGLETON} | Dependent item | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing
|
|
| Memory number of cached scripts{#SINGLETON} | Dependent item | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing
|
|
| Allocator fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing
|
|
| Allocator fragmentation ratio{#SINGLETON} | Dependent item | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing
|
|
| Allocator RSS bytes{#SINGLETON} | Dependent item | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing
|
|
| Allocator RSS ratio{#SINGLETON} | Dependent item | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing
|
|
| Memory RSS overhead bytes{#SINGLETON} | Dependent item | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing
|
|
| Memory RSS overhead ratio{#SINGLETON} | Dependent item | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing
|
|
| Memory fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing
|
|
| Memory not counted for evict{#SINGLETON} | Dependent item | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing
|
|
| Memory replication backlog{#SINGLETON} | Dependent item | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing
|
|
| Memory clients normal{#SINGLETON} | Dependent item | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing
|
|
| Memory clients slaves{#SINGLETON} | Dependent item | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing
|
|
| Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/7.0
Redis by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Redis monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Redis versions 3.0.6, 4.0.14, 5.0.6, 7.2.4
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
-
Set up and configure
zabbix-agent2compiled with the Redis monitoring plugin. -
The Redis default user should have permissions to run
CONFIG,INFO,PING,CLIENTandSLOWLOGcommands. -
Or, the default user ACL should have the
@admin,@slow,@dangerous,@fastand@connectioncategories. -
Test availability:
zabbix_get -s 127.0.0.1 -k redis.ping[tcp://127.0.0.1:6379]
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CONN.URI} | Connection string in URI format. When set, this parameter overrides the value specified in the Otherwise, the plugin's default value is used: |
tcp://localhost:6379 |
| {$REDIS.USERNAME} | Username for Redis server authentication. |
|
| {$REDIS.PASSWORD} | Password for Redis server authentication. |
|
| {$REDIS.SECTION} | Section of Redis server information to retrieve. |
|
| {$REDIS.PATTERN} | Pattern for filtering Redis server configuration parameters. |
|
| {$REDIS.PROCESS_NAME} | Name of the Redis server process to monitor. |
redis-server |
| {$REDIS.LLD.PROCESS_NAME} | Redis process name used during LLD. |
redis-server |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Regex pattern for databases to include during discovery. |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Regex pattern for databases to exclude during discovery. |
CHANGE_IF_NEEDED |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag allowed between Redis master and replica, in seconds. |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Slowlog entry rate threshold that triggers a warning. |
1 |
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Threshold for the maximum percentage of connected Redis clients. |
80 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used by the Redis server. |
90 |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Threshold for the Redis server memory fragmentation ratio. |
1.5 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Retrieves general Redis server information and statistics. |
Zabbix agent | redis.info["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.SECTION}","{$REDIS.USERNAME}"] |
| Get config | Extracts Redis server info. |
Zabbix agent | redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"] Preprocessing
|
| Ping | Verifies Redis server connectivity. |
Zabbix agent | redis.ping["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"] Preprocessing
|
| Slowlog entries per second | Tracks |
Zabbix agent | redis.slowlog.count["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"] Preprocessing
|
| Get Client info | Extracts client-related information from the Redis server. |
Dependent item | redis.clients.info_raw Preprocessing
|
| Get CPU info | Extracts CPU usage data from the Redis server. |
Dependent item | redis.cpu.info_raw Preprocessing
|
| Get Keyspace info | Extracts keyspace data from the Redis server. |
Dependent item | redis.keyspace.info_raw Preprocessing
|
| Get Memory info | Extracts memory data from the Redis server. |
Dependent item | redis.memory.info_raw Preprocessing
|
| Get Persistence info | Collects persistence data from the Redis server. |
Dependent item | redis.persistence.info_raw Preprocessing
|
| Get Replication info | Extracts replication data from the Redis server. |
Dependent item | redis.replication.info_raw Preprocessing
|
| Get Server info | Retrieves Redis server information. |
Dependent item | redis.server.info_raw Preprocessing
|
| Get Stats info | Collects Redis server statistics. |
Dependent item | redis.stats.info_raw Preprocessing
|
| CPU sys | Retrieves Redis Server CPU usage (system). |
Dependent item | redis.cpu.sys Preprocessing
|
| CPU sys children | Retrieves system CPU usage of the Redis server child processes. |
Dependent item | redis.cpu.sys_children Preprocessing
|
| CPU user | Collects user CPU usage data from the Redis server. |
Dependent item | redis.cpu.user Preprocessing
|
| CPU user children | Retrieves user-level CPU usage of Redis server child processes. |
Dependent item | redis.cpu.user_children Preprocessing
|
| Blocked clients | Retrieves blocked clients from the Redis server. |
Dependent item | redis.clients.blocked Preprocessing
|
| Max input buffer | Monitors maximum input buffer size of Redis server clients. |
Dependent item | redis.clients.max_input_buffer Preprocessing
|
| Max output buffer | Monitors maximum output buffer size of Redis server clients. |
Dependent item | redis.clients.max_output_buffer Preprocessing
|
| Connected clients | Monitors the number of active Redis server clients. |
Dependent item | redis.clients.connected Preprocessing
|
| Cluster enabled | Indicates if Redis server cluster mode is enabled. |
Dependent item | redis.cluster.enabled Preprocessing
|
| Memory used | Monitors the memory used by the Redis server. |
Dependent item | redis.memory.used_memory Preprocessing
|
| Memory used Lua | Monitors the memory used by Lua scripts in the Redis server. |
Dependent item | redis.memory.used_memory_lua Preprocessing
|
| Memory used peak | Monitors peak memory usage of the Redis server. |
Dependent item | redis.memory.used_memory_peak Preprocessing
|
| Memory used RSS | Monitors resident memory (RSS) used by the Redis server. |
Dependent item | redis.memory.used_memory_rss Preprocessing
|
| Memory fragmentation ratio | Shows the memory fragmentation ratio of the Redis server instance. This value indicates the efficiency of Redis memory mapping: Above 1.0 – Memory fragmentation is likely. Consider restarting the Redis server to allow the operating system to reclaim fragmented memory, especially if the ratio exceeds 1.5. Below 1.0 – Redis may have insufficient available memory. Consider optimizing memory usage or adding more RAM. Note: If peak memory usage is significantly higher than current memory usage, the memory fragmentation ratio may be unreliable. More information: https://redis.io/topics/memory-optimization |
Dependent item | redis.memory.fragmentation_ratio Preprocessing
|
| AOF current rewrite time sec | Monitors the current AOF rewrite time on the Redis server. |
Dependent item | redis.persistence.aof_current_rewrite_time_sec Preprocessing
|
| AOF enabled | Indicates if AOF persistence is enabled on the Redis server. |
Dependent item | redis.persistence.aof_enabled Preprocessing
|
| AOF last bgrewrite status | Shows the status of the last AOF background rewrite on the Redis server. |
Dependent item | redis.persistence.aof_last_bgrewrite_status Preprocessing
|
| AOF last rewrite time sec | Shows the duration of the last AOF rewrite in seconds on the Redis server. |
Dependent item | redis.persistence.aof_last_rewrite_time_sec Preprocessing
|
| AOF last write status | Shows the status of the last AOF write on the Redis server. |
Dependent item | redis.persistence.aof_last_write_status Preprocessing
|
| AOF rewrite in progress | Indicates if an AOF rewrite is currently in progress on the Redis server. |
Dependent item | redis.persistence.aof_rewrite_in_progress Preprocessing
|
| AOF rewrite scheduled | Indicates if an AOF rewrite is scheduled on the Redis server. |
Dependent item | redis.persistence.aof_rewrite_scheduled Preprocessing
|
| Dump loading | Indicates if the Redis server is currently loading a dump file. |
Dependent item | redis.persistence.loading Preprocessing
|
| RDB bgsave in progress | Indicates if an RDB |
Dependent item | redis.persistence.rdb_bgsave_in_progress Preprocessing
|
| RDB changes since last save | Shows the number of changes since the last RDB save on the Redis server. |
Dependent item | redis.persistence.rdb_changes_since_last_save Preprocessing
|
| RDB current bgsave time sec | Monitors the current RDB |
Dependent item | redis.persistence.rdb_current_bgsave_time_sec Preprocessing
|
| RDB last bgsave status | Shows the status of the last RDB |
Dependent item | redis.persistence.rdb_last_bgsave_status Preprocessing
|
| RDB last bgsave time sec | Monitors the last RDB |
Dependent item | redis.persistence.rdb_last_bgsave_time_sec Preprocessing
|
| RDB last save time | Shows the timestamp of the last RDB save on the Redis server. |
Dependent item | redis.persistence.rdb_last_save_time Preprocessing
|
| Connected slaves | Shows the number of connected Redis slave servers. |
Dependent item | redis.replication.connected_slaves Preprocessing
|
| Replication backlog active | Indicates if the replication backlog is active on the Redis server. |
Dependent item | redis.replication.repl_backlog_active Preprocessing
|
| Replication backlog first byte offset | Shows the offset of the first byte in the Redis server replication backlog. |
Dependent item | redis.replication.repl_backlog_first_byte_offset Preprocessing
|
| Replication backlog history length | Shows the length of the Redis server replication backlog history. |
Dependent item | redis.replication.repl_backlog_histlen Preprocessing
|
| Replication backlog size | Shows the size of the Redis server replication backlog. |
Dependent item | redis.replication.repl_backlog_size Preprocessing
|
| Replication role | Shows the Redis server replication role (master or slave) from the replication info. |
Dependent item | redis.replication.role Preprocessing
|
| Master replication offset | Shows the master replication offset on the Redis server. |
Dependent item | redis.replication.master_repl_offset Preprocessing
|
| Process id | Retrieves the Redis server process identifier. |
Dependent item | redis.server.process_id Preprocessing
|
| Redis mode | Retrieves the current Redis server mode ( |
Dependent item | redis.server.redis_mode Preprocessing
|
| Redis version | Version of the Redis server. |
Dependent item | redis.server.redis_version Preprocessing
|
| TCP port | Shows the TCP port used by the Redis server. |
Dependent item | redis.server.tcp_port Preprocessing
|
| Uptime | Shows Redis server uptime. |
Dependent item | redis.server.uptime Preprocessing
|
| Evicted keys | Number of keys evicted by the Redis server due to the |
Dependent item | redis.stats.evicted_keys Preprocessing
|
| Expired keys | Total number of keys expired on the Redis server. |
Dependent item | redis.stats.expired_keys Preprocessing
|
| Instantaneous input bytes per second | Instantaneous network read rate in KB/sec on the Redis server. |
Dependent item | redis.stats.instantaneous_input.rate Preprocessing
|
| Instantaneous operations per sec | Shows the number of operations processed per second by the Redis server. |
Dependent item | redis.stats.instantaneous_ops.rate Preprocessing
|
| Instantaneous output bytes per second | Instantaneous network write rate in KB/sec on the Redis server. |
Dependent item | redis.stats.instantaneous_output.rate Preprocessing
|
| Keyspace hits | Number of successful key lookups in the Redis main dictionary. |
Dependent item | redis.stats.keyspace_hits Preprocessing
|
| Keyspace misses | Number of failed key lookups in the Redis server main dictionary. |
Dependent item | redis.stats.keyspace_misses Preprocessing
|
| Latest fork usec | Duration of the latest Redis server fork operation in microseconds. |
Dependent item | redis.stats.latest_fork_usec Preprocessing
|
| Migrate cached sockets | Number of sockets currently open for the Redis server |
Dependent item | redis.stats.migrate_cached_sockets Preprocessing
|
| Pubsub channels | Total number of Redis server pub/sub channels with active client subscriptions. |
Dependent item | redis.stats.pubsub_channels Preprocessing
|
| Pubsub patterns | Total number of Redis pub/sub patterns with active client subscriptions. |
Dependent item | redis.stats.pubsub_patterns Preprocessing
|
| Rejected connections | Number of connections rejected by the Redis server due to the |
Dependent item | redis.stats.rejected_connections Preprocessing
|
| Sync full | Number of full resynchronizations with Redis server replicas. |
Dependent item | redis.stats.sync_full Preprocessing
|
| Sync partial err | Number of denied partial resynchronization requests on the Redis server. |
Dependent item | redis.stats.sync_partial_err Preprocessing
|
| Sync partial ok | Number of accepted partial resynchronization requests on the Redis server. |
Dependent item | redis.stats.sync_partial_ok Preprocessing
|
| Total commands processed | Total number of commands processed by the Redis server. |
Dependent item | redis.stats.total_commands_processed Preprocessing
|
| Total connections received | Total number of connections received by the Redis server. |
Dependent item | redis.stats.total_connections_received Preprocessing
|
| Total net input bytes | Total number of bytes read by the Redis server from the network. |
Dependent item | redis.stats.total_net_input_bytes Preprocessing
|
| Total net output bytes | Total number of bytes written by the Redis server to the network. |
Dependent item | redis.stats.total_net_output_bytes Preprocessing
|
| Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
Dependent item | redis.config.maxclients Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Failed to fetch INFO | Zabbix has not received any item data for the last 30 minutes. |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.SECTION}","{$REDIS.USERNAME}"],30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Redis: Configuration has changed | Redis configuration has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.PATTERN}","{$REDIS.USERNAME}"]))>0 |
Info | Manual close: Yes |
| Redis: Service is down | last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"])=0 |
Average | Manual close: Yes | |
| Redis: Too many entries in the slowlog | min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}","{$REDIS.PASSWORD}","{$REDIS.USERNAME}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
Info | ||
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
Warning | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
Warning | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
Warning | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
Warning | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
Info | Manual close: Yes |
| Redis: Replication role has changed | Redis replication role has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
Warning | Manual close: Yes |
| Redis: Version has changed | The Redis version has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
Info | Manual close: Yes |
| Redis: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
Info | Manual close: Yes |
| Redis: Connections are rejected | Number of connections rejected after Redis server reached the |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
High |
LLD rule Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Metrics for individual Redis server keyspaces. |
Dependent item | redis.keyspace.discovery Preprocessing
|
Item prototypes for Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| DB {#DB}: Get Keyspace info | The item gets information about the keyspace of database |
Dependent item | redis.db.info_raw["{#DB}"] Preprocessing
|
| DB {#DB}: Average TTL | Average TTL. |
Dependent item | redis.db.avg_ttl["{#DB}"] Preprocessing
|
| DB {#DB}: Expires | Number of keys with an expiration set. |
Dependent item | redis.db.expires["{#DB}"] Preprocessing
|
| DB {#DB}: Keys | Total number of keys. |
Dependent item | redis.db.keys["{#DB}"] Preprocessing
|
LLD rule AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added. |
Dependent item | redis.persistence.aof.discovery Preprocessing
|
Item prototypes for AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF current size{#SINGLETON} | AOF current file size. |
Dependent item | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing
|
| AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite. |
Dependent item | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing
|
| AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation is pending. |
Dependent item | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing
|
| AOF buffer length{#SINGLETON} | Size of the AOF buffer. |
Dependent item | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer. |
Dependent item | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing
|
| AOF pending background I/O fsync{#SINGLETON} | Number of pending |
Dependent item | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing
|
| AOF delayed fsync{#SINGLETON} | Count of delayed |
Dependent item | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing
|
LLD rule Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Slave metrics discovery | If the instance is a replica, additional metrics are provided. |
Dependent item | redis.replication.slave.discovery Preprocessing
|
Item prototypes for Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Master host{#SINGLETON} | Host or IP address of the master. |
Dependent item | redis.replication.master_host[{#SINGLETON}] Preprocessing
|
| Master port{#SINGLETON} | TCP port the master is listening on. |
Dependent item | redis.replication.master_port[{#SINGLETON}] Preprocessing
|
| Master link status{#SINGLETON} | Status of the link (up/down). |
Dependent item | redis.replication.master_link_status[{#SINGLETON}] Preprocessing
|
| Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with the master. |
Dependent item | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing
|
| Master sync in progress{#SINGLETON} | Indicates the master is syncing to the replica. |
Dependent item | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing
|
| Slave replication offset{#SINGLETON} | The replication offset of the replica instance. |
Dependent item | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover. |
Dependent item | redis.replication.slave_priority[{#SINGLETON}] Preprocessing
|
| Slave priority{#SINGLETON} | Flag indicating if the replica is read-only. |
Dependent item | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Slave metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Replication lag with master is too high | min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
Warning |
LLD rule Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided. |
Dependent item | redis.replication.master.discovery Preprocessing
|
Item prototypes for Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag, in bytes. |
Dependent item | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing
|
LLD rule Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Process metrics discovery | Collect metrics by Zabbix agent if it exists. |
Zabbix agent | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing
|
Item prototypes for Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of running processes | Number of running processes on the Redis server. |
Zabbix agent | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Memory usage (rss) | Resident Set Size memory used by the process, in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Memory usage (vsize) | Virtual memory size used by the process, in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
Trigger prototypes for Process metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Process is not running | last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
High |
LLD rule Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 4+ metrics discovery | Additional metrics for versions 4+. |
Dependent item | redis.metrics.v4.discovery Preprocessing
|
Item prototypes for Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Executable path{#SINGLETON} | The path to the server's executable. |
Dependent item | redis.server.executable[{#SINGLETON}] Preprocessing
|
| Memory used peak %{#SINGLETON} | The percentage of |
Dependent item | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing
|
| Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures. |
Dependent item | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing
|
| Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup, in bytes. |
Dependent item | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing
|
| Memory used dataset{#SINGLETON} | The size in bytes of the dataset. |
Dependent item | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing
|
| Memory used dataset %{#SINGLETON} | The percentage of |
Dependent item | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing
|
| Total system memory{#SINGLETON} | The total amount of memory of the Redis host. |
Dependent item | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing
|
| Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redis server. |
Dependent item | redis.memory.maxmemory[{#SINGLETON}] Preprocessing
|
| Max memory policy{#SINGLETON} | The value of the |
Dependent item | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing
|
| Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active. |
Dependent item | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing
|
| Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling |
Dependent item | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing
|
| RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation. |
Dependent item | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing
|
| AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation. |
Dependent item | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing
|
| Expired stale %{#SINGLETON} | Number of stale keys expired by the Redis server. |
Dependent item | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing
|
| Expired time cap reached count{#SINGLETON} | Number of keys expired due to reaching the time limit on the Redis server. |
Dependent item | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing
|
| Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas). |
Dependent item | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing
|
| Active defrag hits{#SINGLETON} | Number of value reallocations performed by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing
|
| Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing
|
| Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented. |
Dependent item | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing
|
| Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process. |
Dependent item | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing
|
| Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted. |
Dependent item | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Version 4+ metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Memory usage is too high | last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
Warning |
LLD rule Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 5+ metrics discovery | Additional metrics for versions 5+. |
Dependent item | redis.metrics.v5.discovery Preprocessing
|
Item prototypes for Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Allocator active{#SINGLETON} | Active memory allocated by the Redis server allocator. |
Dependent item | redis.memory.allocator_active[{#SINGLETON}] Preprocessing
|
| Allocator allocated{#SINGLETON} | Total memory allocated by the Redis server allocator. |
Dependent item | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing
|
| Allocator resident{#SINGLETON} | Resident memory used by the Redis server allocator. |
Dependent item | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing
|
| Memory used scripts{#SINGLETON} | Memory used by scripts on the Redis server. |
Dependent item | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing
|
| Memory number of cached scripts{#SINGLETON} | Number of scripts cached in the Redis server. |
Dependent item | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing
|
| Allocator fragmentation bytes{#SINGLETON} | Memory fragmentation in bytes reported by the Redis server allocator. |
Dependent item | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing
|
| Allocator fragmentation ratio{#SINGLETON} | Memory fragmentation ratio of the Redis server allocator. |
Dependent item | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing
|
| Allocator RSS bytes{#SINGLETON} | Resident Set Size (RSS) in bytes used by the Redis server allocator. |
Dependent item | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing
|
| Allocator RSS ratio{#SINGLETON} | RSS ratio of the Redis server allocator. |
Dependent item | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing
|
| Memory RSS overhead bytes{#SINGLETON} | Memory RSS overhead in bytes on the Redis server. |
Dependent item | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing
|
| Memory RSS overhead ratio{#SINGLETON} | Memory RSS overhead ratio on the Redis server. |
Dependent item | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing
|
| Memory fragmentation bytes{#SINGLETON} | Total memory fragmentation in bytes on the Redis server. |
Dependent item | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing
|
| Memory not counted for evict{#SINGLETON} | Memory not counted for eviction on the Redis server. |
Dependent item | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing
|
| Memory replication backlog{#SINGLETON} | Memory used by the Redis server replication backlog. |
Dependent item | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing
|
| Memory clients normal{#SINGLETON} | Memory used by normal client connections on the Redis server. |
Dependent item | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing
|
| Memory clients slaves{#SINGLETON} | Memory used by slave client connections on the Redis server. |
Dependent item | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing
|
| Memory AOF buffer{#SINGLETON} | Size of the AOF buffer on the Redis server. |
Dependent item | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/6.4
Redis by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Redis monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- Redis, version 3.0.6, 4.0.14, 5.0.6, 7.2.4
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin.
Redis' default user should have permissions to run CONFIG, INFO, PING, CLIENT and SLOWLOG commands.
Or default user ACL should have @admin, @slow, @dangerous, @fast and @connection categories.
Test availability: zabbix_get -s 127.0.0.1 -k redis.ping[tcp://127.0.0.1:6379]
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Get info | Zabbix agent | redis.info["{$REDIS.CONN.URI}"] | |
| Redis: Get config | Zabbix agent | redis.config["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Ping | Zabbix agent | redis.ping["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Slowlog entries per second | Zabbix agent | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Get Clients info | Dependent item | redis.clients.info_raw Preprocessing
|
|
| Redis: Get CPU info | Dependent item | redis.cpu.info_raw Preprocessing
|
|
| Redis: Get Keyspace info | Dependent item | redis.keyspace.info_raw Preprocessing
|
|
| Redis: Get Memory info | Dependent item | redis.memory.info_raw Preprocessing
|
|
| Redis: Get Persistence info | Dependent item | redis.persistence.info_raw Preprocessing
|
|
| Redis: Get Replication info | Dependent item | redis.replication.info_raw Preprocessing
|
|
| Redis: Get Server info | Dependent item | redis.server.info_raw Preprocessing
|
|
| Redis: Get Stats info | Dependent item | redis.stats.info_raw Preprocessing
|
|
| Redis: CPU sys | System CPU consumed by the Redis server |
Dependent item | redis.cpu.sys Preprocessing
|
| Redis: CPU sys children | System CPU consumed by the background processes |
Dependent item | redis.cpu.sys_children Preprocessing
|
| Redis: CPU user | User CPU consumed by the Redis server |
Dependent item | redis.cpu.user Preprocessing
|
| Redis: CPU user children | User CPU consumed by the background processes |
Dependent item | redis.cpu.user_children Preprocessing
|
| Redis: Blocked clients | The number of connections waiting on a blocking call |
Dependent item | redis.clients.blocked Preprocessing
|
| Redis: Max input buffer | The biggest input buffer among current client connections |
Dependent item | redis.clients.max_input_buffer Preprocessing
|
| Redis: Max output buffer | The biggest output buffer among current client connections |
Dependent item | redis.clients.max_output_buffer Preprocessing
|
| Redis: Connected clients | The number of connected clients |
Dependent item | redis.clients.connected Preprocessing
|
| Redis: Cluster enabled | Indicate Redis cluster is enabled |
Dependent item | redis.cluster.enabled Preprocessing
|
| Redis: Memory used | Total number of bytes allocated by Redis using its allocator |
Dependent item | redis.memory.used_memory Preprocessing
|
| Redis: Memory used Lua | Amount of memory used by the Lua engine |
Dependent item | redis.memory.used_memory_lua Preprocessing
|
| Redis: Memory used peak | Peak memory consumed by Redis (in bytes) |
Dependent item | redis.memory.used_memory_peak Preprocessing
|
| Redis: Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
Dependent item | redis.memory.used_memory_rss Preprocessing
|
| Redis: Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: - Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. - Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
Dependent item | redis.memory.fragmentation_ratio Preprocessing
|
| Redis: AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
Dependent item | redis.persistence.aof_current_rewrite_time_sec Preprocessing
|
| Redis: AOF enabled | Flag indicating AOF logging is activated |
Dependent item | redis.persistence.aof_enabled Preprocessing
|
| Redis: AOF last bgrewrite status | Status of the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_bgrewrite_status Preprocessing
|
| Redis: AOF last rewrite time sec | Duration of the last AOF rewrite |
Dependent item | redis.persistence.aof_last_rewrite_time_sec Preprocessing
|
| Redis: AOF last write status | Status of the last write operation to the AOF |
Dependent item | redis.persistence.aof_last_write_status Preprocessing
|
| Redis: AOF rewrite in progress | Flag indicating an AOF rewrite operation is on-going |
Dependent item | redis.persistence.aof_rewrite_in_progress Preprocessing
|
| Redis: AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
Dependent item | redis.persistence.aof_rewrite_scheduled Preprocessing
|
| Redis: Dump loading | Flag indicating if the load of a dump file is on-going |
Dependent item | redis.persistence.loading Preprocessing
|
| Redis: RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
Dependent item | redis.persistence.rdb_bgsave_in_progress Preprocessing
|
| Redis: RDB changes since last save | Number of changes since the last background save |
Dependent item | redis.persistence.rdb_changes_since_last_save Preprocessing
|
| Redis: RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
Dependent item | redis.persistence.rdb_current_bgsave_time_sec Preprocessing
|
| Redis: RDB last bgsave status | Status of the last RDB save operation |
Dependent item | redis.persistence.rdb_last_bgsave_status Preprocessing
|
| Redis: RDB last bgsave time sec | Duration of the last bg_save operation |
Dependent item | redis.persistence.rdb_last_bgsave_time_sec Preprocessing
|
| Redis: RDB last save time | Epoch-based timestamp of last successful RDB save |
Dependent item | redis.persistence.rdb_last_save_time Preprocessing
|
| Redis: Connected slaves | Number of connected slaves |
Dependent item | redis.replication.connected_slaves Preprocessing
|
| Redis: Replication backlog active | Flag indicating replication backlog is active |
Dependent item | redis.replication.repl_backlog_active Preprocessing
|
| Redis: Replication backlog first byte offset | The master offset of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_first_byte_offset Preprocessing
|
| Redis: Replication backlog history length | Amount of data in the backlog sync buffer |
Dependent item | redis.replication.repl_backlog_histlen Preprocessing
|
| Redis: Replication backlog size | Total size in bytes of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_size Preprocessing
|
| Redis: Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
Dependent item | redis.replication.role Preprocessing
|
| Redis: Master replication offset | Replication offset reported by the master |
Dependent item | redis.replication.master_repl_offset Preprocessing
|
| Redis: Process id | PID of the server process |
Dependent item | redis.server.process_id Preprocessing
|
| Redis: Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
Dependent item | redis.server.redis_mode Preprocessing
|
| Redis: Redis version | Version of the Redis server |
Dependent item | redis.server.redis_version Preprocessing
|
| Redis: TCP port | TCP/IP listen port |
Dependent item | redis.server.tcp_port Preprocessing
|
| Redis: Uptime | Number of seconds since Redis server start |
Dependent item | redis.server.uptime Preprocessing
|
| Redis: Evicted keys | Number of evicted keys due to maxmemory limit |
Dependent item | redis.stats.evicted_keys Preprocessing
|
| Redis: Expired keys | Total number of key expiration events |
Dependent item | redis.stats.expired_keys Preprocessing
|
| Redis: Instantaneous input bytes per second | The network's read rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_input.rate Preprocessing
|
| Redis: Instantaneous operations per sec | Number of commands processed per second |
Dependent item | redis.stats.instantaneous_ops.rate Preprocessing
|
| Redis: Instantaneous output bytes per second | The network's write rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_output.rate Preprocessing
|
| Redis: Keyspace hits | Number of successful lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_hits Preprocessing
|
| Redis: Keyspace misses | Number of failed lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_misses Preprocessing
|
| Redis: Latest fork usec | Duration of the latest fork operation in microseconds |
Dependent item | redis.stats.latest_fork_usec Preprocessing
|
| Redis: Migrate cached sockets | The number of sockets open for MIGRATE purposes |
Dependent item | redis.stats.migrate_cached_sockets Preprocessing
|
| Redis: Pubsub channels | Global number of pub/sub channels with client subscriptions |
Dependent item | redis.stats.pubsub_channels Preprocessing
|
| Redis: Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
Dependent item | redis.stats.pubsub_patterns Preprocessing
|
| Redis: Rejected connections | Number of connections rejected because of maxclients limit |
Dependent item | redis.stats.rejected_connections Preprocessing
|
| Redis: Sync full | The number of full resyncs with replicas |
Dependent item | redis.stats.sync_full Preprocessing
|
| Redis: Sync partial err | The number of denied partial resync requests |
Dependent item | redis.stats.sync_partial_err Preprocessing
|
| Redis: Sync partial ok | The number of accepted partial resync requests |
Dependent item | redis.stats.sync_partial_ok Preprocessing
|
| Redis: Total commands processed | Total number of commands processed by the server |
Dependent item | redis.stats.total_commands_processed Preprocessing
|
| Redis: Total connections received | Total number of connections accepted by the server |
Dependent item | redis.stats.total_connections_received Preprocessing
|
| Redis: Total net input bytes | The total number of bytes read from the network |
Dependent item | redis.stats.total_net_input_bytes Preprocessing
|
| Redis: Total net output bytes | The total number of bytes written to the network |
Dependent item | redis.stats.total_net_output_bytes Preprocessing
|
| Redis: Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
Dependent item | redis.config.maxclients Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Failed to fetch info data | Zabbix has not received any data for items for the last 30 minutes. |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Redis: Configuration has changed | Redis configuration has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0 |
Info | Manual close: Yes |
| Redis: Service is down | last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0 |
Average | Manual close: Yes | |
| Redis: Too many entries in the slowlog | min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
Info | ||
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
Warning | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
Warning | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
Warning | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
Warning | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
Info | Manual close: Yes |
| Redis: Replication role has changed | Redis replication role has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
Warning | Manual close: Yes |
| Redis: Version has changed | The Redis version has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
Info | Manual close: Yes |
| Redis: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
Info | Manual close: Yes |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
High |
LLD rule Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Individual keyspace metrics |
Dependent item | redis.keyspace.discovery Preprocessing
|
Item prototypes for Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| DB {#DB}: Get Keyspace info | The item gets information about keyspace of {#DB} database. |
Dependent item | redis.db.info_raw["{#DB}"] Preprocessing
|
| DB {#DB}: Average TTL | Average TTL |
Dependent item | redis.db.avg_ttl["{#DB}"] Preprocessing
|
| DB {#DB}: Expires | Number of keys with an expiration |
Dependent item | redis.db.expires["{#DB}"] Preprocessing
|
| DB {#DB}: Keys | Total number of keys |
Dependent item | redis.db.keys["{#DB}"] Preprocessing
|
LLD rule AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
Dependent item | redis.persistence.aof.discovery Preprocessing
|
Item prototypes for AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: AOF current size{#SINGLETON} | AOF current file size |
Dependent item | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
Dependent item | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
Dependent item | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing
|
| Redis: AOF buffer length{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing
|
| Redis: AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
Dependent item | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing
|
| Redis: AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
Dependent item | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing
|
| Redis: AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
Dependent item | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing
|
LLD rule Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
Dependent item | redis.replication.slave.discovery Preprocessing
|
Item prototypes for Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Master host{#SINGLETON} | Host or IP address of the master |
Dependent item | redis.replication.master_host[{#SINGLETON}] Preprocessing
|
| Redis: Master port{#SINGLETON} | Master listening TCP port |
Dependent item | redis.replication.master_port[{#SINGLETON}] Preprocessing
|
| Redis: Master link status{#SINGLETON} | Status of the link (up/down) |
Dependent item | redis.replication.master_link_status[{#SINGLETON}] Preprocessing
|
| Redis: Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
Dependent item | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing
|
| Redis: Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
Dependent item | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing
|
| Redis: Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
Dependent item | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing
|
| Redis: Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
Dependent item | redis.replication.slave_priority[{#SINGLETON}] Preprocessing
|
| Redis: Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
Dependent item | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Slave metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Replication lag with master is too high | min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
Warning |
LLD rule Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
Dependent item | redis.replication.master.discovery Preprocessing
|
Item prototypes for Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
Dependent item | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing
|
LLD rule Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
Zabbix agent | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing
|
Item prototypes for Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Number of running processes | Zabbix agent | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] | |
| Redis: Memory usage (rss) | Resident set size memory used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Redis: Memory usage (vsize) | Virtual memory size used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| Redis: CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
Trigger prototypes for Process metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Process is not running | last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
High |
LLD rule Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
Dependent item | redis.metrics.v4.discovery Preprocessing
|
Item prototypes for Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Executable path{#SINGLETON} | The path to the server's executable |
Dependent item | redis.server.executable[{#SINGLETON}] Preprocessing
|
| Redis: Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
Dependent item | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing
|
| Redis: Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
Dependent item | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing
|
| Redis: Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
Dependent item | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing
|
| Redis: Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
Dependent item | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing
|
| Redis: Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
Dependent item | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing
|
| Redis: Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
Dependent item | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing
|
| Redis: Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
Dependent item | redis.memory.maxmemory[{#SINGLETON}] Preprocessing
|
| Redis: Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
Dependent item | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
Dependent item | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing
|
| Redis: Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
Dependent item | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing
|
| Redis: RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
Dependent item | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing
|
| Redis: Expired stale %{#SINGLETON} | Dependent item | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing
|
|
| Redis: Expired time cap reached count{#SINGLETON} | Dependent item | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing
|
|
| Redis: Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
Dependent item | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
Dependent item | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
Dependent item | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
Dependent item | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
Dependent item | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing
|
| Redis: Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
Dependent item | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Version 4+ metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Memory usage is too high | last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
Warning |
LLD rule Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
Dependent item | redis.metrics.v5.discovery Preprocessing
|
Item prototypes for Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Allocator active{#SINGLETON} | Dependent item | redis.memory.allocator_active[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator allocated{#SINGLETON} | Dependent item | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator resident{#SINGLETON} | Dependent item | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory used scripts{#SINGLETON} | Dependent item | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory number of cached scripts{#SINGLETON} | Dependent item | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator fragmentation ratio{#SINGLETON} | Dependent item | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator RSS bytes{#SINGLETON} | Dependent item | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator RSS ratio{#SINGLETON} | Dependent item | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory RSS overhead bytes{#SINGLETON} | Dependent item | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory RSS overhead ratio{#SINGLETON} | Dependent item | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory not counted for evict{#SINGLETON} | Dependent item | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory replication backlog{#SINGLETON} | Dependent item | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory clients normal{#SINGLETON} | Dependent item | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory clients slaves{#SINGLETON} | Dependent item | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/6.2
Redis by Zabbix agent 2
Overview
For Zabbix version: 6.2 and higher
The template to monitor Redis server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Redis by Zabbix agent 2 — collects metrics by polling zabbix-agent2.
This template was tested on:
- Redis, version 5.0.6, 4.0.14, 3.0.6
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin (ZBXNEXT-5428-4.3).
Test availability: zabbix_get -s redis-master -k redis.ping
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
DEPENDENT | redis.persistence.aof.discovery Preprocessing: - JAVASCRIPT: |
| Keyspace discovery | Individual keyspace metrics |
DEPENDENT | redis.keyspace.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#DB} MATCHES_REGEX - {#DB} NOT_MATCHES_REGEX |
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
ZABBIX_PASSIVE | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing: - JAVASCRIPT: |
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
DEPENDENT | redis.replication.master.discovery Preprocessing: - JAVASCRIPT: |
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
DEPENDENT | redis.replication.slave.discovery Preprocessing: - JAVASCRIPT: |
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
DEPENDENT | redis.metrics.v4.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
DEPENDENT | redis.metrics.v5.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Redis | Redis: Ping | ZABBIX_PASSIVE | redis.ping["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
| Redis | Redis: Slowlog entries per second | ZABBIX_PASSIVE | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing: - CHANGE_PER_SECOND |
|
| Redis | Redis: CPU sys | System CPU consumed by the Redis server |
DEPENDENT | redis.cpu.sys Preprocessing: - JSONPATH: |
| Redis | Redis: CPU sys children | System CPU consumed by the background processes |
DEPENDENT | redis.cpu.sys_children Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user | User CPU consumed by the Redis server |
DEPENDENT | redis.cpu.user Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user children | User CPU consumed by the background processes |
DEPENDENT | redis.cpu.user_children Preprocessing: - JSONPATH: |
| Redis | Redis: Blocked clients | The number of connections waiting on a blocking call |
DEPENDENT | redis.clients.blocked Preprocessing: - JSONPATH: |
| Redis | Redis: Max input buffer | The biggest input buffer among current client connections |
DEPENDENT | redis.clients.max_input_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Max output buffer | The biggest output buffer among current client connections |
DEPENDENT | redis.clients.max_output_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Connected clients | The number of connected clients |
DEPENDENT | redis.clients.connected Preprocessing: - JSONPATH: |
| Redis | Redis: Cluster enabled | Indicate Redis cluster is enabled |
DEPENDENT | redis.cluster.enabled Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used | Total number of bytes allocated by Redis using its allocator |
DEPENDENT | redis.memory.used_memory Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used Lua | Amount of memory used by the Lua engine |
DEPENDENT | redis.memory.used_memory_lua Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used peak | Peak memory consumed by Redis (in bytes) |
DEPENDENT | redis.memory.used_memory_peak Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
DEPENDENT | redis.memory.used_memory_rss Preprocessing: - JSONPATH: |
| Redis | Redis: Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
DEPENDENT | redis.memory.fragmentation_ratio Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
DEPENDENT | redis.persistence.aof_current_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF enabled | Flag indicating AOF logging is activated |
DEPENDENT | redis.persistence.aof_enabled Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last bgrewrite status | Status of the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_bgrewrite_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF last rewrite time sec | Duration of the last AOF rewrite |
DEPENDENT | redis.persistence.aof_last_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last write status | Status of the last write operation to the AOF |
DEPENDENT | redis.persistence.aof_last_write_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF rewrite in progress | Flag indicating a AOF rewrite operation is on-going |
DEPENDENT | redis.persistence.aof_rewrite_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
DEPENDENT | redis.persistence.aof_rewrite_scheduled Preprocessing: - JSONPATH: |
| Redis | Redis: Dump loading | Flag indicating if the load of a dump file is on-going |
DEPENDENT | redis.persistence.loading Preprocessing: - JSONPATH: |
| Redis | Redis: RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
DEPENDENT | redis.persistence.rdb_bgsave_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: RDB changes since last save | Number of changes since the last background save |
DEPENDENT | redis.persistence.rdb_changes_since_last_save Preprocessing: - JSONPATH: |
| Redis | Redis: RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
DEPENDENT | redis.persistence.rdb_current_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last bgsave status | Status of the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: RDB last bgsave time sec | Duration of the last bg_save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last save time | Epoch-based timestamp of last successful RDB save |
DEPENDENT | redis.persistence.rdb_last_save_time Preprocessing: - JSONPATH: |
| Redis | Redis: Connected slaves | Number of connected slaves |
DEPENDENT | redis.replication.connected_slaves Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog active | Flag indicating replication backlog is active |
DEPENDENT | redis.replication.repl_backlog_active Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog first byte offset | The master offset of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_first_byte_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog history length | Amount of data in the backlog sync buffer |
DEPENDENT | redis.replication.repl_backlog_histlen Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog size | Total size in bytes of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_size Preprocessing: - JSONPATH: |
| Redis | Redis: Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
DEPENDENT | redis.replication.role Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master replication offset | Replication offset reported by the master |
DEPENDENT | redis.replication.master_repl_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Process id | PID of the server process |
DEPENDENT | redis.server.process_id Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
DEPENDENT | redis.server.redis_mode Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis version | Version of the Redis server |
DEPENDENT | redis.server.redis_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: TCP port | TCP/IP listen port |
DEPENDENT | redis.server.tcp_port Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Uptime | Number of seconds since Redis server start |
DEPENDENT | redis.server.uptime Preprocessing: - JSONPATH: |
| Redis | Redis: Evicted keys | Number of evicted keys due to maxmemory limit |
DEPENDENT | redis.stats.evicted_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Expired keys | Total number of key expiration events |
DEPENDENT | redis.stats.expired_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous input bytes per second | The network's read rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_input.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Instantaneous operations per sec | Number of commands processed per second |
DEPENDENT | redis.stats.instantaneous_ops.rate Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous output bytes per second | The network's write rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_output.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Keyspace hits | Number of successful lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_hits Preprocessing: - JSONPATH: |
| Redis | Redis: Keyspace misses | Number of failed lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_misses Preprocessing: - JSONPATH: |
| Redis | Redis: Latest fork usec | Duration of the latest fork operation in microseconds |
DEPENDENT | redis.stats.latest_fork_usec Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Migrate cached sockets | The number of sockets open for MIGRATE purposes |
DEPENDENT | redis.stats.migrate_cached_sockets Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub channels | Global number of pub/sub channels with client subscriptions |
DEPENDENT | redis.stats.pubsub_channels Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
DEPENDENT | redis.stats.pubsub_patterns Preprocessing: - JSONPATH: |
| Redis | Redis: Rejected connections | Number of connections rejected because of maxclients limit |
DEPENDENT | redis.stats.rejected_connections Preprocessing: - JSONPATH: |
| Redis | Redis: Sync full | The number of full resyncs with replicas |
DEPENDENT | redis.stats.sync_full Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial err | The number of denied partial resync requests |
DEPENDENT | redis.stats.sync_partial_err Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial ok | The number of accepted partial resync requests |
DEPENDENT | redis.stats.sync_partial_ok Preprocessing: - JSONPATH: |
| Redis | Redis: Total commands processed | Total number of commands processed by the server |
DEPENDENT | redis.stats.total_commands_processed Preprocessing: - JSONPATH: |
| Redis | Redis: Total connections received | Total number of connections accepted by the server |
DEPENDENT | redis.stats.total_connections_received Preprocessing: - JSONPATH: |
| Redis | Redis: Total net input bytes | The total number of bytes read from the network |
DEPENDENT | redis.stats.total_net_input_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Total net output bytes | The total number of bytes written to the network |
DEPENDENT | redis.stats.total_net_output_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
DEPENDENT | redis.config.maxclients Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | DB {#DB}: Average TTL | Average TTL |
DEPENDENT | redis.db.avg_ttl["{#DB}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | DB {#DB}: Expires | Number of keys with an expiration |
DEPENDENT | redis.db.expires["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | DB {#DB}: Keys | Total number of keys |
DEPENDENT | redis.db.keys["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current size{#SINGLETON} | AOF current file size |
DEPENDENT | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
DEPENDENT | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
DEPENDENT | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF buffer length{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
DEPENDENT | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
DEPENDENT | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
DEPENDENT | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master host{#SINGLETON} | Host or IP address of the master |
DEPENDENT | redis.replication.master_host[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master port{#SINGLETON} | Master listening TCP port |
DEPENDENT | redis.replication.master_port[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master link status{#SINGLETON} | Status of the link (up/down) |
DEPENDENT | redis.replication.master_link_status[{#SINGLETON}] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
DEPENDENT | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
DEPENDENT | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
DEPENDENT | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
DEPENDENT | redis.replication.slave_priority[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
DEPENDENT | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
DEPENDENT | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Number of processes running | - |
ZABBIX_PASSIVE | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Memory usage (rss) | Resident set size memory used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Redis | Redis: Memory usage (vsize) | Virtual memory size used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| Redis | Redis: CPU utilization | Process CPU utilization percentage. |
ZABBIX_PASSIVE | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Executable path{#SINGLETON} | The path to the server's executable |
DEPENDENT | redis.server.executable[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
DEPENDENT | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
DEPENDENT | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
DEPENDENT | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
DEPENDENT | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
DEPENDENT | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
DEPENDENT | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
DEPENDENT | redis.memory.maxmemory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
DEPENDENT | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
DEPENDENT | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
DEPENDENT | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Expired stale %{#SINGLETON} | - |
DEPENDENT | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Expired time cap reached count{#SINGLETON} | - |
DEPENDENT | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
DEPENDENT | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
DEPENDENT | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
DEPENDENT | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
DEPENDENT | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator active{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_active[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator allocated{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator resident{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used scripts{#SINGLETON} | - |
DEPENDENT | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory number of cached scripts{#SINGLETON} | - |
DEPENDENT | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator fragmentation bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator fragmentation ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator RSS bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator RSS ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory RSS overhead bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory RSS overhead ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory fragmentation bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory not counted for evict{#SINGLETON} | - |
DEPENDENT | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory replication backlog{#SINGLETON} | - |
DEPENDENT | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory clients normal{#SINGLETON} | - |
DEPENDENT | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory clients slaves{#SINGLETON} | - |
DEPENDENT | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | Redis: Get info | ZABBIX_PASSIVE | redis.info["{$REDIS.CONN.URI}"] | |
| Zabbix raw items | Redis: Get config | ZABBIX_PASSIVE | redis.config["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Service is down | - |
last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0 |
AVERAGE | Manual close: YES |
| Redis: Too many entries in the slowlog | - |
min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
INFO | |
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. https://redis.io/topics/clients#maximum-number-of-clients |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
WARNING | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
WARNING | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
WARNING | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
WARNING | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
INFO | Manual close: YES |
| Redis: Replication role has changed | Redis replication role has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
WARNING | Manual close: YES |
| Redis: Version has changed | Redis version has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
INFO | Manual close: YES |
| Redis: has been restarted | Uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
INFO | Manual close: YES |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". https://redis.io/topics/clients |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
HIGH | |
| Redis: Replication lag with master is too high | - |
min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
WARNING | |
| Redis: Process is not running | - |
last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
HIGH | |
| Redis: Memory usage is too high | - |
last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
WARNING | |
| Redis: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1 |
WARNING | Manual close: YES Depends on: - Redis: Service is down |
| Redis: Configuration has changed | Redis configuration has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0 |
INFO | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/6.0
Redis by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Redis monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- Redis, version 3.0.6, 4.0.14, 5.0.6, 7.2.4
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin.
Redis' default user should have permissions to run CONFIG, INFO, PING, CLIENT and SLOWLOG commands.
Or default user ACL should have @admin, @slow, @dangerous, @fast and @connection categories.
Test availability: zabbix_get -s 127.0.0.1 -k redis.ping[tcp://127.0.0.1:6379]
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Get info | Zabbix agent | redis.info["{$REDIS.CONN.URI}"] | |
| Redis: Get config | Zabbix agent | redis.config["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Ping | Zabbix agent | redis.ping["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Slowlog entries per second | Zabbix agent | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing
|
|
| Redis: Get Clients info | Dependent item | redis.clients.info_raw Preprocessing
|
|
| Redis: Get CPU info | Dependent item | redis.cpu.info_raw Preprocessing
|
|
| Redis: Get Keyspace info | Dependent item | redis.keyspace.info_raw Preprocessing
|
|
| Redis: Get Memory info | Dependent item | redis.memory.info_raw Preprocessing
|
|
| Redis: Get Persistence info | Dependent item | redis.persistence.info_raw Preprocessing
|
|
| Redis: Get Replication info | Dependent item | redis.replication.info_raw Preprocessing
|
|
| Redis: Get Server info | Dependent item | redis.server.info_raw Preprocessing
|
|
| Redis: Get Stats info | Dependent item | redis.stats.info_raw Preprocessing
|
|
| Redis: CPU sys | System CPU consumed by the Redis server |
Dependent item | redis.cpu.sys Preprocessing
|
| Redis: CPU sys children | System CPU consumed by the background processes |
Dependent item | redis.cpu.sys_children Preprocessing
|
| Redis: CPU user | User CPU consumed by the Redis server |
Dependent item | redis.cpu.user Preprocessing
|
| Redis: CPU user children | User CPU consumed by the background processes |
Dependent item | redis.cpu.user_children Preprocessing
|
| Redis: Blocked clients | The number of connections waiting on a blocking call |
Dependent item | redis.clients.blocked Preprocessing
|
| Redis: Max input buffer | The biggest input buffer among current client connections |
Dependent item | redis.clients.max_input_buffer Preprocessing
|
| Redis: Max output buffer | The biggest output buffer among current client connections |
Dependent item | redis.clients.max_output_buffer Preprocessing
|
| Redis: Connected clients | The number of connected clients |
Dependent item | redis.clients.connected Preprocessing
|
| Redis: Cluster enabled | Indicate Redis cluster is enabled |
Dependent item | redis.cluster.enabled Preprocessing
|
| Redis: Memory used | Total number of bytes allocated by Redis using its allocator |
Dependent item | redis.memory.used_memory Preprocessing
|
| Redis: Memory used Lua | Amount of memory used by the Lua engine |
Dependent item | redis.memory.used_memory_lua Preprocessing
|
| Redis: Memory used peak | Peak memory consumed by Redis (in bytes) |
Dependent item | redis.memory.used_memory_peak Preprocessing
|
| Redis: Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
Dependent item | redis.memory.used_memory_rss Preprocessing
|
| Redis: Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: - Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. - Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
Dependent item | redis.memory.fragmentation_ratio Preprocessing
|
| Redis: AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
Dependent item | redis.persistence.aof_current_rewrite_time_sec Preprocessing
|
| Redis: AOF enabled | Flag indicating AOF logging is activated |
Dependent item | redis.persistence.aof_enabled Preprocessing
|
| Redis: AOF last bgrewrite status | Status of the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_bgrewrite_status Preprocessing
|
| Redis: AOF last rewrite time sec | Duration of the last AOF rewrite |
Dependent item | redis.persistence.aof_last_rewrite_time_sec Preprocessing
|
| Redis: AOF last write status | Status of the last write operation to the AOF |
Dependent item | redis.persistence.aof_last_write_status Preprocessing
|
| Redis: AOF rewrite in progress | Flag indicating an AOF rewrite operation is on-going |
Dependent item | redis.persistence.aof_rewrite_in_progress Preprocessing
|
| Redis: AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
Dependent item | redis.persistence.aof_rewrite_scheduled Preprocessing
|
| Redis: Dump loading | Flag indicating if the load of a dump file is on-going |
Dependent item | redis.persistence.loading Preprocessing
|
| Redis: RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
Dependent item | redis.persistence.rdb_bgsave_in_progress Preprocessing
|
| Redis: RDB changes since last save | Number of changes since the last background save |
Dependent item | redis.persistence.rdb_changes_since_last_save Preprocessing
|
| Redis: RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
Dependent item | redis.persistence.rdb_current_bgsave_time_sec Preprocessing
|
| Redis: RDB last bgsave status | Status of the last RDB save operation |
Dependent item | redis.persistence.rdb_last_bgsave_status Preprocessing
|
| Redis: RDB last bgsave time sec | Duration of the last bg_save operation |
Dependent item | redis.persistence.rdb_last_bgsave_time_sec Preprocessing
|
| Redis: RDB last save time | Epoch-based timestamp of last successful RDB save |
Dependent item | redis.persistence.rdb_last_save_time Preprocessing
|
| Redis: Connected slaves | Number of connected slaves |
Dependent item | redis.replication.connected_slaves Preprocessing
|
| Redis: Replication backlog active | Flag indicating replication backlog is active |
Dependent item | redis.replication.repl_backlog_active Preprocessing
|
| Redis: Replication backlog first byte offset | The master offset of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_first_byte_offset Preprocessing
|
| Redis: Replication backlog history length | Amount of data in the backlog sync buffer |
Dependent item | redis.replication.repl_backlog_histlen Preprocessing
|
| Redis: Replication backlog size | Total size in bytes of the replication backlog buffer |
Dependent item | redis.replication.repl_backlog_size Preprocessing
|
| Redis: Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
Dependent item | redis.replication.role Preprocessing
|
| Redis: Master replication offset | Replication offset reported by the master |
Dependent item | redis.replication.master_repl_offset Preprocessing
|
| Redis: Process id | PID of the server process |
Dependent item | redis.server.process_id Preprocessing
|
| Redis: Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
Dependent item | redis.server.redis_mode Preprocessing
|
| Redis: Redis version | Version of the Redis server |
Dependent item | redis.server.redis_version Preprocessing
|
| Redis: TCP port | TCP/IP listen port |
Dependent item | redis.server.tcp_port Preprocessing
|
| Redis: Uptime | Number of seconds since Redis server start |
Dependent item | redis.server.uptime Preprocessing
|
| Redis: Evicted keys | Number of evicted keys due to maxmemory limit |
Dependent item | redis.stats.evicted_keys Preprocessing
|
| Redis: Expired keys | Total number of key expiration events |
Dependent item | redis.stats.expired_keys Preprocessing
|
| Redis: Instantaneous input bytes per second | The network's read rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_input.rate Preprocessing
|
| Redis: Instantaneous operations per sec | Number of commands processed per second |
Dependent item | redis.stats.instantaneous_ops.rate Preprocessing
|
| Redis: Instantaneous output bytes per second | The network's write rate per second in KB/sec |
Dependent item | redis.stats.instantaneous_output.rate Preprocessing
|
| Redis: Keyspace hits | Number of successful lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_hits Preprocessing
|
| Redis: Keyspace misses | Number of failed lookup of keys in the main dictionary |
Dependent item | redis.stats.keyspace_misses Preprocessing
|
| Redis: Latest fork usec | Duration of the latest fork operation in microseconds |
Dependent item | redis.stats.latest_fork_usec Preprocessing
|
| Redis: Migrate cached sockets | The number of sockets open for MIGRATE purposes |
Dependent item | redis.stats.migrate_cached_sockets Preprocessing
|
| Redis: Pubsub channels | Global number of pub/sub channels with client subscriptions |
Dependent item | redis.stats.pubsub_channels Preprocessing
|
| Redis: Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
Dependent item | redis.stats.pubsub_patterns Preprocessing
|
| Redis: Rejected connections | Number of connections rejected because of maxclients limit |
Dependent item | redis.stats.rejected_connections Preprocessing
|
| Redis: Sync full | The number of full resyncs with replicas |
Dependent item | redis.stats.sync_full Preprocessing
|
| Redis: Sync partial err | The number of denied partial resync requests |
Dependent item | redis.stats.sync_partial_err Preprocessing
|
| Redis: Sync partial ok | The number of accepted partial resync requests |
Dependent item | redis.stats.sync_partial_ok Preprocessing
|
| Redis: Total commands processed | Total number of commands processed by the server |
Dependent item | redis.stats.total_commands_processed Preprocessing
|
| Redis: Total connections received | Total number of connections accepted by the server |
Dependent item | redis.stats.total_connections_received Preprocessing
|
| Redis: Total net input bytes | The total number of bytes read from the network |
Dependent item | redis.stats.total_net_input_bytes Preprocessing
|
| Redis: Total net output bytes | The total number of bytes written to the network |
Dependent item | redis.stats.total_net_output_bytes Preprocessing
|
| Redis: Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
Dependent item | redis.config.maxclients Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Failed to fetch info data | Zabbix has not received any data for items for the last 30 minutes. |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Redis: Configuration has changed | Redis configuration has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0 |
Info | Manual close: Yes |
| Redis: Service is down | last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0 |
Average | Manual close: Yes | |
| Redis: Too many entries in the slowlog | min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
Info | ||
| Redis: Total number of connected clients is too high | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
Warning | |
| Redis: Memory fragmentation ratio is too high | This ratio is an indication of memory mapping efficiency: |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
Warning | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
Warning | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
Warning | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
Info | Manual close: Yes |
| Redis: Replication role has changed | Redis replication role has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
Warning | Manual close: Yes |
| Redis: Version has changed | The Redis version has changed. Acknowledge to close the problem manually. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
Info | Manual close: Yes |
| Redis: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
Info | Manual close: Yes |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
High |
LLD rule Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Individual keyspace metrics |
Dependent item | redis.keyspace.discovery Preprocessing
|
Item prototypes for Keyspace discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| DB {#DB}: Get Keyspace info | The item gets information about keyspace of {#DB} database. |
Dependent item | redis.db.info_raw["{#DB}"] Preprocessing
|
| DB {#DB}: Average TTL | Average TTL |
Dependent item | redis.db.avg_ttl["{#DB}"] Preprocessing
|
| DB {#DB}: Expires | Number of keys with an expiration |
Dependent item | redis.db.expires["{#DB}"] Preprocessing
|
| DB {#DB}: Keys | Total number of keys |
Dependent item | redis.db.keys["{#DB}"] Preprocessing
|
LLD rule AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
Dependent item | redis.persistence.aof.discovery Preprocessing
|
Item prototypes for AOF metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: AOF current size{#SINGLETON} | AOF current file size |
Dependent item | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
Dependent item | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
Dependent item | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing
|
| Redis: AOF buffer length{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing
|
| Redis: AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
Dependent item | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing
|
| Redis: AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
Dependent item | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing
|
| Redis: AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
Dependent item | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing
|
LLD rule Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
Dependent item | redis.replication.slave.discovery Preprocessing
|
Item prototypes for Slave metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Master host{#SINGLETON} | Host or IP address of the master |
Dependent item | redis.replication.master_host[{#SINGLETON}] Preprocessing
|
| Redis: Master port{#SINGLETON} | Master listening TCP port |
Dependent item | redis.replication.master_port[{#SINGLETON}] Preprocessing
|
| Redis: Master link status{#SINGLETON} | Status of the link (up/down) |
Dependent item | redis.replication.master_link_status[{#SINGLETON}] Preprocessing
|
| Redis: Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
Dependent item | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing
|
| Redis: Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
Dependent item | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing
|
| Redis: Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
Dependent item | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing
|
| Redis: Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
Dependent item | redis.replication.slave_priority[{#SINGLETON}] Preprocessing
|
| Redis: Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
Dependent item | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Slave metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Replication lag with master is too high | min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
Warning |
LLD rule Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
Dependent item | redis.replication.master.discovery Preprocessing
|
Item prototypes for Replication metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
Dependent item | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing
|
LLD rule Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
Zabbix agent | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing
|
Item prototypes for Process metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Number of running processes | Zabbix agent | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] | |
| Redis: Memory usage (rss) | Resident set size memory used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Redis: Memory usage (vsize) | Virtual memory size used by process in bytes. |
Zabbix agent | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| Redis: CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
Trigger prototypes for Process metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Process is not running | last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
High |
LLD rule Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
Dependent item | redis.metrics.v4.discovery Preprocessing
|
Item prototypes for Version 4+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Executable path{#SINGLETON} | The path to the server's executable |
Dependent item | redis.server.executable[{#SINGLETON}] Preprocessing
|
| Redis: Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
Dependent item | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing
|
| Redis: Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
Dependent item | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing
|
| Redis: Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
Dependent item | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing
|
| Redis: Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
Dependent item | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing
|
| Redis: Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
Dependent item | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing
|
| Redis: Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
Dependent item | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing
|
| Redis: Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
Dependent item | redis.memory.maxmemory[{#SINGLETON}] Preprocessing
|
| Redis: Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
Dependent item | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
Dependent item | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing
|
| Redis: Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
Dependent item | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing
|
| Redis: RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
Dependent item | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing
|
| Redis: AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
Dependent item | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing
|
| Redis: Expired stale %{#SINGLETON} | Dependent item | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing
|
|
| Redis: Expired time cap reached count{#SINGLETON} | Dependent item | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing
|
|
| Redis: Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
Dependent item | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
Dependent item | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
Dependent item | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
Dependent item | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing
|
| Redis: Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
Dependent item | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing
|
| Redis: Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
Dependent item | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Version 4+ metrics discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Memory usage is too high | last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
Warning |
LLD rule Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
Dependent item | redis.metrics.v5.discovery Preprocessing
|
Item prototypes for Version 5+ metrics discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Redis: Allocator active{#SINGLETON} | Dependent item | redis.memory.allocator_active[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator allocated{#SINGLETON} | Dependent item | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator resident{#SINGLETON} | Dependent item | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory used scripts{#SINGLETON} | Dependent item | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory number of cached scripts{#SINGLETON} | Dependent item | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator fragmentation ratio{#SINGLETON} | Dependent item | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator RSS bytes{#SINGLETON} | Dependent item | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Allocator RSS ratio{#SINGLETON} | Dependent item | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory RSS overhead bytes{#SINGLETON} | Dependent item | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory RSS overhead ratio{#SINGLETON} | Dependent item | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory fragmentation bytes{#SINGLETON} | Dependent item | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory not counted for evict{#SINGLETON} | Dependent item | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory replication backlog{#SINGLETON} | Dependent item | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory clients normal{#SINGLETON} | Dependent item | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory clients slaves{#SINGLETON} | Dependent item | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing
|
|
| Redis: Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
Dependent item | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/5.4
Redis by Zabbix agent 2
Overview
For Zabbix version: 5.4 and higher
The template to monitor Redis server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Redis by Zabbix agent 2 — collects metrics by polling zabbix-agent2.
This template was tested on:
- Redis, version 5.0.6, 4.0.14, 3.0.6
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin (ZBXNEXT-5428-4.3).
Test availability: zabbix_get -s redis-master -k redis.ping
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Individual keyspace metrics |
DEPENDENT | redis.keyspace.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#DB} MATCHES_REGEX - {#DB} NOT_MATCHES_REGEX |
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
DEPENDENT | redis.persistence.aof.discovery Preprocessing: - JAVASCRIPT: |
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
DEPENDENT | redis.replication.slave.discovery Preprocessing: - JAVASCRIPT: |
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
DEPENDENT | redis.replication.master.discovery Preprocessing: - JAVASCRIPT: |
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
ZABBIX_PASSIVE | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing: - JAVASCRIPT: |
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
DEPENDENT | redis.metrics.v4.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
DEPENDENT | redis.metrics.v5.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Redis | Redis: Ping | ZABBIX_PASSIVE | redis.ping["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
| Redis | Redis: Slowlog entries per second | ZABBIX_PASSIVE | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing: - CHANGE_PER_SECOND |
|
| Redis | Redis: CPU sys | System CPU consumed by the Redis server |
DEPENDENT | redis.cpu.sys Preprocessing: - JSONPATH: |
| Redis | Redis: CPU sys children | System CPU consumed by the background processes |
DEPENDENT | redis.cpu.sys_children Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user | User CPU consumed by the Redis server |
DEPENDENT | redis.cpu.user Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user children | User CPU consumed by the background processes |
DEPENDENT | redis.cpu.user_children Preprocessing: - JSONPATH: |
| Redis | Redis: Blocked clients | The number of connections waiting on a blocking call |
DEPENDENT | redis.clients.blocked Preprocessing: - JSONPATH: |
| Redis | Redis: Max input buffer | The biggest input buffer among current client connections |
DEPENDENT | redis.clients.max_input_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Max output buffer | The biggest output buffer among current client connections |
DEPENDENT | redis.clients.max_output_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Connected clients | The number of connected clients |
DEPENDENT | redis.clients.connected Preprocessing: - JSONPATH: |
| Redis | Redis: Cluster enabled | Indicate Redis cluster is enabled |
DEPENDENT | redis.cluster.enabled Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used | Total number of bytes allocated by Redis using its allocator |
DEPENDENT | redis.memory.used_memory Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used Lua | Amount of memory used by the Lua engine |
DEPENDENT | redis.memory.used_memory_lua Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used peak | Peak memory consumed by Redis (in bytes) |
DEPENDENT | redis.memory.used_memory_peak Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
DEPENDENT | redis.memory.used_memory_rss Preprocessing: - JSONPATH: |
| Redis | Redis: Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
DEPENDENT | redis.memory.fragmentation_ratio Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
DEPENDENT | redis.persistence.aof_current_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF enabled | Flag indicating AOF logging is activated |
DEPENDENT | redis.persistence.aof_enabled Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last bgrewrite status | Status of the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_bgrewrite_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF last rewrite time sec | Duration of the last AOF rewrite |
DEPENDENT | redis.persistence.aof_last_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last write status | Status of the last write operation to the AOF |
DEPENDENT | redis.persistence.aof_last_write_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF rewrite in progress | Flag indicating a AOF rewrite operation is on-going |
DEPENDENT | redis.persistence.aof_rewrite_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
DEPENDENT | redis.persistence.aof_rewrite_scheduled Preprocessing: - JSONPATH: |
| Redis | Redis: Dump loading | Flag indicating if the load of a dump file is on-going |
DEPENDENT | redis.persistence.loading Preprocessing: - JSONPATH: |
| Redis | Redis: RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
DEPENDENT | redis.persistence.rdb_bgsave_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: RDB changes since last save | Number of changes since the last background save |
DEPENDENT | redis.persistence.rdb_changes_since_last_save Preprocessing: - JSONPATH: |
| Redis | Redis: RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
DEPENDENT | redis.persistence.rdb_current_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last bgsave status | Status of the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: RDB last bgsave time sec | Duration of the last bg_save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last save time | Epoch-based timestamp of last successful RDB save |
DEPENDENT | redis.persistence.rdb_last_save_time Preprocessing: - JSONPATH: |
| Redis | Redis: Connected slaves | Number of connected slaves |
DEPENDENT | redis.replication.connected_slaves Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog active | Flag indicating replication backlog is active |
DEPENDENT | redis.replication.repl_backlog_active Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog first byte offset | The master offset of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_first_byte_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog history length | Amount of data in the backlog sync buffer |
DEPENDENT | redis.replication.repl_backlog_histlen Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog size | Total size in bytes of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_size Preprocessing: - JSONPATH: |
| Redis | Redis: Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
DEPENDENT | redis.replication.role Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master replication offset | Replication offset reported by the master |
DEPENDENT | redis.replication.master_repl_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Process id | PID of the server process |
DEPENDENT | redis.server.process_id Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
DEPENDENT | redis.server.redis_mode Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis version | Version of the Redis server |
DEPENDENT | redis.server.redis_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: TCP port | TCP/IP listen port |
DEPENDENT | redis.server.tcp_port Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Uptime | Number of seconds since Redis server start |
DEPENDENT | redis.server.uptime Preprocessing: - JSONPATH: |
| Redis | Redis: Evicted keys | Number of evicted keys due to maxmemory limit |
DEPENDENT | redis.stats.evicted_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Expired keys | Total number of key expiration events |
DEPENDENT | redis.stats.expired_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous input bytes per second | The network's read rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_input.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Instantaneous operations per sec | Number of commands processed per second |
DEPENDENT | redis.stats.instantaneous_ops.rate Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous output bytes per second | The network's write rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_output.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Keyspace hits | Number of successful lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_hits Preprocessing: - JSONPATH: |
| Redis | Redis: Keyspace misses | Number of failed lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_misses Preprocessing: - JSONPATH: |
| Redis | Redis: Latest fork usec | Duration of the latest fork operation in microseconds |
DEPENDENT | redis.stats.latest_fork_usec Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Migrate cached sockets | The number of sockets open for MIGRATE purposes |
DEPENDENT | redis.stats.migrate_cached_sockets Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub channels | Global number of pub/sub channels with client subscriptions |
DEPENDENT | redis.stats.pubsub_channels Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
DEPENDENT | redis.stats.pubsub_patterns Preprocessing: - JSONPATH: |
| Redis | Redis: Rejected connections | Number of connections rejected because of maxclients limit |
DEPENDENT | redis.stats.rejected_connections Preprocessing: - JSONPATH: |
| Redis | Redis: Sync full | The number of full resyncs with replicas |
DEPENDENT | redis.stats.sync_full Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial err | The number of denied partial resync requests |
DEPENDENT | redis.stats.sync_partial_err Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial ok | The number of accepted partial resync requests |
DEPENDENT | redis.stats.sync_partial_ok Preprocessing: - JSONPATH: |
| Redis | Redis: Total commands processed | Total number of commands processed by the server |
DEPENDENT | redis.stats.total_commands_processed Preprocessing: - JSONPATH: |
| Redis | Redis: Total connections received | Total number of connections accepted by the server |
DEPENDENT | redis.stats.total_connections_received Preprocessing: - JSONPATH: |
| Redis | Redis: Total net input bytes | The total number of bytes read from the network |
DEPENDENT | redis.stats.total_net_input_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Total net output bytes | The total number of bytes written to the network |
DEPENDENT | redis.stats.total_net_output_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
DEPENDENT | redis.config.maxclients Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | DB {#DB}: Average TTL | Average TTL |
DEPENDENT | redis.db.avg_ttl["{#DB}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | DB {#DB}: Expires | Number of keys with an expiration |
DEPENDENT | redis.db.expires["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | DB {#DB}: Keys | Total number of keys |
DEPENDENT | redis.db.keys["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current size{#SINGLETON} | AOF current file size |
DEPENDENT | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
DEPENDENT | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
DEPENDENT | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF buffer length{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
DEPENDENT | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
DEPENDENT | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
DEPENDENT | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master host{#SINGLETON} | Host or IP address of the master |
DEPENDENT | redis.replication.master_host[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master port{#SINGLETON} | Master listening TCP port |
DEPENDENT | redis.replication.master_port[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master link status{#SINGLETON} | Status of the link (up/down) |
DEPENDENT | redis.replication.master_link_status[{#SINGLETON}] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
DEPENDENT | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
DEPENDENT | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
DEPENDENT | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
DEPENDENT | redis.replication.slave_priority[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
DEPENDENT | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
DEPENDENT | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Number of processes running | - |
ZABBIX_PASSIVE | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Memory usage (rss) | Resident set size memory used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Redis | Redis: Memory usage (vsize) | Virtual memory size used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| Redis | Redis: CPU utilization | Process CPU utilization percentage. |
ZABBIX_PASSIVE | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Executable path{#SINGLETON} | The path to the server's executable |
DEPENDENT | redis.server.executable[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
DEPENDENT | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
DEPENDENT | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
DEPENDENT | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
DEPENDENT | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
DEPENDENT | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
DEPENDENT | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
DEPENDENT | redis.memory.maxmemory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
DEPENDENT | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
DEPENDENT | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
DEPENDENT | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Expired stale %{#SINGLETON} | - |
DEPENDENT | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Expired time cap reached count{#SINGLETON} | - |
DEPENDENT | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
DEPENDENT | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
DEPENDENT | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
DEPENDENT | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
DEPENDENT | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator active{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_active[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator allocated{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator resident{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used scripts{#SINGLETON} | - |
DEPENDENT | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory number of cached scripts{#SINGLETON} | - |
DEPENDENT | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator fragmentation bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator fragmentation ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator RSS bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator RSS ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory RSS overhead bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory RSS overhead ratio{#SINGLETON} | - |
DEPENDENT | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory fragmentation bytes{#SINGLETON} | - |
DEPENDENT | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory not counted for evict{#SINGLETON} | - |
DEPENDENT | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory replication backlog{#SINGLETON} | - |
DEPENDENT | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory clients normal{#SINGLETON} | - |
DEPENDENT | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory clients slaves{#SINGLETON} | - |
DEPENDENT | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Redis: Get info | ZABBIX_PASSIVE | redis.info["{$REDIS.CONN.URI}"] | |
| Zabbix_raw_items | Redis: Get config | ZABBIX_PASSIVE | redis.config["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Service is down | - |
last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0 |
AVERAGE | Manual close: YES |
| Redis: Too many entries in the slowlog (over {$REDIS.SLOWLOG.COUNT.MAX.WARN} per second in 5m) | - |
min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
INFO | |
| Redis: Total number of connected clients is too high (over {$REDIS.CLIENTS.PRC.MAX.WARN}% in 5m) | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. https://redis.io/topics/clients#maximum-number-of-clients |
min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
WARNING | |
| Redis: Memory fragmentation ratio is too high (over {$REDIS.MEM.FRAG_RATIO.MAX.WARN} in 15m) | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
WARNING | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0 |
WARNING | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0 |
WARNING | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2) |
INFO | Manual close: YES |
| Redis: Replication role has changed (new role: {ITEM.VALUE}) | Redis replication role has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0 |
WARNING | Manual close: YES |
| Redis: Version has changed (new version: {ITEM.VALUE}) | Redis version has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0 |
INFO | Manual close: YES |
| Redis: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/Redis by Zabbix agent 2/redis.server.uptime)<10m |
INFO | Manual close: YES |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". https://redis.io/topics/clients |
last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0 |
HIGH | |
| Redis: Replication lag with master is too high (over {$REDIS.REPL.LAG.MAX.WARN} in 5m) | - |
min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN} |
WARNING | |
| Redis: Process is not running | - |
last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0 |
HIGH | |
| Redis: Memory usage is too high (over {$REDIS.MEM.PUSED.MAX.WARN}% in 5m) | - |
last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN} |
WARNING | |
| Redis: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes |
nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1 |
WARNING | Manual close: YES Depends on: - Redis: Service is down |
| Redis: Configuration has changed | Redis configuration has changed. Ack to close. |
last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0 |
INFO | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/redis?at=release/5.0
Template DB Redis
Overview
For Zabbix version: 5.0 and higher
The template to monitor Redis server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Redis — collects metrics by polling zabbix-agent2.
This template was tested on:
- Redis, version 5.0.6, 4.0.14, 3.0.6
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Redis monitoring plugin (ZBXNEXT-5428-4.3).
Test availability: zabbix_get -s redis-master -k redis.ping
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$REDIS.CLIENTS.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
| {$REDIS.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:6379" |
tcp://localhost:6379 |
| {$REDIS.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$REDIS.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
CHANGE_IF_NEEDED |
| {$REDIS.LLD.PROCESS_NAME} | Redis server process name for LLD |
redis-server |
| {$REDIS.MEM.FRAG_RATIO.MAX.WARN} | Maximum memory fragmentation ratio |
1.5 |
| {$REDIS.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
| {$REDIS.PROCESS_NAME} | Redis server process name |
redis-server |
| {$REDIS.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
30s |
| {$REDIS.SLOWLOG.COUNT.MAX.WARN} | Maximum number of slowlog entries per second |
1 |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Keyspace discovery | Individual keyspace metrics |
DEPENDENT | redis.keyspace.discovery Preprocessing: - JAVASCRIPT: Filter: AND- A: {#DB} MATCHES_REGEX - B: {#DB} NOT_MATCHES_REGEX |
| AOF metrics discovery | If AOF is activated, additional metrics will be added |
DEPENDENT | redis.persistence.aof.discovery Preprocessing: - JAVASCRIPT: |
| Slave metrics discovery | If the instance is a replica, additional metrics are provided |
DEPENDENT | redis.replication.slave.discovery Preprocessing: - JAVASCRIPT: |
| Replication metrics discovery | If the instance is the master and the slaves are connected, additional metrics are provided |
DEPENDENT | redis.replication.master.discovery Preprocessing: - JAVASCRIPT: |
| Process metrics discovery | Collect metrics by Zabbix agent if it exists |
ZABBIX_PASSIVE | proc.num["{$REDIS.LLD.PROCESS_NAME}"] Preprocessing: - JAVASCRIPT: |
| Version 4+ metrics discovery | Additional metrics for versions 4+ |
DEPENDENT | redis.metrics.v4.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
| Version 5+ metrics discovery | Additional metrics for versions 5+ |
DEPENDENT | redis.metrics.v5.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Redis | Redis: Ping | ZABBIX_PASSIVE | redis.ping["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
| Redis | Redis: Slowlog entries per second | ZABBIX_PASSIVE | redis.slowlog.count["{$REDIS.CONN.URI}"] Preprocessing: - CHANGE_PER_SECOND |
|
| Redis | Redis: CPU sys | System CPU consumed by the Redis server |
DEPENDENT | redis.cpu.sys Preprocessing: - JSONPATH: |
| Redis | Redis: CPU sys children | System CPU consumed by the background processes |
DEPENDENT | redis.cpu.sys_children Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user | User CPU consumed by the Redis server |
DEPENDENT | redis.cpu.user Preprocessing: - JSONPATH: |
| Redis | Redis: CPU user children | User CPU consumed by the background processes |
DEPENDENT | redis.cpu.user_children Preprocessing: - JSONPATH: |
| Redis | Redis: Blocked clients | The number of connections waiting on a blocking call |
DEPENDENT | redis.clients.blocked Preprocessing: - JSONPATH: |
| Redis | Redis: Max input buffer | The biggest input buffer among current client connections |
DEPENDENT | redis.clients.max_input_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Max output buffer | The biggest output buffer among current client connections |
DEPENDENT | redis.clients.max_output_buffer Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Connected clients | The number of connected clients |
DEPENDENT | redis.clients.connected Preprocessing: - JSONPATH: |
| Redis | Redis: Cluster enabled | Indicate Redis cluster is enabled |
DEPENDENT | redis.cluster.enabled Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used | Total number of bytes allocated by Redis using its allocator |
DEPENDENT | redis.memory.used_memory Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used Lua | Amount of memory used by the Lua engine |
DEPENDENT | redis.memory.used_memory_lua Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used peak | Peak memory consumed by Redis (in bytes) |
DEPENDENT | redis.memory.used_memory_peak Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used RSS | Number of bytes that Redis allocated as seen by the operating system |
DEPENDENT | redis.memory.used_memory_rss Preprocessing: - JSONPATH: |
| Redis | Redis: Memory fragmentation ratio | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
DEPENDENT | redis.memory.fragmentation_ratio Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current rewrite time sec | Duration of the on-going AOF rewrite operation if any |
DEPENDENT | redis.persistence.aof_current_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF enabled | Flag indicating AOF logging is activated |
DEPENDENT | redis.persistence.aof_enabled Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last bgrewrite status | Status of the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_bgrewrite_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF last rewrite time sec | Duration of the last AOF rewrite |
DEPENDENT | redis.persistence.aof_last_rewrite_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last write status | Status of the last write operation to the AOF |
DEPENDENT | redis.persistence.aof_last_write_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: AOF rewrite in progress | Flag indicating a AOF rewrite operation is on-going |
DEPENDENT | redis.persistence.aof_rewrite_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite scheduled | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete |
DEPENDENT | redis.persistence.aof_rewrite_scheduled Preprocessing: - JSONPATH: |
| Redis | Redis: Dump loading | Flag indicating if the load of a dump file is on-going |
DEPENDENT | redis.persistence.loading Preprocessing: - JSONPATH: |
| Redis | Redis: RDB bgsave in progress | "1" if bgsave is in progress and "0" otherwise |
DEPENDENT | redis.persistence.rdb_bgsave_in_progress Preprocessing: - JSONPATH: |
| Redis | Redis: RDB changes since last save | Number of changes since the last background save |
DEPENDENT | redis.persistence.rdb_changes_since_last_save Preprocessing: - JSONPATH: |
| Redis | Redis: RDB current bgsave time sec | Duration of the on-going RDB save operation if any |
DEPENDENT | redis.persistence.rdb_current_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last bgsave status | Status of the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_status Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: RDB last bgsave time sec | Duration of the last bg_save operation |
DEPENDENT | redis.persistence.rdb_last_bgsave_time_sec Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last save time | Epoch-based timestamp of last successful RDB save |
DEPENDENT | redis.persistence.rdb_last_save_time Preprocessing: - JSONPATH: |
| Redis | Redis: Connected slaves | Number of connected slaves |
DEPENDENT | redis.replication.connected_slaves Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog active | Flag indicating replication backlog is active |
DEPENDENT | redis.replication.repl_backlog_active Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog first byte offset | The master offset of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_first_byte_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog history length | Amount of data in the backlog sync buffer |
DEPENDENT | redis.replication.repl_backlog_histlen Preprocessing: - JSONPATH: |
| Redis | Redis: Replication backlog size | Total size in bytes of the replication backlog buffer |
DEPENDENT | redis.replication.repl_backlog_size Preprocessing: - JSONPATH: |
| Redis | Redis: Replication role | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). |
DEPENDENT | redis.replication.role Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master replication offset | Replication offset reported by the master |
DEPENDENT | redis.replication.master_repl_offset Preprocessing: - JSONPATH: |
| Redis | Redis: Process id | PID of the server process |
DEPENDENT | redis.server.process_id Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis mode | The server's mode ("standalone", "sentinel" or "cluster") |
DEPENDENT | redis.server.redis_mode Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Redis version | Version of the Redis server |
DEPENDENT | redis.server.redis_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: TCP port | TCP/IP listen port |
DEPENDENT | redis.server.tcp_port Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Uptime | Number of seconds since Redis server start |
DEPENDENT | redis.server.uptime Preprocessing: - JSONPATH: |
| Redis | Redis: Evicted keys | Number of evicted keys due to maxmemory limit |
DEPENDENT | redis.stats.evicted_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Expired keys | Total number of key expiration events |
DEPENDENT | redis.stats.expired_keys Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous input bytes per second | The network's read rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_input.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Instantaneous operations per sec | Number of commands processed per second |
DEPENDENT | redis.stats.instantaneous_ops.rate Preprocessing: - JSONPATH: |
| Redis | Redis: Instantaneous output bytes per second | The network's write rate per second in KB/sec |
DEPENDENT | redis.stats.instantaneous_output.rate Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Keyspace hits | Number of successful lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_hits Preprocessing: - JSONPATH: |
| Redis | Redis: Keyspace misses | Number of failed lookup of keys in the main dictionary |
DEPENDENT | redis.stats.keyspace_misses Preprocessing: - JSONPATH: |
| Redis | Redis: Latest fork usec | Duration of the latest fork operation in microseconds |
DEPENDENT | redis.stats.latest_fork_usec Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | Redis: Migrate cached sockets | The number of sockets open for MIGRATE purposes |
DEPENDENT | redis.stats.migrate_cached_sockets Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub channels | Global number of pub/sub channels with client subscriptions |
DEPENDENT | redis.stats.pubsub_channels Preprocessing: - JSONPATH: |
| Redis | Redis: Pubsub patterns | Global number of pub/sub pattern with client subscriptions |
DEPENDENT | redis.stats.pubsub_patterns Preprocessing: - JSONPATH: |
| Redis | Redis: Rejected connections | Number of connections rejected because of maxclients limit |
DEPENDENT | redis.stats.rejected_connections Preprocessing: - JSONPATH: |
| Redis | Redis: Sync full | The number of full resyncs with replicas |
DEPENDENT | redis.stats.sync_full Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial err | The number of denied partial resync requests |
DEPENDENT | redis.stats.sync_partial_err Preprocessing: - JSONPATH: |
| Redis | Redis: Sync partial ok | The number of accepted partial resync requests |
DEPENDENT | redis.stats.sync_partial_ok Preprocessing: - JSONPATH: |
| Redis | Redis: Total commands processed | Total number of commands processed by the server |
DEPENDENT | redis.stats.total_commands_processed Preprocessing: - JSONPATH: |
| Redis | Redis: Total connections received | Total number of connections accepted by the server |
DEPENDENT | redis.stats.total_connections_received Preprocessing: - JSONPATH: |
| Redis | Redis: Total net input bytes | The total number of bytes read from the network |
DEPENDENT | redis.stats.total_net_input_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Total net output bytes | The total number of bytes written to the network |
DEPENDENT | redis.stats.total_net_output_bytes Preprocessing: - JSONPATH: |
| Redis | Redis: Max clients | Max number of connected clients at the same time. Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached". |
DEPENDENT | redis.config.maxclients Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | DB {#DB}: Average TTL | Average TTL |
DEPENDENT | redis.db.avg_ttl["{#DB}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
| Redis | DB {#DB}: Expires | Number of keys with an expiration |
DEPENDENT | redis.db.expires["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | DB {#DB}: Keys | Total number of keys |
DEPENDENT | redis.db.keys["{#DB}"] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF current size{#SINGLETON} | AOF current file size |
DEPENDENT | redis.persistence.aof_current_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF base size{#SINGLETON} | AOF file size on latest startup or rewrite |
DEPENDENT | redis.persistence.aof_base_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending rewrite{#SINGLETON} | Flag indicating an AOF rewrite operation will |
DEPENDENT | redis.persistence.aof_pending_rewrite[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF buffer length{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.persistence.aof_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF rewrite buffer length{#SINGLETON} | Size of the AOF rewrite buffer |
DEPENDENT | redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF pending background I/O fsync{#SINGLETON} | Number of fsync pending jobs in background I/O queue |
DEPENDENT | redis.persistence.aof_pending_bio_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF delayed fsync{#SINGLETON} | Delayed fsync counter |
DEPENDENT | redis.persistence.aof_delayed_fsync[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master host{#SINGLETON} | Host or IP address of the master |
DEPENDENT | redis.replication.master_host[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master port{#SINGLETON} | Master listening TCP port |
DEPENDENT | redis.replication.master_port[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Master link status{#SINGLETON} | Status of the link (up/down) |
DEPENDENT | redis.replication.master_link_status[{#SINGLETON}] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
| Redis | Redis: Master last I/O seconds ago{#SINGLETON} | Number of seconds since the last interaction with master |
DEPENDENT | redis.replication.master_last_io_seconds_ago[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Master sync in progress{#SINGLETON} | Indicate the master is syncing to the replica |
DEPENDENT | redis.replication.master_sync_in_progress[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave replication offset{#SINGLETON} | The replication offset of the replica instance |
DEPENDENT | redis.replication.slave_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | The priority of the instance as a candidate for failover |
DEPENDENT | redis.replication.slave_priority[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Slave priority{#SINGLETON} | Flag indicating if the replica is read-only |
DEPENDENT | redis.replication.slave_read_only[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes | Replication lag in bytes |
DEPENDENT | redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"] Preprocessing: - JAVASCRIPT: |
| Redis | Redis: Number of processes running | - |
ZABBIX_PASSIVE | proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Memory usage (rss) | Resident set size memory used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss] |
| Redis | Redis: Memory usage (vsize) | Virtual memory size used by process in bytes. |
ZABBIX_PASSIVE | proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize] |
| Redis | Redis: CPU utilization | Process CPU utilization percentage. |
ZABBIX_PASSIVE | proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"] |
| Redis | Redis: Executable path{#SINGLETON} | The path to the server's executable |
DEPENDENT | redis.server.executable[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Memory used peak %{#SINGLETON} | The percentage of used_memory_peak out of used_memory |
DEPENDENT | redis.memory.used_memory_peak_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Memory used overhead{#SINGLETON} | The sum in bytes of all overheads that the server allocated for managing its internal data structures |
DEPENDENT | redis.memory.used_memory_overhead[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used startup{#SINGLETON} | Initial amount of memory consumed by Redis at startup in bytes |
DEPENDENT | redis.memory.used_memory_startup[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset{#SINGLETON} | The size in bytes of the dataset |
DEPENDENT | redis.memory.used_memory_dataset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Memory used dataset %{#SINGLETON} | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) |
DEPENDENT | redis.memory.used_memory_dataset_perc[{#SINGLETON}] Preprocessing: - JSONPATH: - REGEX: |
| Redis | Redis: Total system memory{#SINGLETON} | The total amount of memory that the Redis host has |
DEPENDENT | redis.memory.total_system_memory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory{#SINGLETON} | Maximum amount of memory allocated to the Redisdb system |
DEPENDENT | redis.memory.maxmemory[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Max memory policy{#SINGLETON} | The value of the maxmemory-policy configuration directive |
DEPENDENT | redis.memory.maxmemory_policy[{#SINGLETON}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Redis | Redis: Active defrag running{#SINGLETON} | Flag indicating if active defragmentation is active |
DEPENDENT | redis.memory.active_defrag_running[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Lazyfree pending objects{#SINGLETON} | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) |
DEPENDENT | redis.memory.lazyfree_pending_objects[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: RDB last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last RDB save operation |
DEPENDENT | redis.persistence.rdb_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: AOF last CoW size{#SINGLETON} | The size in bytes of copy-on-write allocations during the last AOF rewrite operation |
DEPENDENT | redis.persistence.aof_last_cow_size[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Expired stale %{#SINGLETON} | DEPENDENT | redis.stats.expired_stale_perc[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Expired time cap reached count{#SINGLETON} | DEPENDENT | redis.stats.expired_time_cap_reached_count[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Slave expires tracked keys{#SINGLETON} | The number of keys tracked for expiry purposes (applicable only to writable replicas) |
DEPENDENT | redis.stats.slave_expires_tracked_keys[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag hits{#SINGLETON} | Number of value reallocations performed by active the defragmentation process |
DEPENDENT | redis.stats.active_defrag_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag misses{#SINGLETON} | Number of aborted value reallocations started by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key hits{#SINGLETON} | Number of keys that were actively defragmented |
DEPENDENT | redis.stats.active_defrag_key_hits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Active defrag key misses{#SINGLETON} | Number of keys that were skipped by the active defragmentation process |
DEPENDENT | redis.stats.active_defrag_key_misses[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Replication second offset{#SINGLETON} | Offset up to which replication IDs are accepted |
DEPENDENT | redis.replication.second_repl_offset[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Redis | Redis: Allocator active{#SINGLETON} | DEPENDENT | redis.memory.allocator_active[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator allocated{#SINGLETON} | DEPENDENT | redis.memory.allocator_allocated[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator resident{#SINGLETON} | DEPENDENT | redis.memory.allocator_resident[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory used scripts{#SINGLETON} | DEPENDENT | redis.memory.used_memory_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory number of cached scripts{#SINGLETON} | DEPENDENT | redis.memory.number_of_cached_scripts[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator fragmentation bytes{#SINGLETON} | DEPENDENT | redis.memory.allocator_frag_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator fragmentation ratio{#SINGLETON} | DEPENDENT | redis.memory.allocator_frag_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator RSS bytes{#SINGLETON} | DEPENDENT | redis.memory.allocator_rss_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Allocator RSS ratio{#SINGLETON} | DEPENDENT | redis.memory.allocator_rss_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory RSS overhead bytes{#SINGLETON} | DEPENDENT | redis.memory.rss_overhead_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory RSS overhead ratio{#SINGLETON} | DEPENDENT | redis.memory.rss_overhead_ratio[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory fragmentation bytes{#SINGLETON} | DEPENDENT | redis.memory.fragmentation_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory not counted for evict{#SINGLETON} | DEPENDENT | redis.memory.not_counted_for_evict[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory replication backlog{#SINGLETON} | DEPENDENT | redis.memory.replication_backlog[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory clients normal{#SINGLETON} | DEPENDENT | redis.memory.mem_clients_normal[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory clients slaves{#SINGLETON} | DEPENDENT | redis.memory.mem_clients_slaves[{#SINGLETON}] Preprocessing: - JSONPATH: |
|
| Redis | Redis: Memory AOF buffer{#SINGLETON} | Size of the AOF buffer |
DEPENDENT | redis.memory.mem_aof_buffer[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Redis: Get info | ZABBIX_PASSIVE | redis.info["{$REDIS.CONN.URI}"] | |
| Zabbix_raw_items | Redis: Get config | ZABBIX_PASSIVE | redis.config["{$REDIS.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Redis: Service is down | - |
{TEMPLATE_NAME:redis.ping["{$REDIS.CONN.URI}"].last()}=0 |
AVERAGE | Manual close: YES |
| Redis: Too many entries in the slowlog (over {$REDIS.SLOWLOG.COUNT.MAX.WARN} per second in 5m) | - |
{TEMPLATE_NAME:redis.slowlog.count["{$REDIS.CONN.URI}"].min(5m)}>{$REDIS.SLOWLOG.COUNT.MAX.WARN} |
INFO | |
| Redis: Total number of connected clients is too high (over {$REDIS.CLIENTS.PRC.MAX.WARN}% in 5m) | When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected. https://redis.io/topics/clients#maximum-number-of-clients |
{TEMPLATE_NAME:redis.clients.connected.min(5m)}/{TEMPLATE_NAME:redis.config.maxclients.last()}*100>{$REDIS.CLIENTS.PRC.MAX.WARN} |
WARNING | |
| Redis: Memory fragmentation ratio is too high (over {$REDIS.MEM.FRAG_RATIO.MAX.WARN} in 15m) | This ratio is an indication of memory mapping efficiency: — Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5. — Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM. Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable. https://redis.io/topics/memory-optimization |
{TEMPLATE_NAME:redis.memory.fragmentation_ratio.min(15m)}>{$REDIS.MEM.FRAG_RATIO.MAX.WARN} |
WARNING | |
| Redis: Last AOF write operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
{TEMPLATE_NAME:redis.persistence.aof_last_write_status.last()}=0 |
WARNING | |
| Redis: Last RDB save operation failed | Detailed information about persistence: https://redis.io/topics/persistence |
{TEMPLATE_NAME:redis.persistence.rdb_last_bgsave_status.last()}=0 |
WARNING | |
| Redis: Number of slaves has changed | Redis number of slaves has changed. Ack to close. |
{TEMPLATE_NAME:redis.replication.connected_slaves.diff()}=1 |
INFO | Manual close: YES |
| Redis: Replication role has changed (new role: {ITEM.VALUE}) | Redis replication role has changed. Ack to close. |
{TEMPLATE_NAME:redis.replication.role.diff()}=1 and {TEMPLATE_NAME:redis.replication.role.strlen()}>0 |
WARNING | Manual close: YES |
| Redis: Version has changed (new version: {ITEM.VALUE}) | Redis version has changed. Ack to close. |
{TEMPLATE_NAME:redis.server.redis_version.diff()}=1 and {TEMPLATE_NAME:redis.server.redis_version.strlen()}>0 |
INFO | Manual close: YES |
| Redis: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:redis.server.uptime.last()}<10m |
INFO | Manual close: YES |
| Redis: Connections are rejected | The number of connections has reached the value of "maxclients". https://redis.io/topics/clients |
{TEMPLATE_NAME:redis.stats.rejected_connections.last()}>0 |
HIGH | |
| Redis: Replication lag with master is too high (over {$REDIS.REPL.LAG.MAX.WARN} in 5m) | - |
{TEMPLATE_NAME:redis.replication.master_last_io_seconds_ago[{#SINGLETON}].min(5m)}>{$REDIS.REPL.LAG.MAX.WARN} |
WARNING | |
| Redis: Process is not running | - |
{TEMPLATE_NAME:proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"].last()}=0 |
HIGH | |
| Redis: Memory usage is too high (over {$REDIS.MEM.PUSED.MAX.WARN}% in 5m) | - |
{TEMPLATE_NAME:redis.memory.used_memory.last()}/{TEMPLATE_NAME:redis.memory.maxmemory[{#SINGLETON}].min(5m)}*100>{$REDIS.MEM.PUSED.MAX.WARN} |
WARNING | |
| Redis: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes |
{TEMPLATE_NAME:redis.info["{$REDIS.CONN.URI}"].nodata(30m)}=1 |
WARNING | Manual close: YES Depends on: - Redis: Service is down |
| Redis: Configuration has changed | Redis configuration has changed. Ack to close. |
{TEMPLATE_NAME:redis.config["{$REDIS.CONN.URI}"].diff()}=1 and {TEMPLATE_NAME:redis.config["{$REDIS.CONN.URI}"].strlen()}>0 |
INFO | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.