Апр 29 2009

Exim, удаляем frozen сообщения

Exim сообщения которые он не смог отправить и уже не будет пытаться отправлять, помечает как frozen. На почтовых системах с активным почтовым трафиком таких сообщений может скопится очень много. Со временем(в зависимости от настроек) exim эти сообщения уничтожает, на скорость обработки сообщений в очереди они не влияют, так как пометка frozen исключает их из обработки.
Но зато они часто очень мешают анализировать очередь.
Что бы избавится от всех frozen сообщений в очереди можно воспользоваться такой комбинацией команд:

exiqgrep -zi | xargs exim -Mrm

и все, будут уничтожены все frozen сообщения.
Остается только напомнить, что перед удалением стоит все таки проверить, вдруг некоторые из сообщений заморозились в результате сбоя и на самом деле являются полезными.
Инициировать отправку всех сообщений из очереди (не завсимо от того frozen они или нет) можно командой:

exim -qqff
Апр 28 2009

Утилита unix2tcp.

Недавно очень помогла утилита unix2tcp.
Убирали с одного из серверов MySQL, базы перенесли, все хорошо, все красиво заработало, но как выяснилось в части проектов, хостясщихся на этом сервере настройки в MySQL зарыты в исходных текстах и искать их долго, а перенести надо максимально быстро.
Поэтому из портов был установлен unix2tcp:

cd /usr/ports/net/unix2tcp/
make install clean

А использовать эту програмку очень просто, к примеру сервер MySQL находится на адресе 192.168.254.5 порт 3306, локальный unix сокет должен быть /tmp.mysql.sock, соответственно запускать его надо так:

unix2tcp /tmp/mysql.sock 192.168.254.5 3306

Собственно и все. Я не привожу стартовый скрипт для этого решения, просто потому, что никто не рассматривает это решение как долгосрочное. Но у нас оно проработало почти неделю и нареканий не вызвало.
Только помните, что теперь нужно на удаленном сервере все равно в MySQL задать нужные права на базы от IP адреса сервера с которого вы будете соединяться.

Апр 22 2009

Программный RAID1 gmirror

Не всегда имеется возможность установить аппаратный RAID, да и не всегда он нужен. Особенно псевдо аппаратные рейды, которых сейчас полно, эти RAID контроллеры зарекомендовали себя самым худшим образом. А вот полностью программный RAID gmirror показал себя наилучшим образом. И везде где нет необходимости или возможности установить аппаратный RAID я использую gmirror.
Настройка его довольно проста, рекомендую только делать настройку, до того как на сервер попадут данные, лучше всего настраивать gmirror сразу после установки FreeBSD.
Read more »

Апр 20 2009

Строим почтовую систему(postfix, dovecot, postfixadmin) — часть третья, установка dovecot

После того, как установлены PostfixAdmin (Строим почтовую систему(postfix, dovecot, postfixadmin) — часть первая, установка PostfixAdmin) и Postfix (Строим почтовую систему(postfix, dovecot, postfixadmin) — часть вторая, установка Postfix) можно начинать финальную часть, установку dovecot.
Теперь перейдем к установке dovecot из портов:

cd /usr/ports/mail/dovecot
make install clean

Read more »

Апр 20 2009

Строим почтовую систему(postfix, dovecot, postfixadmin) — часть вторая, установка Postfix

Переходим к установке postfix. Всю подготовительную часть (создание баз авторизации, настройка PostfixAdmin) мы провели в первой части статьи Строим почтовую систему(postfix, dovecot, postfixadmin) — часть первая, установка PostfixAdmin и теперь начинаем разбираться непосредственно с Postfix.
Установим postfix конечно же из портов:

cd /usr/ports/mail/postfix/
make install clean

В диалоге настройки опций сборки Postfix нужно выбрать такие пункты:

┌────────────────────────────────────────────────────────────────────┐
│                   Options for postfix 2.5.6,1                      │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │[X] PCRE      Perl Compatible Regular Expressions               │ │
│ │[ ] SASL2     Cyrus SASLv2 (Simple Auth. and Sec. Layer)        │ │
│ │[X] DOVECOT   Dovecot SASL authentication method                │ │
│ │[ ] SASLKRB   If your SASL req. Kerberos select this option     │ │
│ │[ ] SASLKRB5  If your SASL req. Kerberos5 select this option    │ │
│ │[ ] SASLKMIT  If your SASL req. MIT Kerberos5 select this option│ │
│ │[ ] TLS       Enable SSL and TLS support                        │ │
│ │[ ] BDB       Berkeley DB (choose version with WITH_BDB_VER)    │ │
│ │[X] MYSQL     MySQL maps (choose version with WITH_MYSQL_VER)   │ │
│ │[ ] PGSQL     PostgreSQL maps (choose with DEFAULT_PGSQL_VER)   │ │
│ │[ ] OPENLDAP  OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)│ │
│ │[ ] CDB       CDB maps lookups                                  │ │
│ │[ ] NIS       NIS maps lookups                                  │ │
│ │[ ] VDA       VDA (Virtual Delivery Agent)                      │ │
│ │[ ] TEST      SMTP/LMTP test server and generator               │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

Read more »

Апр 20 2009

Строим почтовую систему(postfix, dovecot, postfixadmin) — часть первая, установка PostfixAdmin

Создать легкую, быструю, да и еще и легко управляемую почтовую систему, это почти недосягаемый идеал. Это все потому, что легко управляемые и удобные средства, как правило потребляют запредельные ресурсы.
Вариант с MySQL, как хранилище авторизационных данных, является наименьшим из зол, поскольку простые селекты он отрабатывает очень быстро, так что для простой сети этого вполне хватит. И панель управления postfixadmin проста и удобна в использовании.
По итогу, что бы построить почту нам нужны установленный Apache c PHP, MySQL, и соответственно настроенный ДНС, который указывает MX-сы для нашего домена на тот сервер, где вы будете строить почтовую систему.
Read more »

Апр 17 2009

Postfix, установка двух копий на одном сервере.

У сисадмина такая работа, что часто, иногда даже чересчур часто приходится решать задачи, причем часто в очень сжатые сроки и на том что есть. Установка postfix с двумя независимыми конфигурациями, как раз и относится к таким вопросам.
У нас естественно уже должен быть установленный постфикс, во вторых у нас должен быть второй ip адрес на интерфейсе.
По условиям задачи, пусть у нас основной сервер стоит на адресе 192.168.0.17, а второй поцепим на 192.168.0.18.
Read more »

Апр 15 2009

Простой скрипт проверки существования странички на вебсервере

Такой скрипт я использую вместе с Nagios для мониторинга потоков радио, которые транслируются с IceCast.
Написал я его на php:

#!/usr/local/bin/php
<?php
  $url = $argv[1];
  $handle = @fopen($url,'r');
  if($handle !== false){
     echo "OK - $argv[1]\n";
     exit(0);
  }  else {
        echo "CRITICAL - $argv[1]\n";
        exit(1);
  }
?>

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