# Squid by SNMP ## Overview This template is designed for the effortless deployment of Squid monitoring by Zabbix via SNMP and doesn't require any external scripts. ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - Squid 3.5.12 ## 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 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/7.0/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/7.0/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}. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$SQUID.SNMP.PORT}|

snmp_port configured in squid.conf (Default: 3401)

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

http_port configured in squid.conf (Default: 3128)

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

SNMP community allowed by ACL in squid.conf

|`public`| |{$SQUID.FILE.DESC.WARN.MIN}|

The threshold for minimum number of available file descriptors

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

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

|`90`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Squid: Service ping||Simple check|net.tcp.service[tcp,,{$SQUID.HTTP.PORT}]

**Preprocessing**

  • Discard unchanged with heartbeat: `10m`

| |Squid: Uptime|

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

|SNMP agent|squid[cacheUptime]

**Preprocessing**

  • Custom multiplier: `0.01`

| |Squid: Version|

Cache Software Version

|SNMP agent|squid[cacheVersionId]

**Preprocessing**

  • Discard unchanged with heartbeat: `6h`

| |Squid: CPU usage|

The percentage use of the CPU

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

Maximum Resident Size

|SNMP agent|squid[cacheMaxResSize]

**Preprocessing**

  • Custom multiplier: `1024`

| |Squid: Memory maximum cache size|

The value of the cache_mem parameter

|SNMP agent|squid[cacheMemMaxSize]

**Preprocessing**

  • Custom multiplier: `1048576`

| |Squid: Memory cache usage|

Total accounted memory

|SNMP agent|squid[cacheMemUsage]

**Preprocessing**

  • Custom multiplier: `1024`

| |Squid: Cache swap low water mark|

Cache Swap Low Water Mark

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

Cache Swap High Water Mark

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

The total of the cache_dir space allocated

|SNMP agent|squid[cacheSwapMaxSize]

**Preprocessing**

  • Custom multiplier: `1048576`

| |Squid: Cache swap current size|

Storage Swap Size

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

Number of file descriptors in use

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

Highest number of file descriptors in use

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

Reserved number of file descriptors

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

Available number of file descriptors

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

Byte Hit Ratios

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

Byte Hit Ratios

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

Byte Hit Ratios

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

Byte Hit Ratios

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

Byte Hit Ratios

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

Byte Hit Ratios

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

Page faults with physical I/O

|SNMP agent|squid[cacheSysPageFaults]

**Preprocessing**

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

Number of HTTP requests received

|SNMP agent|squid[cacheProtoClientHttpRequests]

**Preprocessing**

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

Number of HTTP traffic received from clients

|SNMP agent|squid[cacheHttpInKb]

**Preprocessing**

  • Custom multiplier: `1024`

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

Number of HTTP traffic sent to clients

|SNMP agent|squid[cacheHttpOutKb]

**Preprocessing**

  • Custom multiplier: `1024`

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

Number of HTTP Hits sent to clients from cache

|SNMP agent|squid[cacheHttpHits]

**Preprocessing**

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

Number of HTTP Errors sent to clients

|SNMP agent|squid[cacheHttpErrors]

**Preprocessing**

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

Number of ICP messages sent

|SNMP agent|squid[cacheIcpPktsSent]

**Preprocessing**

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

Number of ICP messages received

|SNMP agent|squid[cacheIcpPktsRecv]

**Preprocessing**

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

Number of ICP traffic transmitted

|SNMP agent|squid[cacheIcpKbSent]

**Preprocessing**

  • Custom multiplier: `1024`

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

Number of ICP traffic received

|SNMP agent|squid[cacheIcpKbRecv]

**Preprocessing**

  • Custom multiplier: `1024`

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

Number of external dns server requests

|SNMP agent|squid[cacheDnsRequests]

**Preprocessing**

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

Number of external dns server replies

|SNMP agent|squid[cacheDnsReplies]

**Preprocessing**

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

Number of FQDN Cache requests

