Изменение TX и RX буферов сетевых интерфейсов в Linux

Приведу пример изменения TX и RX буферов сетевых интерфейсов в Linux.
Сначала установим ethtool если он не установлен:

Читать далее «Изменение TX и RX буферов сетевых интерфейсов в Linux»

Мониторинг Linux ISG в Zabbix

Сегодня захотелось сделать мониторинг Linux ISG сессий в Zabbix.

Введя команду на одном из серверов:

/opt/ISG/bin/ISG.pl show_count

Увидел следующее:

Approved sessions count: 2021
Unapproved sessions count: 2

Zabbix агент на сервере уже был установлен, поэтому открыл его конфигурационный файл (в редакторе nano клавиши Ctrl+X для выхода, а y/n для сохранения или отмены изменений):

nano /etc/zabbix/zabbix_agentd.conf

Придумал и добавил следующий код:

UserParameter=isg.approved, /opt/ISG/bin/ISG.pl show_count | grep "Approved sessions count:" | awk '{print $4}'
UserParameter=isg.unapproved, /opt/ISG/bin/ISG.pl show_count | grep "Unapproved sessions count:" | awk '{print $4}'

Разрешим работу Zabbix агента под root пользователем указав:

AllowRoot=1

Перезапустим Zabbix агент чтобы применить изменения:

sudo /etc/init.d/zabbix-agent restart

На Zabbix сервере создадим шаблон ISG, добавим в него элементы данных, указав тип — Zabbix агент, а ключи: isg.approved, isg.unapproved.
Создадим графики для созданных элементов данных.

Применим шаблон к нужным узлам сети.

Готово.

Мониторинг Postfix в Zabbix

Сперва выполним настройку Zabbix агента.

Создадим файл (в редакторе nano клавиши Ctrl+X для выхода, а y/n для сохранения или отмены изменений):

nano /etc/zabbix/zabbix_agentd.d/userparameter_postfix.conf

Добавим в него:

UserParameter=postfix.maildrop, find /var/spool/postfix/maildrop -type f | wc -l
UserParameter=postfix.deferred, find /var/spool/postfix/deferred -type f | wc -l
UserParameter=postfix.incoming, find /var/spool/postfix/incoming -type f | wc -l
UserParameter=postfix.active, find /var/spool/postfix/active -type f | wc -l
UserParameter=postfix.queue, mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'

Либо можно просто добавить строки выше в файл конфигурации Zabbix агента.

Также откроем файл конфигурации Zabbix агента:

nano /etc/zabbix/zabbix_agentd.conf

Разрешим работу Zabbix агента под root пользователем указав:

AllowRoot=1

Перезапустим Zabbix агент чтобы применить изменения:

sudo /etc/init.d/zabbix-agent restart

Теперь перейдем к Zabbix серверу.
Создадим шаблон Postfix, добавим в него элементы данных, указав тип — Zabbix агент, а ключи: postfix.maildrop, postfix.deferred, postfix.incoming, postfix.active, postfix.queue.
Создадим графики для созданных элементов данных.

Также можно создать элемент данных считающий количество процессов Postfix, указав тип — Zabbix агент, а ключ:

proc.num[,postfix]

Также создадим триггер сообщающий когда процессов 0.

Скачать готовый шаблон можно тут — Zabbix шаблон для Postfix

Zabbix шаблон для Postfix

Размер: ~ 2Kb
Инфо: Экспортирован из Zabbix 3.2, также подойдет для других версий.
Инструкция: Мониторинг Postfix в Zabbix
Ссылка на скачивание: Скачать Template App Postfix

IPTables правила для MySQL

Если в iptables блокируются все входящие соединения (INPUT DROP) и чтобы открыть внешний доступ к MySQL необходимо добавить правила:

iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

Чтобы открыть доступ только конкретной сети, например 10.0.0.0/24:

iptables -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 3306 -j ACCEPT

Чтобы удалить правило укажем ту же команду, заменив -A на -D, например:

iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

Посмотреть список правил можно командой:

sudo iptables -nvL

Замечу, для того чтобы открыть внешний доступ, также нужно в конфигурационном файле my.cnf закомментировать строку «bind-address = 127.0.0.1».

Если по умолчанию INPUT ACCEPT, то сначала укажем с каких IP разрешен доступ, а только последним правилом заблокируем всем остальным:

/sbin/iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.5 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

Например используя nmap можно проверить локально и внешне фильтруется ли доступ:

nmap -p 3306 localhost
nmap -p 3306 192.168.1.5

Смотри также:
Настройка IPTables
Другие мои статьи о MySQL

Решение ошибки «md: kicking non-fresh sda1 from array»

Был когда-то случай, выпал из рейда один диск и при загрузке сервера в логах отображалось сообщение:

md: kicking non-fresh sda1 from array

