Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/memcached?at=release/6.0
Memcached by Zabbix agent 2
Overview
For Zabbix version: 6.0 and higher
The template to monitor Memcached 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 Memcached by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
- Memcached, version 1.4, 1.5, 1.6
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Memcached monitoring plugin.
Test availability: zabbix_get -s memcached-host -k memcached.ping
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$MEMCACHED.CONN.PRC.MAX.WARN} | Maximum percentage of connected clients |
80 |
{$MEMCACHED.CONN.QUEUED.MAX.WARN} | Maximum number of queued connections per second |
1 |
{$MEMCACHED.CONN.THROTTLED.MAX.WARN} | Maximum number of throttled connections per second |
1 |
{$MEMCACHED.CONN.URI} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Plugins.Memcached.Uri" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:11211" |
tcp://localhost:11211 |
{$MEMCACHED.MEM.PUSED.MAX.WARN} | Maximum percentage of memory used |
90 |
Template links
There are no template links in this template.
Discovery rules
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Memcached | Memcached: Ping | ZABBIX_PASSIVE | memcached.ping["{$MEMCACHED.CONN.URI}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
Memcached | Memcached: Max connections | Max number of concurrent connections |
DEPENDENT | memcached.connections.max Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Memcached | Memcached: Maximum number of bytes | Maximum number of bytes allowed in cache. You can adjust this setting via a config file or the command line while starting your Memcached server. |
DEPENDENT | memcached.config.limit_maxbytes Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Memcached | Memcached: CPU sys | System CPU consumed by the Memcached server |
DEPENDENT | memcached.cpu.sys Preprocessing: - JSONPATH: |
Memcached | Memcached: CPU user | User CPU consumed by the Memcached server |
DEPENDENT | memcached.cpu.user Preprocessing: - JSONPATH: |
Memcached | Memcached: Queued connections per second | Number of times that memcached has hit its connections limit and disabled its listener |
DEPENDENT | memcached.connections.queued.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: New connections per second | Number of connections opened per second |
DEPENDENT | memcached.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Throttled connections | Number of times a client connection was throttled. When sending GETs in batch mode and the connection contains too many requests (limited by -R parameter) the connection might be throttled to prevent starvation. |
DEPENDENT | memcached.connections.throttled.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Connection structures | Number of connection structures allocated by the server |
DEPENDENT | memcached.connections.structures Preprocessing: - JSONPATH: |
Memcached | Memcached: Open connections | The number of clients presently connected |
DEPENDENT | memcached.connections.current Preprocessing: - JSONPATH: |
Memcached | Memcached: Commands: FLUSH per second | The flush_all command invalidates all items in the database. This operation incurs a performance penalty and shouldn't take place in production, so check your debug scripts. |
DEPENDENT | memcached.commands.flush.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Commands: GET per second | Number of GET requests received by server per second. |
DEPENDENT | memcached.commands.get.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Commands: SET per second | Number of SET requests received by server per second. |
DEPENDENT | memcached.commands.set.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Process id | PID of the server process |
DEPENDENT | memcached.process_id Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Memcached | Memcached: Memcached version | Version of the Memcached server |
DEPENDENT | memcached.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Memcached | Memcached: Uptime | Number of seconds since Memcached server start |
DEPENDENT | memcached.uptime Preprocessing: - JSONPATH: |
Memcached | Memcached: Bytes used | Current number of bytes used to store items. |
DEPENDENT | memcached.stats.bytes Preprocessing: - JSONPATH: |
Memcached | Memcached: Written bytes per second | The network's read rate per second in B/sec |
DEPENDENT | memcached.stats.bytes_written.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Read bytes per second | The network's read rate per second in B/sec |
DEPENDENT | memcached.stats.bytes_read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Hits per second | Number of successful GET requests (items requested and found) per second. |
DEPENDENT | memcached.stats.hits.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Misses per second | Number of missed GET requests (items requested but not found) per second. |
DEPENDENT | memcached.stats.misses.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Evictions per second | "An eviction is when an item that still has time to live is removed from the cache because a brand new item needs to be allocated. The item is selected with a pseudo-LRU mechanism. A high number of evictions coupled with a low hit rate means your application is setting a large number of keys that are never used again." |
DEPENDENT | memcached.stats.evictions.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: New items per second | Number of new items stored per second. |
DEPENDENT | memcached.stats.total_items.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
Memcached | Memcached: Current number of items stored | Current number of items stored by this instance. |
DEPENDENT | memcached.stats.curr_items Preprocessing: - JSONPATH: |
Memcached | Memcached: Threads | Number of worker threads requested |
DEPENDENT | memcached.stats.threads Preprocessing: - JSONPATH: |
Zabbix raw items | Memcached: Get status | ZABBIX_PASSIVE | memcached.stats["{$MEMCACHED.CONN.URI}"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Memcached: Service is down | - |
last(/Memcached by Zabbix agent 2/memcached.ping["{$MEMCACHED.CONN.URI}"])=0 |
AVERAGE | Manual close: YES |
Memcached: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes |
nodata(/Memcached by Zabbix agent 2/memcached.cpu.sys,30m)=1 |
WARNING | Manual close: YES Depends on: - Memcached: Service is down |
Memcached: Too many queued connections | The max number of connections is reached and a new connection had to wait in the queue as a result. |
min(/Memcached by Zabbix agent 2/memcached.connections.queued.rate,5m)>{$MEMCACHED.CONN.QUEUED.MAX.WARN} |
WARNING | |
Memcached: Too many throttled connections | Number of times a client connection was throttled is too high. When sending GETs in batch mode and the connection contains too many requests (limited by -R parameter) the connection might be throttled to prevent starvation. |
min(/Memcached by Zabbix agent 2/memcached.connections.throttled.rate,5m)>{$MEMCACHED.CONN.THROTTLED.MAX.WARN} |
WARNING | |
Memcached: Total number of connected clients is too high | When the number of connections reaches the value of the "max_connections" parameter, new connections will be rejected. |
min(/Memcached by Zabbix agent 2/memcached.connections.current,5m)/last(/Memcached by Zabbix agent 2/memcached.connections.max)*100>{$MEMCACHED.CONN.PRC.MAX.WARN} |
WARNING | |
Memcached: Version has changed | Memcached version has changed. Ack to close. |
last(/Memcached by Zabbix agent 2/memcached.version,#1)<>last(/Memcached by Zabbix agent 2/memcached.version,#2) and length(last(/Memcached by Zabbix agent 2/memcached.version))>0 |
INFO | Manual close: YES |
Memcached: has been restarted | Uptime is less than 10 minutes |
last(/Memcached by Zabbix agent 2/memcached.uptime)<10m |
INFO | Manual close: YES |
Memcached: Memory usage is too high | - |
min(/Memcached by Zabbix agent 2/memcached.stats.bytes,5m)/last(/Memcached by Zabbix agent 2/memcached.config.limit_maxbytes)*100>{$MEMCACHED.MEM.PUSED.MAX.WARN} |
WARNING |
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.