Мониторинг количества сетевых соединений
При управлении высоконагруженными серверами, часто возникает потребность посмотреть количество одновременных соединений на определённый порт. Для этой цели можно использовать команду, с неблагозвучным для русского уха названием — ss.
К примеру, требуется посмотреть сколько всего соединений в текущий момент обслуживает наш вэб-сервер:
ss -o ‘( dport = :http or dport = :https )’
Команда выведет список построчно для каждого соединения:
user@www:~$ ss -o ‘( dport = :http or dport = :https )’
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp CLOSE-WAIT 1 0 192.168.1.1:39132 1.23.55.224:http
tcp CLOSE-WAIT 32 0 192.168.1.1:51710 1.1.160.66:https
tcp CLOSE-WAIT 1 0 192.168.1.1:39432 17.14.73.100:https
tcp CLOSE-WAIT 32 0 192.168.1.11:38528 7.2.101.10:https
Параметр dport может принимать как строчные значения так и цифровые. Остальные опции команды можно посмотреть вызвав её с ключом —help
Так как у нас в организации для контроля используется Zabbix, то будет логичным добавить туда эту проверку.
Для этого на вэб-сервере создадим файл userparameterhttpconnect.conf в каталоге /etc/zabbix/zabbix_agentd.d/
user@www:~# sudo cat > /etc/zabbix/zabbix_agentd.d/userparameter_http_connect.conf
UserParameter=http.connect.count,ss -o ‘( dport = :http or dport = :https )’ | wc -l
После требуется перезапустить агента:
user@www:~# sudo service zabbix_agent restart
Дальше необходимо добавить соответствующий параметр в настройках узла (или шаблона) через интерфейс управления zabbix.
На этом настройка данного параметра закончена. Если всё сделано правильно то через минуту можно будет увидеть данные о соединениях.
Следующим этапом следует настройка тригера для генерации «аварий» в целях оповещения персонала о, к примеру, ddos атаке или слишком большй нагрузке.
Для этого в настройках узла (шаблона) идём на вкладку «Тригеры» и создаём новый:
В данном случае тригер сгенерирует событие при достижении количества одновременных соединений больше 200. На этом настройка окончена.