Так как диск был не в рейде, то данные на нем устарели.
Прежде всего проверим диск на ошибки, например как я писал в статье указанной ниже, и попытаемся определить почему он был исключен из рейда.

В моем случае диск был полностью рабочий, поэтому посмотрев информацию о рейде:

cat /proc/mdstat
mdadm --detail /dev/md0

Вернул его обратно в рейд:

mdadm /dev/md0 -a /dev/sda1

Спустя некоторое время данные синхронизировались на диск и ошибка больше не появлялась.

Смотрите также:
Диагностика HDD используя smartmontools
mdadm — утилита управления программными RAID массивами
Решение проблемы с выпавшими дисками mdadm

Прошивка TP-LINK TL-WR840N V2 от Kyivstar

На тесте буду прошивать TP-LINK TL-WR840N V2 от Kyivstar
С установленной следующей версией прошивки:

Версия встроенного ПО:
3.16.9 Build 160829 Rel.55894n
Версия оборудования:
WR840N v2 00000000

Сначала необходимо попробовать прошить через TFTP.
Как запустить на компьютере TFTP сервер я описывал в этих статьях:
Запуск TFTP сервера на Windows
Установка и настройка TFTP сервера в Ubuntu

Скачиваем архив с прошивками отсюда:
https://files.ixnfo.com/Firmware/TP-Link/wr840nv2_tp_recovery.bin.zip
Файл wr840nv2_tp_recovery.bin помещаем в директорию TFTP сервера.
Назначим компьютеру именно этот IP-адерс — 192.168.0.66 и маску 255.255.255.0, соединим его с маршрутизатором через любой LAN-порт.
Выключим питание маршрутизатора, нажмем кнопку reset на задней стенке маршрутизатора и продолжая держать включим питания, засветится замочек, reset отпускаем.
Этим мы перевели его в режим восстановления, в котором он начнет пытаться загрузить файл wr840nv2_tp_recovery.bin с TFTP-сервера 192.168.0.66.
После успешной загрузки прошивки маршрутизатор сам перезагрузится и запустится с данной прошивкой.
Если обновление прошло успешно, то откроем в браузере веб интерфейс маршрутизатора набрав 192.168.0.1 (логин и пароль admin) и обновим прошивку файлом wr840nv2_ru_3_16_9_up_boot(150929).bin.
Смотрите также — Обновление прошивки маршрутизатора TP-Link TL-WR840N

Если маршрутизатор остался на прошивке от Kyivstar c IP адресом 192.168.1.1 (логин и пароль kyivstar), то остается второй вариант — выпаять микросхему памяти, подключить её к программатору, сохранить копию данных (dump) на всякий случай и записать другой dump:
https://files.ixnfo.com/Firmware/TP-Link/Dumps/wr840nv2_fulldump.zip
(заранее изменив в нем через HEX редактор на оригинальные — MAC (по адресу 1FC00) и PIN (по адресу 1FE00 )).
После этого обратно припаяем микросхему.

В моём случае маршрутизатор (с версией прошивки указанной в начале статьи) обновлялся по TFTP, но прошивка оставалась прежней от Kyivstar, поэтому пришлось воспользоваться программатором.
Однако ходят слухи что по TFTP можно прошить некоторые версии.

Смотрите также мои статьи:
Прошивка TP-LINK TL-WR741ND(KS) V2 от Kyivstar
Прошивка TP-LINK TL-WR741ND(KS) V4 от Kyivstar
Восстановление маршрутизатора TP-Link TL-WR740N

Установка и использование jnettop

jnettop — утилита для просмотра статистики трафика в реальном времени, с сортировкой по хостам/портам.

Команда установки в Ubuntu/Debian:

sudo apt-get install jnettop

Команда установки в CentOS:

sudo yum install jnettop

Пример простого запуска:

sudo jnettop

Пример запуска с указанием сетевого интерфейса:

sudo jnettop -i eth0

Опишу возможные опции запуска:
-h (справка)
-v (просмотр версии)
-c (отключить фильтрацию контента)
-d (записывать отладочную информацию в файл)
-f (чтение конфигурации из файла, если не указано, то файл ищется по пути ~/.jnettop)
-i (захватить пакеты с указанного интерфейса)
—local-aggr [none|host|port|host+port] (установить локальное агрегирование на указанное значение)
—remote-aggr [none|host|port|host+port] (установить удаленное агрегирование на указанное значение)
-n (не преобразовывать IP в DNS имена)
-p (включение неразборчивого режима, чтобы принимать все пакеты которые приходят на сетевой интерфейс)
-s (выбирает одно из правил, определенных в файле конфигурации .jnettop (по его имени))
-x (позволяет специфицировать правило пользовательской фильтрации. это позволяет использовать синтаксис стиля tcpdump. не забудьте включить фильтр в кавычки при запуске из оболочки)