Встановлення налаштування та обслуговування Cyrus-imapd на CentOS
Є завдання від комерційного блоку зберігати всі листи, які залишають сервери додатків протягом двох тижнів. При цьому зберігати листи у поштовій скриньці з доступом через Web-інтерфейс. На день вирушає в середньому по 50тис. листів. Разом, за два тижні маємо близько 700 тис листів у ящику. Спочатку на сервері було встановлено dovecot зі збереженням листів у maildir. Він перестав справлятися з видачею списку повідомлень на цифрі 400 тисяч листів. CyrusImap зберігає список листів у власній БД для кожної скриньки. Тому його мало колише скільки там листів, тому було вирішено поставити його.
Слабка документація, рекомендації, які йдуть разом із дистрибутивом (встановленим через yum) не годяться – не злітає. Для того, щоб запрацювало, довелося запитувати у гугла, правильні рецепти були знайдені в обговореннях на форумах. Своя власна індивідуально розроблена система адміністрування, в якій потрібно спочатку розібратися, а потім якось пам'ятати. Для вирішення вищеописаних проблем і народився цей пост. (Суть - невелика шпаргалка для себе, щоб не забути).
Основні особливості Cyrus-imap, які потрібно пам'ятати
Імена ящиків користувачів складаються зі слова user та імені користувача: user. (Це папка INBOX). якщо пропустити слово user, то створиться поштова скринька, доступна всім користувачам. Папки в ящику відповідно user. .
Скриньки та налаштування лежать у різних місцях.
Установка Cyrus-imap на Centos
в результаті отримуємо наступне - папка з поштовими скриньками: /var/spool/imap - папка з конфігами (бд, дані про квоти, скрипти sieve та інші принади): /var/lib/imap - файл з конфігом, де вказані порти та IP для листенерів: /etc/cyrus.conf (навіщо вони його винесли окремо.) - основний файл з конфігомсервера: /etc/imap.conf (чому вони його так назвали?! Логічне було б якраз попередній файл назвати imap а цей cyrus, а краще їх об'єднати і назвати cyrus).
правимо конфіг файл /etc/imap.conf
для того, щоб працював plain додаємо:
вказуємо логіни (імена користувачів), які будуть адмінами.
У документації написано, що лог пишеться через syslog з фасилиті local6. Раніше так було, але в пакеті centos 6.5 схоже він пише в mail.*. вирішити проблему не вдалося. Біда в тому, що в конфізі rsyslog.conf прописано mail.*, cyrus справно генерує дебаги, чим відразу засирає maillog. Тому довелося в конфізі сислога замінити mail.* на mail.info
заводимо користувача. у випадку sasldb:
Тюнінг та додаткові налаштування
Для того, щоб прискорити пошук по ящику можна робити його індекс за допомогою команди squatter. Для того, щоб індекс був актуальним, команду слід запускати регулярно. Для цього її слід додати до файлу /etc/cyrus.conf до розділу EVENTS . У моєму випадку при розмірі ящика 5 Гб та 400 тис. листів перша індексація зайняла 26 хвилин, наступна 4 хвилини. Тому якщо ви вирішили додати цей функціонал до існуючих ящиків, то варто зробити перший запуск вручну (див. наступний розділ)
Видаляємо з поштової скриньки листа старше 2-х тижнів
Адміністрація Cyrus-imapd – основні завдання
Заводимо поштові скриньки (через утиліту cyradm)
Переглянути всі поштові скриньки в системі
Переглянути всі поштові скриньки разом із папками
Видалити скриньку (для цього спочатку потрібно встановити атрибут доступу "c" на скриньку для адміна) чому "с", коли має бути "d" не зрозуміло але працює
Відновити скриньку (перечитує всі листи та відновлює або робить нову БД)