Показаны сообщения с ярлыком zabbix. Показать все сообщения
Показаны сообщения с ярлыком zabbix. Показать все сообщения

воскресенье, 26 апреля 2020 г.

nginx проксирование tcp/udp соединений

 nginx - это не только 10 килограммов веб серверов, но ещё и как все помним офигительный проксятник... Прилетела мне тут задачка - мониторить соединения которые стучатся на определённый tcp порт (а если понадобится, то и на udp)... Навскидку конечно можно проще простого - закрутить iptables с логированием да и делов, но вот nginx... Эта штука даёт куда больше воли в плане фантазии - к примеру редиректить соединения по условиям (скажем откуда кто пришёл, туда того и редиректить); можно прикрутить на 1 порт разнае редиректы/условия и т.д. и т.п. Но мне пока достаточно логировать соединения и в принципе на этом могу в последующем фигачить какие то графики (хочешь в модуле статистики самого nginx'a, хочешь прикручивай это дело к графане/zabbix и т.п.) и выстраивать какие то звонилки (а в некоторых случаях если угодно сразу банить козлов через прикрутку к fail2ban) в случае возникновения аномалий в работе тех или иных сервисов... Итак, собираю nginx...

sudo add-apt-repository -y ppa:nginx/development
sudo apt-get update
sudo apt-get install -y wget curl tmux unzip nginx

Далее создают конфиг для nginx'а (обычно пасутся /etc/nginx/conf.d или /etc/nginx/sites-[available/enabled])... примерно с таким содержанием (говорю же - мне пока достаточно...):

stream {

# Исключаем локальные (свои айпишники из логов)
map $remote_addr $log_ip {
"77.220.204.113" 0;
"77.220.204.114" 0;
default 1;
}


    upstream strange_web_server {
        server 10.20.20.10:8080;
    }

    upstream backup_server {
        server 10.20.20.11:22;
    }


# формат логов (если что необходимо, привинтить доп. переменные какие надо...
log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log /var/log/nginx/tcpproxy.log proxy if=$log_ip;
    error_log /var/log/nginx/error-tcpproxy.log;

# Собственно слушаем на определённом айпишнике, на определённом порту ну и проксируемс...
    server {
        proxy_connect_timeout 60s;
        listen 8.8.8.5:88;
        proxy_pass strange_web_server;
    }

    server {
        proxy_connect_timeout 60s;
        listen 8.8.8.5:7722;
        proxy_pass backup_server;
    }


}


За сим всё... :)

среда, 6 июня 2018 г.

Мониторинг состояния RAID массивов HP с помощью zabbix в linux

Проверка состояния HP raid (также состояния физических дисков, логических дисков, кэша raid, температуры физических дисков).
Протестировано на Ubuntu 16.04 и Debian 8.

Этот скрипт производит набор файлов, где вы можете найти текущее состояние дисков и RAID-контроллера.
Вы можете изменить пути в главном скрипте (см. вверху .py файла).

Также этот скрипт был создан для системы мониторинга zabbix и использует программу hpacucli
(пожалуйста, см. на сайте HP об этом).

По крайней мере, вам нужно установить на сервере программы python3 и hpacucli.



понедельник, 4 июня 2018 г.

Мониторинг температуры на процессоре с помощью zabbix

Если вдруг понадобится снимать показания температуры на процессоре, то я сделал так:

Скрипт для снятия показателей температуры

Сначала необходимо установить модуль для python3 - psutil:

apt install python3-pip
pip3 install psutil


воскресенье, 11 сентября 2016 г.

Настройка email оповещений в Zabbix

К сожалению Zabbix не умеет из коробки отправлять почту с использованием TLS. Как альтернатива - использовать скрипты для отправки почтовых сообщений. Пощёлкав по ссыллкам гугла я не нашёл рабочего варианта скрипта, который бы меня полностью удовлетворял. У меня стоит ubuntu 14.04 с установленным на него zabbix 2.2. Итак, что необходимо сделать:

1. Если есть sendmail, то снести его:

apt-get remove sendmail