Quantcast
Channel: Zimbra Forums
Viewing all articles
Browse latest Browse all 1140

Русский язык-фор • Проблема с LDAP или Попытка перенести базы из сломанной зимбры в старую, но рабочую версию

$
0
0
Добрый день, уважаемые форумчане! Пожалуйста, помогите решить проблему с Zimbra. Вы моя последняя надежда после более чем двух недель тщетных попыток восстановить работу сервиса. Я был бы очень признателен за любую помощь! Спасибо.
Имеем:
  • Сервер Ubuntu 16.04.3LTS
    ZCS 8.7.11.GA.1854.UBUNTU16.64 UBUNTU16_64 FOSS edition
    Старый (2020 года) снапшот с рабочей версией Zimbra
    Новый (2025 года) снапшот со сломанной версией Zimbra
Проблема
К сожалению, в начале года с Zimbra случилось нечто ужасное, и я не смогу объяснить точно, что конкретно произошло. В нашей серверной были неполадки с электропитанием. Кроме того, закончился срок действия TLS-сертификата Zimbra и были предприняты попытки пересоздать его при помощи certbot и acme.sh. Также закончился срок действия Zimbra Collaboration Suite, и все это произошло в один момент. Возможно, какая-то из этих причин стала фатальной для Zimbra, а возможно и их комбинация.
Все началось с того, что письма перестали ходить наружу (только в локальной сети). После этого я обнаружил, что закончился срок действия сертификата, после чего я предпринял несколько неудачных попыток пересоздать его с помощью перечисленных выше сервисов. В этот момент я обнаружил также, что пропало все содержимое каталога /opt/zimbra/bin. Я запустил ./install.sh для регенерации системы, но, к сожалению, стало только хуже. Теперь система больше не запускается, а я получаю ошибку:

Code:

zimbra@zimbra:~$ zmcontrol statusConnect: Unable to determine enabled services from ldap.Unable to determine enabled services. Cache is out of date or doesn't exist.
И еще характерная ошибка:

Code:

