null

commonName пользователя в отчетах Sarg

Начиная с версии 2.3 Sarg умеет искать информацию о пользователях в сетевом справочнике LDAP:

Jun-21-2010 Version 2.3
		- LDAP usertab added. 
		  Now you can have your users in a LDAP Server.
		  Use these tags in sarg.conf: LDAPHost, LDAPPort, LDAPBindDN, LDAPBindPW, LDAPBaseSearch, LDAPFilterSearch

Но такая замечательная функция переставет работать в том случае, когда журналы прокси-сервера содержат очень много записей: в процессе работы Sarg падает с ошибкой:

LDAP search failed: Can't contact LDAP server

Почему так получается и как работает этот LDAP usertab ? В log.c:main после определения всех переменных и разбора параметров чуть ли не самым первым реальным действием можно увидеть вызов:

init_usertab(UserTabFile);

Для для usertab=ldap это означает вызов ldap_init/ldap_simple_bind_s в usertab.c, т.е. соединение с LDAP сервером, после которого начинается вся работа с журналами. Если журналы содержат много данных, их обработка может занять достаточно длительное время и соединения с сервером может отвалиться по таймауту smiley. Завершив аггрегацию журналов, Sarg начинает искать для каждого пользователя его ФИО при помощи usertab.c:get_ldap_name. Вот тут-то он и получает ошибку:

LDAP search failed: Can't contact LDAP server

Исправить ошибку просто - необходимо устанавливать соединение с LDAP сервером после обработки журналов:

--- sarg-2.3.1/log.c    2010-09-15 14:57:30.000000000 +0400
+++ sarg-2.3.1.new/log.c        2011-07-19 16:53:58.000000000 +0400
@@ -745,8 +746,6 @@
    }
 #endif
 
-   init_usertab(UserTabFile);
-
    if ((line=longline_create())==NULL) {
       debuga(_("Not enough memory to read a log file\n"));
       exit(EXIT_FAILURE);
@@ -1663,6 +1666,8 @@
 
    sort_users_log(tmp, debug);
 
+   init_usertab(UserTabFile);
+
    if(DataFile[0] != '\0')
       data_file(tmp);
    else

Наверное разработчики не тестировали свой продукт на больших объемах данных ;-(

Вперед

Не делайте из еды культа!

Очень люблю готовить и вкусно покушать. А чтобы времени на эти увлекательные занятия оставалось как можно больше, я стараюсь автоматизировать любые задачи, которые оказываются в поле моей профессиональной деятельности.
В своем скромном дневнике я буду делиться с Вами рецептами блюд, которые удаются мне особенно хорошо