# Squid SNMP ## Overview For Zabbix version: 6.2 and higher This template was tested on: - Squid, version 3.5.12 ## Setup > See [Zabbix template operation](https://www.zabbix.com/documentation/6.2/manual/config/templates_out_of_the_box/network_devices) for basic instructions. ### Setup Squid Enable SNMP support following [official documentation](https://wiki.squid-cache.org/Features/Snmp). Required parameters in squid.conf: ``` snmp_port acl snmp_community snmp_access allow ``` ### Setup Zabbix 1\. [Import](https://www.zabbix.com/documentation/6.2/manual/xml_export_import/templates) the template [template_app_squid_snmp.yaml](template_app_squid_snmp.yaml) into Zabbix. 2\. Set values for {$SQUID.SNMP.COMMUNITY}, {$SQUID.SNMP.PORT} and {$SQUID.HTTP.PORT} as configured in squid.conf. 3\. [Link](https://www.zabbix.com/documentation/6.2/manual/config/templates/linking) the imported template to a host with Squid. 4\. Add SNMPv2 interface to Squid host. Set **Port** as {$SQUID.SNMP.PORT} and **SNMP community** as {$SQUID.SNMP.COMMUNITY}. ## Zabbix configuration No specific Zabbix configuration is required. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$SQUID.FILE.DESC.WARN.MIN} |

The threshold for minimum number of available file descriptors

|`100` | |{$SQUID.HTTP.PORT} |

http_port configured in squid.conf (Default: 3128)

|`3128` | |{$SQUID.PAGE.FAULT.WARN} |

The threshold for sys page faults rate in percent of received HTTP requests

|`90` | |{$SQUID.SNMP.COMMUNITY} |

SNMP community allowed by ACL in squid.conf

|`public` | |{$SQUID.SNMP.PORT} |

snmp_port configured in squid.conf (Default: 3401)

|`3401` | ## Template links There are no template links in this template. ## Discovery rules ## Items collected |Group|Name|Description|Type|Key and additional info| |-----|----|-----------|----|---------------------| |Squid |Squid: Service ping |

-