zimbra@zimbra:~$ zmprov -l gaa | xargs -I {} zmprov ga {}[] INFO: master is down, falling back to replica...[] FATAL: failed to initialize LDAP clientcom.zimbra.cs.ldap.LdapException: LDAP error: : An error occurred while attempting to connect to server localhost:389:  java.io.IOException: An error occurred while attempting to establish a connection to server localhost:389:  java.net.ConnectException: Connection refused (Connection refused)ExceptionId:main:1738261831655:71b2b3932a3c9b02Code:ldap.LDAP_ERROR        at com.zimbra.cs.ldap.LdapException.LDAP_ERROR(LdapException.java:90)        at com.zimbra.cs.ldap.unboundid.UBIDLdapException.mapToLdapException(UBIDLdapException.java:74)        at com.zimbra.cs.ldap.unboundid.UBIDLdapException.mapToLdapException(UBIDLdapException.java:40)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnPool(LdapConnectionPool.java:117)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnectionPool(LdapConnectionPool.java:63)        at com.zimbra.cs.ldap.unboundid.UBIDLdapContext.init(UBIDLdapContext.java:111)        at com.zimbra.cs.ldap.unboundid.UBIDLdapClient.init(UBIDLdapClient.java:39)        at com.zimbra.cs.ldap.LdapClient.getInstanceIfLDAPavailable(LdapClient.java:62)        at com.zimbra.cs.ldap.LdapClient.getInstance(LdapClient.java:69)        at com.zimbra.cs.ldap.LdapClient.initialize(LdapClient.java:94)        at com.zimbra.cs.account.ldap.LdapProv.<init>(LdapProv.java:47)        at com.zimbra.cs.account.ldap.LdapProvisioning.<init>(LdapProvisioning.java:279)        at com.zimbra.cs.account.ldap.LdapProvisioning.<init>(LdapProvisioning.java:276)        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)        at java.lang.Class.newInstance(Class.java:442)        at com.zimbra.cs.account.Provisioning.getInstance(Provisioning.java:287)        at com.zimbra.cs.account.Provisioning.getInstance(Provisioning.java:244)        at com.zimbra.cs.account.ProvUtil.initProvisioning(ProvUtil.java:1004)        at com.zimbra.cs.account.ProvUtil.main(ProvUtil.java:3955)Caused by: LDAPException(resultCode=91 (connect error), errorMessage='An error occurred while attempting to connect to server localhost:389:  java.io.IOException: An error occurred while attempting to establish a connection to server localhost:389:  java.net.ConnectException: Connection refused (Connection refused)')        at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:754)        at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:686)        at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:518)        at com.unboundid.ldap.sdk.SingleServerSet.getConnection(SingleServerSet.java:229)        at com.unboundid.ldap.sdk.ServerSet.getConnection(ServerSet.java:98)        at com.unboundid.ldap.sdk.LDAPConnectionPool.createConnection(LDAPConnectionPool.java:938)        at com.unboundid.ldap.sdk.LDAPConnectionPool.<init>(LDAPConnectionPool.java:876)        at com.unboundid.ldap.sdk.LDAPConnectionPool.<init>(LDAPConnectionPool.java:779)        at com.unboundid.ldap.sdk.LDAPConnectionPool.<init>(LDAPConnectionPool.java:726)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnPool(LdapConnectionPool.java:114)        ... 18 moreCaused by: java.io.IOException: An error occurred while attempting to establish a connection to server localhost:389:  java.net.ConnectException: Connection refused (Connection refused)        at com.unboundid.ldap.sdk.LDAPConnectionInternals.<init>(LDAPConnectionInternals.java:137)        at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:744)        ... 27 more
При этом отдельно (через команду ldap start) сервис запускается.
На этом этапе я сравнил конфигурацию старой рабочей Zimbra 2020 года [вложение 2020-old-n-working-conf.txt] со свежей поломанной Zimbra [вложение 2025-new-n-broken-conf.txt] и выяснил, что большинство переменных, в том числе связанных с ldap и mysql (а большинство ошибок связано как раз с этими сервисами) отличаются, в том числе пароли. Я думаю, что проблема связана в том числе и с этим фактом, однако не знаю, как это чинить. Я обновил сертификаты, починил права доступа с помощью zmfixperms, и даже попытался импортировать весь вывод zmlocalconfig -s из старой версии Zimbra в новую, но все равно продолжил сталкиваться с ошибкой запуска программы (возможно, нужно было сделать что-то еще).
Сломанная Zimbra не дает мне поменять пароль от ldap_root_password через команду (хотя, вроде бы, этот пароль хранится в открытом виде):

Code:

zimbra@zimbra:~$ zmldappasswd -r new_root_passUpdating local config and LDAPconnect: Connection refused at /opt/zimbra/bin/zmldappasswd line 101, <DATA> line 755.
Попытка импортировать базы
В какой-то момент я оставил попытки починить того монстра, которого отчасти создал сам, и решил попробовать перенести базы mysql и ldap из сломанной Zimbra в старую и рабочую ее версию.
Интересно, что в дампы mysql-базы были получены успешно. Я перенес их и развернул на старой Zimbra и, к моему удивлению, система запустилась. Однако пользователи в панели администратора остались старые. Вероятно, это связано с тем, что я не перенес ldap. Тогда я предпринял попытку перенести /opt/zimbra/data/ldap из новой системы в старую с помощью rsync, и на этот раз все закончилось неудачей:

Code:

