Установка и настройка HAProxy в Linux

HAProxy — прокси-сервер для балансировки нагрузки TCP и HTTP приложений, методом распределения на несколько серверов.

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

sudo apt-get install haproxy

Для CentOS:

yum install haproxy

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

haproxy -v

Проверим будет ли он автоматически запускаться при включении системы, должно быть ENABLED=1 (в редакторе nano CTRL+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/default/haproxy

В CentOS просто выполним команду:

chkconfig haproxy on

Сделаем копию конфигурационного файла на всякий случай:

sudo cp /etc/haproxy/haproxy.cfg{,.original}

Откроем в редакторе основной конфигурационный файл:

sudo nano /etc/haproxy/haproxy.cfg

Приведу пример конфигурации:

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    contimeout     5000
    clitimeout     50000
    srvtimeout     50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
    retries 3
        
listen webfarm 0.0.0.0:80
    mode http
    stats enable
    stats uri /haproxy?stats
    stats auth user:password
    maxconn 5000
    balance roundrobin
    option httpclose
    option forwardfor
    server webserver01 192.168.88.50:80 check
    server webserver02 192.168.88.51:80 check

Параметр maxconn 5000 определяет максимальное количество одновременных соединений, 0 используется для снятия лимита, если не указывать то будет стандартно 2000.

Например чтобы использовать Apache2 на этой же локальной машине, изменим в /etc/apache2/ports.conf и /etc/apache2/sites-enabled/ конфигурационных фалйах номер его порта с 80 например на 81, а в /etc/haproxy/haproxy.cfg укажем:

server webserver01 0.0.0.0:81 check

Каждый раз после изменений конфигурации необходимо выполнять перезапуск:

sudo service apache2 restart
sudo service haproxy restart

На этом установка и основная настройка HAProxy завершена.

Установка Digium Asterisk GUI

Digium Asterisk GUI — web-интерфейс управления Asterisk.

Сегодня буду лепить его к Asterisk 11 на Ubuntu Server 14.04 LTS.
Переключимся сразу на root пользователя:

sudo -i

Скачаем его:

apt-get install subversion
mkdir -p ~/asterisk-gui
cd ~/asterisk-gui
svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0/

Скомпилируем и установим:

cd 2.0
./configure
make
make install

На всякий случай сделаем копию файлов конфигурации Asterisk:

cp -r /etc/asterisk /etc/asterisk.original

Откроем конфигурационный файл manager.conf например в редакторе nano (Ctrl+X для выхода из редактора, y/n для сохранения или отмены изменений):

nano /etc/asterisk/manager.conf

Основные параметры которые должны быть настроены в конфигурационном файле manager.conf:

[general]
enabled = yes
webenabled = yes
bindaddr = 0.0.0.0
[ИМЯ_ПОЛЬЗОВАТЕЛЯ]
secret = ПАРОЛЬ
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

В самом конце файла заменим обязательно символ # на ; иначе не сможете зайти под прописанным выше логином и паролем.

Теперь отредактируем http.conf:

nano /etc/asterisk/http.conf

В нем укажем следующие параметры веб сервера:

enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
prefix=asterisk

Выполним проверку настроек:

make checkconfig

Удалим пустую папку и укажем ссылку на реальную с файлами веб-сервера:

rmdir /usr/share/asterisk/static-http/
ln -s /var/lib/asterisk/static-http/ /usr/share/asterisk/

Перезапустим Asterisk:

/etc/init.d/asterisk restart

Теперь Digium Asterisk GUI должен открываться по ссылке http://192.168.56.102:8088/asterisk/static/config/index.html, где 192.168.56.102 это IP или домен севрера с Asterisk.

Для входа укажем логин и пароль прописанные ранее в файле manager.conf

Все.

Решение ошибки «Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/)»

Заметил как-то ошибку при выполнении apt-get install и прочих команд с apt-get:

Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Ошибку заметил на своём виртуальном тестовом Ubuntu Server, на котором я выполнял различные установки через apt-get install и в процессе выполнения пропало электричество, и установка не была завершена.

В моём случае после включения сервера установка продолжилась в фоновом режиме и естественно apt-get команды не принимались, по этому для решения ошибки лучший вариант — просто подождать, командой «top» можно заметить что продолжается процесс установки.
Также если включено автообоновление, то система может устанавливать их, в этом случае желательно подождать.

Если нет времени ждать, то можно разблокировать каталог командой:

sudo fuser -vki /var/lib/dpkg/lock

Вот и все.

Решение ошибки Postfix «mailbox_size_limit is smaller than message_size_limit»

Заметил как-то в логах следующую ошибку:

postfix/local[32288]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit

И вспомнил что увеличивал недавно в конфигурационном файле /etc/postfix/main.cf параметр message_size_limit, который указывает в байтах максимальный размер отправляемых и принимаемых писем.
Ошибка возникает из-за того что значение параметра message_size_limit больше чем значение mailbox_size_limit, а должно быть наоборот, кстати virtual_mailbox_limit в конфигурационном файле не указан, видимо если его не указать то стандартное значение равно 51200000 что в моём случае оказалось меньше message_size_limit.

Посмотрим указанное в конфигурационном файле значение mailbox_size_limit и virtual_mailbox_limit (-d показывает стандартное значение):

postconf -n | grep mailbox_size_limit
postconf -d | grep mailbox_size_limit
postconf -n | grep virtual_mailbox_limit
postconf -d | grep virtual_mailbox_limit

Посмотрим значение message_size_limit:

postconf -n | grep message_size_limit
postconf -d | grep message_size_limit

Укажем вручную в /etc/postfix/main.cf значения mailbox_size_limit и virtual_mailbox_limit чтобы они были больше message_size_limit, либо добавив к файлу командами ниже:

sudo postconf -e 'mailbox_size_limit = 102400000'
sudo postconf -e 'virtual_mailbox_limit = 102400000'

Либо можно отключить лимит вообще указав 0:

postconf -e 'mailbox_size_limit = 0'
postconf -e 'virtual_mailbox_limit = 0'

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

sudo /etc/init.d/postfix restart

Всё, ошибки не должно быть.

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

dhcping — утилита для проверки DHCP-севреров unicast пакетами.

В Ubuntu dhcping можно установить командой:

sudo apt-get install dhcping

Сначала посмотрим какие IP-адреса получены и от какого шлюза:

ifconfig
route
netstat -rn | grep default

Также посмотреть полученную информацию от DHCP можно в директории /var/lib/dhcp/.

В моём случае IP получен от DHCP сервера 10.0.2.2.
Приведу пример запуска dhcping:

dhcping -s 10.0.2.2

Если DHCP сервер отвечает, то отобразится информация:

Got answer from: 10.0.2.2

Если нет ответа:

no answer

Опишу ключи запуска dhcping:
-v (подробный режим)
-V (очень подробный режим)
-i (использовать DHCPINFORM пакеты)
-r (использовать DHCPREQUEST пакеты (стандартно))
-q (краткий режим)
-t maxwait (время ожидания ответа, стандартно 3 секунды)
-c IP (запросить указанный IP)
-s IP (послать запрос на указанный IP)
-h MAC (использовать указанный MAC-адрес в запросе)
-g IP (использовать в пакете указанный IP шлюза)

Решение ошибки «404 Not Found …» при обновлении старых версий Linux

Установил однажды Kubuntu 11.04, хотя для скачивания на официальном сайте уже была доступна версия 14.04, но под рукой не было других носителей, поэтому решил ставить старую и потом обновить.

Читать далее «Решение ошибки «404 Not Found …» при обновлении старых версий Linux»