Назад | Перейти на главную страницу

Демон Bacula Director не может аутентифицировать клиента Windows 7

Мой демон-директор размещен на машине ubuntu, а клиент - это машина с Windows 7. Обе машины находятся в одной подсети. У меня проблемы с аутентификацией между сервером и клиентом. Ошибка, которую я получаю на стороне сервера, выглядит следующим образом:

10-May 12:00 mydir-dir JobId 6395: Start Backup JobId 6395, Job=server-bkp.2013-05-10_12.00.00_13  
10-May 12:00 mydir-dir JobId 6395: Using Device "RAID_Device"    
10-May 12:00 mydir-dir JobId 0: Fatal error: Unable to authenticate with File daemon at "myserver.ip.address:9102". Possible causes:  
Passwords or names not the same or  
Maximum Concurrent Jobs exceeded on the FD or  
FD networking messed up (restart daemon).  
Please see http://www.bacula.org/en/rel-manual/Bacula_Freque_Asked_Questi.html#SECTION003760000000000000000 for help.  
*q  
root@cosmo:~# telnet my-client-hostname.domain 9102  
Trying myclient.ip.address...  
Connected to my-client-hostname.domain.  
Escape character is '^]'.  
^[^[  
Connection closed by foreign host.  

Мой файл bconsole.conf на клиентской машине Windows 7:

Director {
Name = mydir-dir
DIRport = 9101
address = mydir.domain
Password = "my_secret_password"
}

Мой файл bacula-fd.conf на клиенте выглядит следующим образом:

# Main Director
Director {
Name = mydir-dir
Password = "my_secret_password"
}


# File Daemon
FileDaemon {
Name = my-client-hostname-fd
FDport = 9102
WorkingDirectory = "C:\\Program Files\\Bacula\\working"
Pid Directory = "C:\\Program Files\\Bacula\\working"
Maximum Concurrent Jobs = 10
}

# Where to send messages.
Messages {
Name = Standard
director = mydir-dir = all, !skipped, !restored
}

Это то, что мой /etc/bacula/bacula-dir.conf на сервере показан ниже. Обратите внимание, что часть ненужной информации удалена.

# Main Director for backup control.
Director {
  Name = mydir-dir
  DIRport = 9101
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/home/bacula/bacula/working"
  PidDirectory = "/var/run/bacula"
  Password = "my_secret_password"
  Messages = Standard
}

# Restricted Director for monitoring.
Console {
  Name = mydir-mon
  Password = "my_other_password"
  CommandACL = status, .status
}

# Catalog within the MySQL database
Catalog {
  Name = MYDIR_Catalog
  DB Name = bacula
  DB Address = localhost
  user = "MY_USER_NAME"
  password = "MY_DB_PASSWORD"
}

# Storage to use for backup
Storage {
  Name = RAID_Storage 
  Password = "MY_SD_PASSWORD"
  Address = mydirhost.domain
  SDPort = 9103
  Device = RAID_Device
  Media Type = File
}


# Include client, job, schedule and fileset information
@/etc/bacula/clients/MY-CLIENT-HOSTNAME.conf

Наконец, ниже показан мой /etc/bacula/clients/MY-CLIENT-HOSTNAME.CONF. Опять же, некоторая ненужная информация опущена.

# Client information for my-client-hostname
Client {
  Name = my-client-hostname
  Password = "my_secret_password"
  Address = my-client-hostname.domain
  FDPort = 9102
  Catalog = MYDIR_Catalog
}

* Обратите внимание, что я использовал один и тот же «my_secret_password» во всех файлах.

Я проверил брандмауэр и аутентификацию через telnet, и, похоже, он работает нормально. Я буду фантастически рад, если кто-нибудь подскажет, что я делаю не так !!!

В сообщении об ошибке говорится:

Возможные причины:
Пароли или имена не то же самое или
Превышено максимальное количество одновременных заданий на FD или
Неисправность сети FD (перезапустите демон).

Конфигурация на вашем директоре:

# Client information for my-client-hostname
Client {
  Name = my-client-hostname
  Password = "my_secret_password"
  Address = my-client-hostname.domain
  FDPort = 9102
  Catalog = MYDIR_Catalog
}

Конфигурация вашего File Daemon:

....other stuff.....
# File Daemon
FileDaemon {
  Name = my-client-hostname-fd
  FDport = 9102
  WorkingDirectory = "C:\\Program Files\\Bacula\\working"
  Pid Directory = "C:\\Program Files\\Bacula\\working"
  Maximum Concurrent Jobs = 10
}
....more stuff.....

Так что, похоже, если вы не сделали ошибку при редактировании того, что не соответствует вашим именам.
(Не расстраивайтесь, я тоже не увидел этого в первый раз, когда просмотрел ваш вопрос, и сам потратил часы на подобные вещи!)

Я также работаю над инструментом резервного копирования клиента сервера bacula. Я действительно понял, что если ваш файловый демон новее, чем демон директора и хранилища, возникает эта ошибка. попробуйте получить версию bacula-fd 5.2, чтобы она была совместима с SD и директором! Надеюсь, поможет!

Я почти уверен, что видел нечто подобное. Если у вас была команда, запущенная как часть задания, которое выполняется на этом хосте (например, оператор «Клиент запускается перед заданием»), если эта команда приостановлена ​​или каким-то образом останавливается, она нарушает работу bacula, даже если вы перезапустите агент.

Если это в конечном итоге происходит, команда «перед заданием» наследует дескриптор прослушиваемого файла, на котором работает агент, и сохраняет его открытым. Если вы перезапустите bacula, Windows, похоже, никогда не позаботится о том, чтобы уже существовал процесс, привязанный к адресу прослушивания, который bacula должен прослушивать и запускать bacula.

Однако весь трафик, который вы отправляете в bacula, на самом деле получает случайная команда от старого экземпляра bacula, а не сама bacula.

Чтобы исправить это.

  • Остановите агент bacula на машине Windows.
  • Бегать netstat на хосте Windows и найдите все процессы, прослушивающие порт 9102.
  • Завершите эти процессы.
  • Запустите бакулу.

Другая проблема может заключаться в том, что у bacula исчерпано максимальное количество подключений, но в этом случае вы можете просто перезапустить агент, чтобы исправить это.

Немного старый вопрос, но, возможно, кто-то все еще ищет ответ. Это может быть проблема с брандмауэром Windows ... и я знаю, что вы уже сказали, что проверили брандмауэр. Я попробовал порты с telnet на моем ubuntu, и мне показалось, что он открыт, но это не сработало. После добавления правила Windows fw, разрешающего подключения к% ProgramFiles% \ Bacula \ bacula-fd.exe, директор начал аутентификацию. Так что я бы попробовал :)