English

Команды управления Qbalance


Содержание

  1. Групповые
  2. Протоколирование
  3. Запись в SQL базу.
  4. Сервер
  5. Отладка
  6. Статистика
  7. Прочие
  8. Примеры

Здесь используются :
X.X.X.X:XXX - идентификатор группы (Пример: balanсer:555 | 192.168.1.1:555 | :555 | 555 )
N.N.N.N:NNN - идентификатор сервера ( Пример: server1:556 | 192.168.2.1:556 )
  1. Групповые

    Параметры группы.

    ctmo время в секундах, отведенное на установление соединения с сервером. Если по истечении этого времени сервер не смог принять соединеие, он считается неактивным.
    ntmo тайм-аут(в секундах) на передачу данных. Если в течении этого времени, ни клиент ни сервер не передали ни одного байта друг другу, сетевое соединение прерывается принудительно.
    rtmo время (в секундах) ожидания до следующей попытки проверить состояние сервера, помеченного ранее неактивным.
    q_limitмаксимально количество входящих соединений от клиентов, ожидающих подключения к серверам. Этот параметр проявляется в момент, когда клиенты подключаются очень быстро, но сервера принять их не могут. В этот момент клиентские соединения не "зарегистрированы", и невозможно корректно вычислить параметры для балансировки. Т.е. q_limit - это величина максимальной ошибки(в клиентах) относительно "идеального" распределения клиентов по серверам.
        group  add      X.X.X.X:XXX ctmo ntmo rtmo q_limit	- добавить группу
        group  delete   X.X.X.X:XXX                		- удалить группу, завершить всех клиентов
        group  shutdown X.X.X.X:XXX                		- удалить группу, не завершать клиентов
        group  modify   X.X.X.X:XXX ctmo ntmo rtmo q_limit	- изменить параметры ( ctmo ntmo rtmo )
        group  clear    X.X.X.X:XXX                		- завершить всех клиентов, но не удалять группу.
        group  resolve  X.X.X.X:XXX on\off         		- включить\выключить резолвинг IP адресов в имена.
        group  method   X.X.X.X:XXX default                 - назначить группе метод обработки транзитного потока данных.
    	                                                  по умолчанию - прозрачная трансляция в обе стороны.
        group  checkmethod X.X.X.X:XXX default              - назначить группе метод тестированая доступности
    							  прикладных серверов. По умолчанию - простая проверка на "connect"
    							  до тех пор, пока сервер не станет доступен.
        group  checkmethod X.X.X.X:XXX none			- никакой проверки. Прикладной сервер считается всегда доступен.
        group  checkmethod X.X.X.X:XXX feedback             - периодический контроль доступности всегда.
        group  notifycmd   X.X.X.X:XXX "/path/to/notify/script" - команда оповещения о недоступности-доступности 
                             сервиса на севрере.  Команде передается 3 параметра - название группы, название сервера
    			 и новое состояние - up или down. 
    			 Реально исполняется команда "sh -c  /path/to/notify/script X.X.X.X:XXX N.N.N.N:NNN up | down" 
    	
  2. Протоколирование
        group  logstart   X.X.X.X:XXX "LOG statement"	- пишется в SYSLOG в момент установления соединения 
    							  с сервером.
        group  logstart   X.X.X.X:XXX none			- запретить писать в системный журнал при установлении 
    							  соединения
        group  logstop    X.X.X.X:XXX "LOG statement"	- пишется в SYSLOG в момент разрыва соединения.
        group  logstop    X.X.X.X:XXX none			- запретить писать в системный журнал при разрыве 
    							  соединения
    	
    Если не определено ни "logstart" ни "logstop", в системный журнал попадут только сообщения об ошибках.
  3. Запись в SQL базу
        group  logdbpath    X.X.X.X:XXX mysql://db_user:db_pwd@db_host:port/db_name
    	Если Вы указываете пароль в такой форме, учтите, что в пароле нельзя использовать символы ':' '/' '@'
    	Если же есть необходимость использовать такие символы, нужно пользоваться "group logdbpwd" командой.
        group  logdbmethod  X.X.X.X:XXX mysql
        group  logdbuser    X.X.X.X:XXX username
        group  logdbpwd     X.X.X.X:XXX password
        group  logdbhost    X.X.X.X:XXX hostname
        group  logdbport    X.X.X.X:XXX port
        group  logdbname    X.X.X.X:XXX db_name
        group  logdbstart   X.X.X.X:XXX "sql statement" - исполняется в момент установления соединения с сервером.
        group  logdbstart   X.X.X.X:XXX none - запретить ....
        group  logdbstop    X.X.X.X:XXX "sql statement" - исполняется в момент разрыва соединения.
        group  logdbstop    X.X.X.X:XXX none - запретить ....
    	
  4. Сервер
    Параметр "max_clients" определяет максимальное число клиентов которое можно подключить на данный сервер. В реальности, максимальное число клиентов может быть "max_clients + q_limit". Параметр "weight" играет роль "веса" в алгоритме распределения клиентов по нескольким серверам. Если параметр "weight" не указан, он считается равным "max_clients".
    	server add      X.X.X.X:XXX N.N.N.N:NNN max_clients weight- добавить сервер в группу
    	server delete   X.X.X.X:XXX N.N.N.N:NNN - удалить  сервер из группы, завершить 
    						   подчиненных клиентов
    	server shutdown X.X.X.X:XXX N.N.N.N:NNN - удалить  сервер из группы, не завершать 
    						     подчиненных клиентов
    	server modify   X.X.X.X:XXX N.N.N.N:NNN max_clients weight- изменить параметры
    	server clear    X.X.X.X:XXX N.N.N.N:NNN - завершить всех подчиненных клиентов для сервера.
    	
  5. Отладка
    Печать отадочной информации включается и отключается асинхронно, и независимо для разных алгоритмических блоков программы.
    	debug  config  on/off   - все, что связано с конфигурированием и контролем 
    	debug  mainloop on/off  - главный цикл 
    	debug  client on/off    - клиентский сеанс.
    	debug  checker on/off   - процедура проверки доступности серверов.
    	debug  srvselect on/off - алгоритм выбора сервера для данного клиента.
    	debug  all on/off       - все вместе.
    	
    Отладочная информация записывается в системный журнал.
    При переключении режимов печати отладочной информации checker или all,
    производится перезапуск вспомогательного процесса "checker".
  6. Статистика
    	show   config   - показать текущую конфигурацию.
    	show   gconfig  X.X.X.X:XXX  - показать конфигурацию для группы
    	show   sconfig  NNNNNNN  - показать конфигурацию по серверу NNNNNNN -
    	                           в том числе, для всех групп и портов. 
    	show   group    X.X.X.X:XXX  - показать статистику по группе
    	show   server   X.X.X.X:XXX N.N.N.N:NNN - показать статистику по серверу 
    	
  7. Прочие
    По умолчанию, все процессы работают от имени "Root".
    Для улучшения безопасности, предусмотрена возможность снижения прав и привилегий клиентского процесса. Снижение прав производится после установления соединения с прикладным сервером, но до начала обмена данными.
    	group username  X.X.X.X:XXX nobody	- сменить UID клиентского процесса
    	group groupname X.X.X.X:XXX nogroup	- сменить GID клиентского процесса
    	group chroot    X.X.X.X:XXX /path/to/chroot  -  Клиентский процесс должен 
    	                                       сделать "chroot" в указанный
    					       каталог перед  началом передачи 
    					       данных.
    
    	group resolve X.X.X.X:XXX on/off - включить\отключить определение символических
    	                                  имен (для IP адресов).
        	
  8. Примеры
    	group add www 5 60 120 5
    	    server add www 192.168.1.1:80 500 100
    	    server add www 192.168.1.2:80 500 100
    	    server add www 192.168.1.3:80 500 100
    	group resolve www off	
    	
    	group add 737 5 60 120 5
    	    server add 737 192.168.1.4:777 500 100
    	    server add 737 192.168.1.5:777 500 100 
    	    server add 737 192.168.1.6:777 500 100
    	group logstart 737 "connect from %a[%b]:%c to %j[%k]:%l"
    	group logstop  737 "disconnect %a[%b]:%c from %j[%k]:%l in=%I out=%O duration=%D"	
    	
    	group add 529 5 60 120 5
    	    server add 529 192.168.1.7:778 100 100
    	    server add 529 192.168.1.8:778 200 200
    	    server add 529 192.168.1.9:778 100 100
    	group logdbpath 529 mysql://balancer@localhost/seances
    	group logdbpwd  529 topsecret
        	group logdbstart 529 "INSERT INTO sessions VALUES ( '%S %H %P','%t',NULL, '%b','%c', '%k', '%l',0,0,'');"
    	group logdbstop  529 "UPDATE sessions SET t_stop='%t', bytesIN=%I, bytesOUT=%O, duration=%D where sessionID='%S %H %P';"
    	

© Виктор Фомичев

Last change:
Hosted by uCoz