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;
}
}
За сим всё... :)
Показаны сообщения с ярлыком zabbix. Показать все сообщения
Показаны сообщения с ярлыком zabbix. Показать все сообщения
воскресенье, 26 апреля 2020 г.
среда, 6 июня 2018 г.
Мониторинг состояния RAID массивов HP с помощью zabbix в linux
Проверка состояния HP raid (также состояния физических дисков, логических дисков, кэша raid, температуры физических дисков).
Протестировано на Ubuntu 16.04 и Debian 8.
Этот скрипт производит набор файлов, где вы можете найти текущее состояние дисков и RAID-контроллера.
Вы можете изменить пути в главном скрипте (см. вверху .py файла).
Также этот скрипт был создан для системы мониторинга zabbix и использует программу hpacucli
(пожалуйста, см. на сайте HP об этом).
По крайней мере, вам нужно установить на сервере программы python3 и hpacucli.
Протестировано на 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
1. Если есть sendmail, то снести его:
apt-get remove sendmail
Подписаться на:
Сообщения (Atom)