Zabbix для мониторинга состояния tcp-соединений

В предыдущей записи я рассказывал как посредсвом zabbix настроить мониторинг nginx. В этой записи речь пойдет о состоянии tcp-соединений.

Вообщем-то отслеживать состояние tcp-соединений не всегда нужно, но иногда очень полезно, когда число оных переваливает за сотни.

Часть 1. Скрипт

Создадим файл ~/zabbix/scripts/tcp_status.sh с примерно таким содержанием (Версия 2.0, спасибо p2n):

#!/bin/bash

HOST=`/bin/hostname`
SERVER='zabbix.yourdomain.com'

/bin/ss -ant | awk "{if (NR>1) {state[\$1]++}} END {host = \"${HOST}\"; \
   for (i in state) {s=i; \
   sub (/ESTAB/, \"establ\", s); sub (/LISTEN/, \"listen\", s); sub (/SYN-SENT/, \"synsent\", s);  \
   sub (/SYN-RECV/, \"synrecv\", s); sub (/FIN-WAIT-1/, \"finw1\", s); sub (/FIN-WAIT-2/, \"finw2\", s); \
   sub (/CLOSE-WAIT/, \"closew\", s); sub (/TIME-WAIT/, \"timew\", s); print host, \"tcp.\"s, state[i]}}" \
   | ~/zabbix/bin/zabbix_sender --zabbix-server ${SERVER} -s ${HOST} --port '10051' -i - >/dev/null 2>&1
echo "1"
exit 0

Часть 2. Настройка агента

В Конфиг агента добавляем строку:

UserParameter=tcp.all,~/zabbix/scripts/tcp_status.sh

После чего перезапускаем:

/etc/init.d/zabbix-agent restart

Часть 3. Шаблон

Готовый шаблон с графиком и триггерами:

Образец графика:
tcp connections

5 комментариев “Zabbix для мониторинга состояния tcp-соединений”

Комментирование закрыто.