# Memcached by Zabbix agent 2 ## Overview This template is designed for the effortless deployment of Memcached 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: - Memcached 1.4, 1.5, 1.6 ## Configuration > Zabbix should be configured according to the instructions in the [Templates out of the box](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup Setup and configure zabbix-agent2 compiled with the Memcached monitoring [plugin](/go/plugins/memcached). Test availability: `zabbix_get -s memcached-host -k memcached.ping` ### Macros used |Name|Description|Default| |----|-----------|-------| |{$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.CONN.THROTTLED.MAX.WARN}|

Maximum number of throttled connections per second

|`1`| |{$MEMCACHED.CONN.QUEUED.MAX.WARN}|

Maximum number of queued connections per second

|`1`| |{$MEMCACHED.CONN.PRC.MAX.WARN}|

Maximum percentage of connected clients

|`80`| |{$MEMCACHED.MEM.PUSED.MAX.WARN}|

Maximum percentage of memory used

|`90`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Memcached: Get status||Zabbix agent|memcached.stats["{$MEMCACHED.CONN.URI}"]| |Memcached: Ping||Zabbix agent|memcached.ping["{$MEMCACHED.CONN.URI}"]

**Preprocessing**

| |Memcached: Max connections|

Max number of concurrent connections

|Dependent item|memcached.connections.max

**Preprocessing**

| |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 item|memcached.config.limit_maxbytes

**Preprocessing**

| |Memcached: CPU sys|

System CPU consumed by the Memcached server

|Dependent item|memcached.cpu.sys

**Preprocessing**

| |Memcached: CPU user|

User CPU consumed by the Memcached server

|Dependent item|memcached.cpu.user

**Preprocessing**

| |Memcached: Queued connections per second|

Number of times that memcached has hit its connections limit and disabled its listener

|Dependent item|memcached.connections.queued.rate

**Preprocessing**

| |Memcached: New connections per second|

Number of connections opened per second

|Dependent item|memcached.connections.rate

**Preprocessing**

| |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 item|memcached.connections.throttled.rate

**Preprocessing**

| |Memcached: Connection structures|

Number of connection structures allocated by the server

|Dependent item|memcached.connections.structures

**Preprocessing**

| |Memcached: Open connections|

The number of clients presently connected

|Dependent item|memcached.connections.current

**Preprocessing**

| |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 item|memcached.commands.flush.rate

**Preprocessing**

| |Memcached: Commands: GET per second|

Number of GET requests received by server per second.

|Dependent item|memcached.commands.get.rate

**Preprocessing**

| |Memcached: Commands: SET per second|

Number of SET requests received by server per second.

|Dependent item|memcached.commands.set.rate

**Preprocessing**

| |Memcached: Process id|

PID of the server process

|Dependent item|memcached.process_id

**Preprocessing**

| |Memcached: Memcached version|

Version of the Memcached server

|Dependent item|memcached.version

**Preprocessing**

| |Memcached: Uptime|

Number of seconds since Memcached server start

|Dependent item|memcached.uptime

**Preprocessing**

| |Memcached: Bytes used|

Current number of bytes used to store items.

|Dependent item|memcached.stats.bytes

**Preprocessing**

| |Memcached: Written bytes per second|

The network's read rate per second in B/sec

|Dependent item|memcached.stats.bytes_written.rate

**Preprocessing**

| |Memcached: Read bytes per second|

The network's read rate per second in B/sec

|Dependent item|memcached.stats.bytes_read.rate

**Preprocessing**

| |Memcached: Hits per second|

Number of successful GET requests (items requested and found) per second.

|Dependent item|memcached.stats.hits.rate

**Preprocessing**

| |Memcached: Misses per second|

Number of missed GET requests (items requested but not found) per second.

|Dependent item|memcached.stats.misses.rate

**Preprocessing**

| |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 item|memcached.stats.evictions.rate

**Preprocessing**

| |Memcached: New items per second|

Number of new items stored per second.

|Dependent item|memcached.stats.total_items.rate

**Preprocessing**

| |Memcached: Current number of items stored|

Current number of items stored by this instance.

|Dependent item|memcached.stats.curr_items

**Preprocessing**

| |Memcached: Threads|

Number of worker threads requested

|Dependent item|memcached.stats.threads

**Preprocessing**

| ### 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 any 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: 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|

The Memcached version has changed. Acknowledge to close the problem manually.

|`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`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)