|SIMPLE |net.tcp.service[tcp,,{$SQUID.HTTP.PORT}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `10m`

| |Squid |Squid: Uptime |

The Uptime of the cache in timeticks (in hundredths of a second) with preprocessing

|SNMP |squid[cacheUptime]

**Preprocessing**:

- MULTIPLIER: `0.01`

| |Squid |Squid: Version |

Cache Software Version

|SNMP |squid[cacheVersionId]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Squid |Squid: CPU usage |

The percentage use of the CPU

|SNMP |squid[cacheCpuUsage] | |Squid |Squid: Memory maximum resident size |

Maximum Resident Size

|SNMP |squid[cacheMaxResSize]

**Preprocessing**:

- MULTIPLIER: `1024`

| |Squid |Squid: Memory maximum cache size |

The value of the cache_mem parameter

|SNMP |squid[cacheMemMaxSize]

**Preprocessing**:

- MULTIPLIER: `1048576`

| |Squid |Squid: Memory cache usage |

Total accounted memory

|SNMP |squid[cacheMemUsage]

**Preprocessing**:

- MULTIPLIER: `1024`

| |Squid |Squid: Cache swap low water mark |

Cache Swap Low Water Mark

|SNMP |squid[cacheSwapLowWM] | |Squid |Squid: Cache swap high water mark |

Cache Swap High Water Mark

|SNMP |squid[cacheSwapHighWM] | |Squid |Squid: Cache swap directory size |

The total of the cache_dir space allocated

|SNMP |squid[cacheSwapMaxSize]

**Preprocessing**:

- MULTIPLIER: `1048576`

| |Squid |Squid: Cache swap current size |

Storage Swap Size

|SNMP |squid[cacheCurrentSwapSize] | |Squid |Squid: File descriptor count - current used |

Number of file descriptors in use

|SNMP |squid[cacheCurrentFileDescrCnt] | |Squid |Squid: File descriptor count - current maximum |

Highest number of file descriptors in use

|SNMP |squid[cacheCurrentFileDescrMax] | |Squid |Squid: File descriptor count - current reserved |

Reserved number of file descriptors

|SNMP |squid[cacheCurrentResFileDescrCnt] | |Squid |Squid: File descriptor count - current available |

Available number of file descriptors

|SNMP |squid[cacheCurrentUnusedFDescrCnt] | |Squid |Squid: Byte hit ratio per 1 minute |

Byte Hit Ratios

|SNMP |squid[cacheRequestByteRatio.1] | |Squid |Squid: Byte hit ratio per 5 minutes |

Byte Hit Ratios

|SNMP |squid[cacheRequestByteRatio.5] | |Squid |Squid: Byte hit ratio per 1 hour |

Byte Hit Ratios

|SNMP |squid[cacheRequestByteRatio.60] | |Squid |Squid: Request hit ratio per 1 minute |

Byte Hit Ratios

|SNMP |squid[cacheRequestHitRatio.1] | |Squid |Squid: Request hit ratio per 5 minutes |

Byte Hit Ratios

|SNMP |squid[cacheRequestHitRatio.5] | |Squid |Squid: Request hit ratio per 1 hour |

Byte Hit Ratios

|SNMP |squid[cacheRequestHitRatio.60] | |Squid |Squid: Sys page faults per second |

Page faults with physical I/O

|SNMP |squid[cacheSysPageFaults]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: HTTP requests received per second |

Number of HTTP requests received

|SNMP |squid[cacheProtoClientHttpRequests]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: HTTP traffic received per second |

Number of HTTP traffic received from clients

|SNMP |squid[cacheHttpInKb]

**Preprocessing**:

- MULTIPLIER: `1024`

- CHANGE_PER_SECOND

| |Squid |Squid: HTTP traffic sent per second |

Number of HTTP traffic sent to clients

|SNMP |squid[cacheHttpOutKb]

**Preprocessing**:

- MULTIPLIER: `1024`

- CHANGE_PER_SECOND

| |Squid |Squid: HTTP Hits sent from cache per second |

Number of HTTP Hits sent to clients from cache

|SNMP |squid[cacheHttpHits]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: HTTP Errors sent per second |

Number of HTTP Errors sent to clients

|SNMP |squid[cacheHttpErrors]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: ICP messages sent per second |

Number of ICP messages sent

|SNMP |squid[cacheIcpPktsSent]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: ICP messages received per second |

Number of ICP messages received

|SNMP |squid[cacheIcpPktsRecv]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: ICP traffic transmitted per second |

Number of ICP traffic transmitted

|SNMP |squid[cacheIcpKbSent]

**Preprocessing**:

- MULTIPLIER: `1024`

- CHANGE_PER_SECOND

| |Squid |Squid: ICP traffic received per second |

Number of ICP traffic received

|SNMP |squid[cacheIcpKbRecv]

**Preprocessing**:

- MULTIPLIER: `1024`

- CHANGE_PER_SECOND

| |Squid |Squid: DNS server requests per second |

Number of external dns server requests

|SNMP |squid[cacheDnsRequests]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: DNS server replies per second |

Number of external dns server replies

|SNMP |squid[cacheDnsReplies]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: FQDN cache requests per second |

Number of FQDN Cache requests

|SNMP |squid[cacheFqdnRequests]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: FQDN cache hits per second |

Number of FQDN Cache hits

|SNMP |squid[cacheFqdnHits]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: FQDN cache misses per second |

Number of FQDN Cache misses

|SNMP |squid[cacheFqdnMisses]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: IP cache requests per second |

Number of IP Cache requests

|SNMP |squid[cacheIpRequests]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: IP cache hits per second |

Number of IP Cache hits

|SNMP |squid[cacheIpHits]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: IP cache misses per second |

Number of IP Cache misses

|SNMP |squid[cacheIpMisses]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Squid |Squid: Objects count |

Number of objects stored by the cache

|SNMP |squid[cacheNumObjCount] | |Squid |Squid: Objects LRU expiration age |

Storage LRU Expiration Age

|SNMP |squid[cacheCurrentLRUExpiration]

**Preprocessing**:

- MULTIPLIER: `0.01`

| |Squid |Squid: Objects unlinkd requests |

Requests given to unlinkd

|SNMP |squid[cacheCurrentUnlinkRequests] | |Squid |Squid: HTTP all service time per 5 minutes |

HTTP all service time per 5 minutes

|SNMP |squid[cacheHttpAllSvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: HTTP all service time per hour |

HTTP all service time per hour

|SNMP |squid[cacheHttpAllSvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: HTTP miss service time per 5 minutes |

HTTP miss service time per 5 minutes

|SNMP |squid[cacheHttpMissSvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: HTTP miss service time per hour |

HTTP miss service time per hour

|SNMP |squid[cacheHttpMissSvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: HTTP hit service time per 5 minutes |

HTTP hit service time per 5 minutes

|SNMP |squid[cacheHttpHitSvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: HTTP hit service time per hour |

HTTP hit service time per hour

|SNMP |squid[cacheHttpHitSvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: ICP query service time per 5 minutes |

ICP query service time per 5 minutes

|SNMP |squid[cacheIcpQuerySvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: ICP query service time per hour |

ICP query service time per hour

|SNMP |squid[cacheIcpQuerySvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: ICP reply service time per 5 minutes |

ICP reply service time per 5 minutes

|SNMP |squid[cacheIcpReplySvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: ICP reply service time per hour |

ICP reply service time per hour

|SNMP |squid[cacheIcpReplySvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: DNS service time per 5 minutes |

DNS service time per 5 minutes

|SNMP |squid[cacheDnsSvcTime.5]

**Preprocessing**:

- MULTIPLIER: `0.001`

| |Squid |Squid: DNS service time per hour |

DNS service time per hour

|SNMP |squid[cacheDnsSvcTime.60]

**Preprocessing**:

- MULTIPLIER: `0.001`

| ## Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----|----|----| |Squid: Port {$SQUID.HTTP.PORT} is down |

-

|`last(/Squid SNMP/net.tcp.service[tcp,,{$SQUID.HTTP.PORT}])=0` |AVERAGE |

Manual close: YES

| |Squid: Squid has been restarted |

Uptime is less than 10 minutes

|`last(/Squid SNMP/squid[cacheUptime])<10m` |INFO |

Manual close: YES

| |Squid: Squid version has been changed |

Squid version has changed. Ack to close.

|`last(/Squid SNMP/squid[cacheVersionId],#1)<>last(/Squid SNMP/squid[cacheVersionId],#2) and length(last(/Squid SNMP/squid[cacheVersionId]))>0` |INFO |

Manual close: YES

| |Squid: Swap usage is more than low watermark |

-

|`last(/Squid SNMP/squid[cacheCurrentSwapSize])>last(/Squid SNMP/squid[cacheSwapLowWM])*last(/Squid SNMP/squid[cacheSwapMaxSize])/100` |WARNING | | |Squid: Swap usage is more than high watermark |

-

|`last(/Squid SNMP/squid[cacheCurrentSwapSize])>last(/Squid SNMP/squid[cacheSwapHighWM])*last(/Squid SNMP/squid[cacheSwapMaxSize])/100` |HIGH | | |Squid: Squid is running out of file descriptors |

-

|`last(/Squid SNMP/squid[cacheCurrentUnusedFDescrCnt])<{$SQUID.FILE.DESC.WARN.MIN}` |WARNING | | |Squid: High sys page faults rate |

-

|`avg(/Squid SNMP/squid[cacheSysPageFaults],5m)>avg(/Squid SNMP/squid[cacheProtoClientHttpRequests],5m)/100*{$SQUID.PAGE.FAULT.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](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/409339-discussion-thread-for-official-zabbix-template-squid).