|SNMP agent|squid[cacheFqdnRequests]

**Preprocessing**

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

Number of FQDN Cache hits

|SNMP agent|squid[cacheFqdnHits]

**Preprocessing**

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

Number of FQDN Cache misses

|SNMP agent|squid[cacheFqdnMisses]

**Preprocessing**

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

Number of IP Cache requests

|SNMP agent|squid[cacheIpRequests]

**Preprocessing**

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

Number of IP Cache hits

|SNMP agent|squid[cacheIpHits]

**Preprocessing**

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

Number of IP Cache misses

|SNMP agent|squid[cacheIpMisses]

**Preprocessing**

  • Change per second
| |Squid: Objects count|

Number of objects stored by the cache

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

Storage LRU Expiration Age

|SNMP agent|squid[cacheCurrentLRUExpiration]

**Preprocessing**

  • Custom multiplier: `0.01`

| |Squid: Objects unlinkd requests|

Requests given to unlinkd

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

HTTP all service time per 5 minutes

|SNMP agent|squid[cacheHttpAllSvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: HTTP all service time per hour|

HTTP all service time per hour

|SNMP agent|squid[cacheHttpAllSvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

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

HTTP miss service time per 5 minutes

|SNMP agent|squid[cacheHttpMissSvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: HTTP miss service time per hour|

HTTP miss service time per hour

|SNMP agent|squid[cacheHttpMissSvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

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

HTTP hit service time per 5 minutes

|SNMP agent|squid[cacheHttpHitSvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: HTTP hit service time per hour|

HTTP hit service time per hour

|SNMP agent|squid[cacheHttpHitSvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

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

ICP query service time per 5 minutes

|SNMP agent|squid[cacheIcpQuerySvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: ICP query service time per hour|

ICP query service time per hour

|SNMP agent|squid[cacheIcpQuerySvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

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

ICP reply service time per 5 minutes

|SNMP agent|squid[cacheIcpReplySvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: ICP reply service time per hour|

ICP reply service time per hour

|SNMP agent|squid[cacheIcpReplySvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: DNS service time per 5 minutes|

DNS service time per 5 minutes

|SNMP agent|squid[cacheDnsSvcTime.5]

**Preprocessing**

  • Custom multiplier: `0.001`

| |Squid: DNS service time per hour|

DNS service time per hour

|SNMP agent|squid[cacheDnsSvcTime.60]

**Preprocessing**

  • Custom multiplier: `0.001`

| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Squid: Port {$SQUID.HTTP.PORT} is down||`last(/Squid by 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 by SNMP/squid[cacheUptime])<10m`|Info|**Manual close**: Yes| |Squid: Squid version has been changed|

Squid version has changed. Acknowledge to close the problem manually.

|`last(/Squid by SNMP/squid[cacheVersionId],#1)<>last(/Squid by SNMP/squid[cacheVersionId],#2) and length(last(/Squid by SNMP/squid[cacheVersionId]))>0`|Info|**Manual close**: Yes| |Squid: Swap usage is more than low watermark||`last(/Squid by SNMP/squid[cacheCurrentSwapSize])>last(/Squid by SNMP/squid[cacheSwapLowWM])*last(/Squid by SNMP/squid[cacheSwapMaxSize])/100`|Warning|| |Squid: Swap usage is more than high watermark||`last(/Squid by SNMP/squid[cacheCurrentSwapSize])>last(/Squid by SNMP/squid[cacheSwapHighWM])*last(/Squid by SNMP/squid[cacheSwapMaxSize])/100`|High|| |Squid: Squid is running out of file descriptors||`last(/Squid by SNMP/squid[cacheCurrentUnusedFDescrCnt])<{$SQUID.FILE.DESC.WARN.MIN}`|Warning|| |Squid: High sys page faults rate||`avg(/Squid by SNMP/squid[cacheSysPageFaults],5m)>avg(/Squid by SNMP/squid[cacheProtoClientHttpRequests],5m)/100*{$SQUID.PAGE.FAULT.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)