zimbra@zimbra:~$ zmcontrol startHost zimbra.newinfosec.ru        Starting ldap...Done.Search error: Unable to determine enabled services from ldap.Enabled services read from cache. Service list may be inaccurate.        Starting zmconfigd...Failed.Starting zmconfigd...failed.        Starting logger...Failed.Starting logswatch...[] INFO: master is down, falling back to replica...[] FATAL: failed to initialize LDAP clientcom.zimbra.cs.ldap.LdapException: LDAP error: : invalid credentialsExceptionId:main:1739209164041:22eb43355ffc9535Code:ldap.LDAP_ERROR        at com.zimbra.cs.ldap.LdapException.LDAP_ERROR(LdapException.java:90)        at com.zimbra.cs.ldap.unboundid.UBIDLdapException.mapToLdapException(UBI                                                                                        DLdapException.java:74)        at com.zimbra.cs.ldap.unboundid.UBIDLdapException.mapToLdapException(UBI                                                                                        DLdapException.java:40)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnPool(LdapCo                                                                                        nnectionPool.java:117)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnectionPool(                                                                                        LdapConnectionPool.java:63)        at com.zimbra.cs.ldap.unboundid.UBIDLdapContext.init(UBIDLdapContext.jav                                                                                        a:111)        at com.zimbra.cs.ldap.unboundid.UBIDLdapClient.init(UBIDLdapClient.java:                                                                                        39)        at com.zimbra.cs.ldap.LdapClient.getInstanceIfLDAPavailable(LdapClient.j                                                                                        ava:62)        at com.zimbra.cs.ldap.LdapClient.getInstance(LdapClient.java:69)        at com.zimbra.cs.ldap.LdapClient.initialize(LdapClient.java:94)        at com.zimbra.cs.account.ldap.LdapProv.<init>(LdapProv.java:47)        at com.zimbra.cs.account.ldap.LdapProvisioning.<init>(LdapProvisioning.j                                                                                        ava:279)        at com.zimbra.cs.account.ldap.LdapProvisioning.<init>(LdapProvisioning.j                                                                                        ava:276)        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct                                                                                        orAccessorImpl.java:62)        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC                                                                                        onstructorAccessorImpl.java:45)        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)        at java.lang.Class.newInstance(Class.java:442)        at com.zimbra.cs.account.Provisioning.getInstance(Provisioning.java:287)        at com.zimbra.cs.account.Provisioning.getInstance(Provisioning.java:244)        at com.zimbra.cs.account.ProvUtil.initProvisioning(ProvUtil.java:1004)        at com.zimbra.cs.account.ProvUtil.main(ProvUtil.java:3955)Caused by: LDAPException(resultCode=49 (invalid credentials), errorMessage='inva                                                                                        lid credentials')        at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1894)        at com.unboundid.ldap.sdk.LDAPConnectionPool.createConnection(LDAPConnec                                                                                        tionPool.java:988)        at com.unboundid.ldap.sdk.LDAPConnectionPool.<init>(LDAPConnectionPool.j                                                                                        ava:876)        at com.unboundid.ldap.sdk.LD18:58APConnectionPool.<init>(LDAPConnectionPool.j                                                                                        ava:779)        at com.unboundid.ldap.sdk.LDAPConnectionPool.<init>(LDAPConnectionPool.j                                                                                        ava:726)        at com.zimbra.cs.ldap.unboundid.LdapConnectionPool.createConnPool(LdapCo                                                                                        nnectionPool.java:114)        ... 18 morezimbra logger service is not enabled!  failed.        Starting mailbox...Failed.        Starting memcached...Done.        Starting proxy...Done.        Starting amavis...Done.        Starting antispam...Done.        Starting antivirus...Done.        Starting opendkim...Failed.opendkim: /opt/zimbra/conf/opendkim.conf: ldap://zimbra.newinfosec.ru:389/?DKIMS                                                                                        elector?sub?(DKIMIdentity=$d): dkimf_db_open(): Invalid credentialsFailed to start opendkim: 0        Starting snmp...Done.        Starting spell...Done.        Starting mta...Done.        Starting stats...Done.        Starting service webapp...Failed.        Starting zimbra webapp...Failed.
Попытки экспортировать базу ldap из свежей сломанной Zimbra с помощью zmslapcat также закончились провалом:

Code:

root@zimbra:/home/post# su - zimbrazimbra@zimbra:~$ /opt/zimbra/libexec/zmslapcat /opt/zimbra/backup67aafe65 mdb_db_open: database "": mdb_dbi_open(/opt/zimbra/data/ldap/mdb/db/id2v) failed: MDB_NOTFOUND: No matching key/data pair found (-30798).67aafe65 backend_startup_one (type=mdb, suffix=""): bi_db_open failed! (-30798)slap_startup failed
Различные логи во вложении.

Пожалуйста, помогите вернуть Zimbra к жизни! Либо заставить старую Zimbra принять новые данные LDAP. Я буду благодарен за любую вашу поддержку.
Большое спасибо за все!
logs-and-conf.7z

Statistics: Posted by Zimbra_BIGGEST_Fan — Tue Feb 11, 2025 11:37 am



Viewing all articles
Browse latest Browse all 1140

Trending Articles