![]() |
Добавить Архитектура Запросы сейчас Цифры и факты FAQ Кнопка поиска Сделать стартовой |
![]() |
Сервер внешних CA Knowledge Server -- themerd vs/1.0
Статус этого документа.
Этот документ описывает принципы работы, процедуру установки и настройки Сервера обслуживания внешних Crawler Agents (CA, находящихся вне зоны базовой системы) Knowledge Server (KS) поисковой системы системы Turtle. Документ предназначен для служебного использования. Документ подразумевает предварительное знакомство с протоколом обмена компонент поисковой системы Search System Transfer Protocol и должен рассматриваться в совокупности с ним.Copyright Notice
Copyright © Stack Technologies Ltd. (2001). All Rights Reserved.
Содержание.
1. Назначение. Основным назначением сервера KS является минимизация количества соединений внешних для системы Turtle агентов накопления CA с элементами AS и DS. Позволяет внешнему CA за одно соединение передать данные для сохранения на AS и получить информацию о новом объекте сканирования от DS. В этом смысле KS является прокси-сервером, транслирующим запрос во внутренние компоненты системы. Его задачей является проверка целостности данных и определение авторизационных параметров. Т.к. мы не можем контролировать настройки внешнего CA, то в функции KS входит извлечение лексем из текста документов согласно общим внутренним правилам системы Turtle. С этой точки зрения KS для формирователя индекса IS явлеятся аналогом внутреннего CA и управляется им посылкой внешних сигналов для ротации данных о лексемах и их последующей сортировки и извлечения. 2. Принципы работы. KS реализован как демон, принимающий по SSTP от внешних для системы CA только один тип запроса:
- 1. Назначение.
- 2. Принципы работы.
- 3. Установка.
- 4. Настройка и запуск.
- 5. Список параметров конфигурации.
- 6. Пример конфигурационного файла.
- REQ_PUT_URLFOLLOW
В качестве параметров CA сообщает информацию об объекте сканирования в виде совокупности полей:
- HEADER_URI_ID
- HEADER_SERVER_ID
- HEADER_SERVER_PROTOCOL
- HEADER_SERVER_NAME
- HEADER_SERVER_PORT
- HEADER_SERVER_BPS
- HEADER_URI
- HEADER_URI_TIME
- HEADER_ URL_CHECKTIME
- HEADER_URI_LEN
- HEADER_URI_FLAGS
- HEADER_URI_STATUS
- HEADER_CHARSET
- HEADER_BASELANG
- HEADER_LANGUAGES
- HEADER_TITLE
- HEADER_ESSENCE
Авторизация внешнего CA производится согласно данным параметров:
- HEADER_USER
- HEADER_PASSWORD
путем сличения их с введенными данными авторизации на центральном диспетчере DS.
Т.к. запрос CA кроме описания документа содержит в себе и сам компрессированный объект сканирования, то начало самого объекта KS распознает с помощью параметра HEADER_XCONTENT_LEN, определяющего длину компрессированного объекта. KS пытается раскомпрессировать полученный текст документа, определить его языковую принадлежность, разобрать на лексемы и сохранить полученные данные в файл. После этого KS передает полученные данные на AS и DS. От DS KS получает данные о новом объекте сканирования и транслирует их на внешний CA. В любой из моментов, если целостность данных или их внутренняя передача нарушены, KS разрывает соединение с внешним CA, что является для последнего сигналом к повторной попытке передачи данных сканирования на KS.
Сервер принимает и обслуживает следующие сигналы ОС:
- SIGHUP
- Запускает в фоновом режиме процесс ротации данных файла лексем и ротирует лог-файлы системы. Признаком окончания сортировки файла лексем будет являться появление файла tmp/ready.data.
- SIGTERM
- Немедленное прекращение выполнения программы.
- SIGUSR1
- Попытка завершения работы программы после обслуживания всех текущих запросов.
- SIGUSR2>
- Перечитывание и установка новых конфигурационных параметров сервера без его физической остановки.
Кроме того, при получении сигналов ошибки программы SIGBUS, SIGILL, SIGSEGV, SIGQUIT программа оставляет в домашней директории core файл и шлет сообщение администратору системы об ошибке в программе по SMTP на адрес, указанный в конфигурации. Посылка таких сообщений может быть запрещена в отладочных целях с помощью конфигурационного параметра sendmessages=0 (см. ниже). 3. Установка. Исходные тексты сервера находятся в дистрибутиве системы и собираются вместе с другими компонентами в работающую программу путем выполнения команды make в корне исходных текстов дистрибутивов. Для сборки отдельно только сервера KS необходимо:
cd /where_is_dist_home/src/lib make cd ../themer make themerd4. Настройка и запуск. Сервер запускается посредством команд:
cd /themer_home_dir /where_is_themer_prog/themerdЭту последовательность можно включить в файл начальной загрузки компьютера (например, /etc/rc.local), чтобы при перезагрузке компьютера сервер автоматически запускался на данной машине. Программа может быть запущена с ключом:
-c other_config_fileпри этом конфигурация запуска зачитывается из указанного файла. Если программа запускается без ключей, то конфигурационные параметры будут зачитываться из файла themer.cf в текущей директории. Этот файл следует подготовить с помощью редактора текстов до запуска серверной программы.
Правила оформления конфигурационного файла следующие:
5. Список параметров конфигурации. Ниже приведен список используемых конфигурационных параметров сервера AS и краткое их описание:
- Любая строка, начинающаяся с символа '#' считается комментарием.
- Комментарии также могут быть определены в той строке, в которой определен параметр, началом комментария считается символ '#'.
- Каждая строка файла определяет один параметр.
- Имя параметра отделяется от его значения с помощью символа '=' и произвольного количества space пробелов или символов табуляции.
- Имя параметра не зависит от регистра символов, значение параметров всегда регистрозависимое.
- Любой параметр может быть опущен в конфигурационном файле, при этом будет использовано значение по умолчанию.
- Порядок следования конфигурационных параметров не имеет значения.
6. Пример конфигурационного файла.
- rootdir = /some/directory
- Корневая директория сервера KS, относительно которой могут быть определены все остальные директории или имена файлов. Если имя файла начинается с символа '/', то считается, что в конфигурации указывается абсолютный путь к файлу, иначе считается, что имя файла будет определено относительно rootdir. Значение по умолчанию: /usr/local/turtle
- dispatchername = dispatcher-001.turtle.ru
- Каноническое Интернет имя или IP адрес сервера Dispatcher Server (DS), необходимо для зачитывания общих для поисковой системы конфигурационных параметров (например, списка разрешенных для соединения машин и пр.) Если общие конфигурационные параметры по каким-либо причинам не могут быть получены от DS (например, он просто не запущен), то будет произведена попытка зачитать их из локальных файлов конфигурации, определенных ниже. Значение по умолчанию: dispatcher-001.turtle.ru
- port = 3320
- Номер порта, по которому может быть произведено соединение с центральным диспетчером. Значение по умолчанию: 3320.
- themername = themer-001.turtle.ru
- Каноническое имя или IP адрес сервера, на котором запускается данная программа. Если компьютер имеет несколько имен и/или адресов, то принимать запросы он будет только при обращении к указанному в этом поле имени. Значение по умолчанию: themer-001.turtle.ru.
- themerport = 3322
- Номер порта, по которому данный сервер будет принимать SSTP запросы, и посылать ответы на них. Необходимо конфигурировать так это значение, чтобы оно не вступало в конфликт с другими компонентами поисковой системы или иными серверными программами, запущенными в пределах данного компьютера. Значение по умолчанию: 3322.
- progname = themerd
- Префикс для занесения учетных записей в журнал работы программы (logfile). Если различными компонентами системы используется общий журнал, то данный префикс позволит отличить записи данного сервера от других. Программное обеспечение также может быть откомпилировано с ключом компиляции -DUSE_SYSLOG. При этом записи будут производиться как в указанный logfile, так и используя syslog. При сборке пакета с ключом компиляции -DLOG_DAYTIME в журнал работы вместе с каждой записью будет занесено текущее время. По умолчанию, данная функция отключена. Значение по умолчанию: берется из имени запускаемой программы argv[0].
- logfile = logs/themer.log
- Имя файла журнала работы программы. Значение по умолчанию: logs/turtled.log
- pidfile = logs/themer.pid
- Имя файла, в котором будет помещен идентификатор процесса - его номер в таблице процессов системы. Полезен администратору для написания скриптов посылки сигналов программе (например, SIGHUP). Значение по умолчанию: logs/turtled.pid
- allowdb = conf/hosts.allow
- Имя файла локально разрешенных для обслуживания запросов внешних машин. Если при старте программе не удалось получить список шаблонов разрешенных для обслуживания машин от центрального диспетчера, то будет произведена попытка зачитать такие шаблоны из указанного в данном поле файла. Файл устроен так, что каждая строка содержит один шаблон, который оформляется так, как это используется в shell (например: 192.168.3.* или *.turtle.ru). Значение по умолчание: conf/hosts.allow.
- pwfile = conf/turtle.passwd
- Файл описания известных системе пользователей и их идентификационной информации при использовании базовой SSTP идентификации. Файл создается и редактируется с помощью программы turtle_passwd с различными ключами. В настоящий момент базовая SSTP идентификация в рамках взаимодействия QP и VS не производится, и данные этого файла используются только для идентификации при запросе статистики сервера по HTTP. Подразумевается, что VS находится за брандмауэром локальной сети и доступ к нему может быть осуществлен только QP по локальной сети. Содержание файла используется сервером, в случае если данные идентификации не могут быть получены от центрального диспетчера DS. Значение по умолчанию: conf/turtle.passwd.
- version = 1.1
- Текущая версия программного обеспечения. Поле носит информативный характер. В дальнейшем, значение этого поля планируется использовать для обеспечения программной совместимости компонент поисковой системы.
- maintainer = admin@e-mail.address
- Почтовый e-mail адрес администратора системы для посылки критических сообщений о работе программы.
- user = turtle
group = turtle- Имя и группа пользователя, от имени которого будет выполняться программа. Если программа запускается от имени суперпользователя, то ее привилегии будут изменены на указанные в этих полях привилегии из соображения безопасности для самой операционной системы. С использованием этих значений можно допускать автоматический запуск программы при рестарте компьютера, на котором установлен сервер VS. Значения по умолчанию: turtle/turtle.
- maxclients = 512
- Максимальное количество одновременно обслуживаемых запросов системой. Это значение не должно превышать максимального значения файловых дескрипторов, разрешенных операционной системой для данного пользователя. Если значение превышает максимально разрешенное, то оно будет уменьшено до правильного значения. Чрезмерное увеличение этого параметра без надобности может приводить к небольшой потере производительности. Уменьшение ниже требуемой величины приведет к отказу в обслуживании некоторых запросов. Рекомендованное значение 512. Значение по умолчанию: 8192.
- timeout = 300
- Интервал времени в секундах, спустя который будет производиться проверка кэш буфера на предмет удаления не используемых объектов. Значение по умолчанию: 300.
- readtimeout = 60
sendtimeout = 60- Таймауты системы для приема запросов и пересылки ответов от VS к QP. Если по истечению указанного периода в секундах запрос не удалось принять или ответ не удалось послать, то данное соединение закрывается.
- chroot = 0
- При запуске системы в целях безопасности программа может выполнить функцию chroot(). При этом, все содержимое каталогов, расположенных выше по дереву станет для программы недоступным. Текущей директорией и корнем станет директория, которая указана в параметре rootdir. Работоспособность данного параметра не проверялась, но особых препятствий не видно. Указанные действия осуществляются, если в данном поле определено значение, отличное от 0. Значение по умолчанию: 0.
- sendmessages = 1
- Данный параметр определяет посылать или нет сообщения по электронной почте администратору системы в случае критических ошибок.
- scanuser = user_name
scanpass = user_password- Имя пользователя и пароль, используемые для базовой SSTP идентификации при обращении к центральному диспетчеру. Подробнее см. SSTP/1.0. Значения данных полей будут посланы сервером VS центральному диспетчеру DS при запуске программы для получения общих конфигурационных параметров. Если со стороны диспетчера идентификация не будет произведена, то DS ответит кодом 403 FORBIDDEN. При этом VS попытается прочесть конфигурационные параметры из локальных файлов (см. выше).
- debuglevel = 40
- Уровень занесения информации в журнал работы (см src/include/turtle_defs.h). Самый низкий уровень D_CRIT (10) - в журнал будут записаны только сообщения о критических ошибках, самый высокий - D_PROTOCOL, при этом в журнал будет занесено очень много отладочной информации, включая протокол сетевого обмена. Рекомендуемое значение:40-50.
- sortcmd = bin/xsort -u +0 -1 +1n -2 +2n -3 +3n -4
- Вызов внешней программы сортировки данных лексем.
- lang = ru_SU.WINDOWS-1251
charset = WINDOWS-1251- Установки языка и кодовой страницы по умолчанию, если она не может быть определена для какого-либо документа.
- langfile = conf/languages.conf
- Конфигурация известных системе языков. Значение по умолчанию: conf/languages.conf
- lexfile = remote_data/lexemes
- Файл для сохранения лексем документов сканирования. Значение по умолчанию: logs/lexemes
- modifiedfile = remote_data/modified
- Файл для сохранения изменившихся в процессе сканирования ID документов. Значение по умолчанию: logs/modified
- lexemedb = base/lexeme.db
affixdb = base/affix.db- Словарные базы языков и морфологических форм.
- maxwordlen = 32
- Максимальная длина лексемы в байтах.
- minwordlen = 1
- Минимальная длина лексемы в байтах.
- stemiterations = 3
- Максимальное количество попыток узнать принадлежность слова к конкретному языку путем отрезания последних символов для нахождения псевдоосновы слова.
- maxdigits = 6
- Максимальное количество цифр в слове.
- useinvisable = 1
- Выводить в файл лексем невидимые на экране лексемы (1 - да, 0 - нет).
- usesublex = 1
- Выводить в файл лексем сублексемы (1 - да, 0 - нет).
- invisablesublex = 0
- Выводить в файл лексем невидимые сублексемы (1 - да, 0 - нет).
# # themer configuration file # rootdir = /home/turtle tmpdir = tmp dispatchername = dispatcher-001.turtle.ru port = 3320 themername = indexer-001.turtle.ru themerport = 3321 archname = archiver-001.turtle.ru archport = 3321 progname = mgu-100 lang = ru_SU.WINDOWS-1251 charset = WINDOWS-1251 version = 1.0 maintener = dvk@stack.net sortcmd = bin/xsort -u +0 -1 +1n -2 +2n -3 +3n -4 # langfile = conf/languages.conf logfile = logs/themer.log pidfile = logs/themer.pid lexfile = remote_data/lexemes modifiedfile = remote_data/modified # lexemedb = base/lexeme.db affixdb = base/affix.db # user = turtle group = turtle scanuser = indexer-001 scanpass = index001end # debuglevel = 80 maxclients = 1024 timeout = 300 readtimeout = 150 sendtimeout = 150 connectimeout = 5 chroot = 0 maxwordlen = 32 minwordlen = 1 stemiterations = 3 maxdigits = 6 useinvisable = 1 usesublex = 1 invisablesublex = 0
![]() |
![]() |
![]() | |
![]() |
![]() |
![]() |
![]() |
Черепаший Ранк. Реклама на Turtle Логотипы Правовая информация Конфиденциальность Контакты |
![]() |
![]() |
![]() ![]() ![]() |