.
11 апреля 2010

Переезд на новый сервер — пляски с бубном

posted in NIX, Железо |

Уффф — вроде закончил переезд на новый сервак в ДЦ кейвеба, но к сожалению ещё не всё закончил с тюнингом — наблюдаются сервизные проблемы — сервак уже раз 10 за месяц пришлось ребутить по причине зависонов, собственно поэтому довольно долго ничего не писал.

Немного подробнее о переезде и текущих проблемах:

Сначала о насущном — проблемы с серваком

Уже гуглить руки устали, ничего не нашел и сам придумать не могу — грешу на «железо», сапорт сегодня ночью отрубит часов на 5 сервер — будут память тестить...  (добавил позже — уроды обещали 5-6 часов, а вывели сервак в офлайн на 16 часов !!!)

Может кто чего подскажет:

В логах /var/log/message проблемы от процесса httpd, вот кусочек:

Apr 10 21:51:26 km32712 suhosin[4545]: ALERT - canary mismatch on  efree() - heap overflow detected (attacker '89.178.136.25', file  '/var/vhosts/.......ru/httpdocs/index.php')
Apr 10 21:53:02 km32712 kernel: pid 4678 (httpd), uid 80: exited on  signal 10
Apr 10 21:55:36 km32712 kernel: pid 4079 (httpd), uid 80: exited on  signal 11

постоянные ошибки в самом логе сервиса httpd tail -f /var/log/httpd-error.log

[Sun Apr 11 04:24:39 2010] [notice] child pid 6569 exit signal Bus error  (10)
[Sun Apr 11 04:26:57 2010] [notice] child pid 6565 exit signal Bus error  (10)
[Sun Apr 11 08:32:18 2010] [warn] Init: Session Cache is not configured  [hint: SSLSessionCache]
[Sun Apr 11 08:32:20 2010] [notice] Digest: generating secret for digest  authentication ...
[Sun Apr 11 08:32:20 2010] [notice] Digest: done
[Sun Apr 11 08:32:21 2010] [notice] Apache/2.2.14 (FreeBSD)  mod_ssl/2.2.14 OpenSSL/0.9.8k DAV/2 PHP/5.2.12 with Suhosin-Patch  configured -- resuming normal operations
[Sun Apr 11 08:36:13 2010] [notice] child pid 903 exit signal Bus error  (10)
[Sun Apr 11 08:45:50 2010] [notice] child pid 927 exit signal  Segmentation fault (11)
[Sun Apr 11 08:46:13 2010] [notice] child pid 902 exit signal  Segmentation fault (11)

Уже и порты все обновил, ядро, PHP и апач заново пересобрал — в php модули лишние отрубил — и нифига :(

Сервак встаёт «наглухо» — даже пинги не идут — только ребут и спасает.

Уже решил PHP как CGI ставить, а не как модуль апача — на этапе компилирования php5-fpm сервак снова повис — поэтому я все же сделал вывод, что проблемы из за железа.

Компилятор, перед тем как сервер повис, вываливался на разных местах с разными ошибками

internal compiler error: Segmentation fault: 11
internal compiler error: Bus error: 10
internal compiler error: Internal consistency failure

Хотя может и в памяти из-за проблем с httpd уже такой «мусор» что и другим работать невозможно.

Кстати в связи с зависонами сервака, весьма кстати пришлась последняя статейка Борма «Мониторинг и Анализ доступности сайтов» — надо будет заюзать, хоть буду удалённо ребутить вовремя, пока не разберемся с проблемой :(

в связи с такой нестабильностью на выделенном сервере ОЧЕНЬ СИЛЬНО задумался о ежедневных бэкапах (файловых и баз данных) — обязательно реализую в ближайшее время.

Это было по траблам, теперь по переезду:

Съехал я с FREEBSD 7.1 на FREEBSD 8.0 (поставили 8-ку хотя вообще заказывал 7.1) в основном по настройке всё изложено в статейке Настройка FreeBSD с нуля — Apache, PHP, MySQL, mc, webmin, proFTPd ... но всё же есть чего добавить:

Что касается переноса данных:

  • Сразу все базы данных я бэкапнул с помощью интерфейса Webmin-а. В принципе это mysqldump с параметром --all-databases но прикольнее — сливает сразу в в отдельные файлы
  • В процессе в пара таблиц загнулась — одну восстановил с помощью PHPMyAdmin SQL запросом REPAIR TABLE rate EXTENDED вторую с консоли при помощи mysqlcheck -u root -e -p --databases database
  • Файло всё я без проблем таром зажал tar -czvf  vhosts.tar.gz ./vhosts и перелил по фтп
  • Ну и на всякий случай некоторые конфиг-файлы я тоже с собой забрал (сам бинд, днсы всех сайтов, крон, апач, PHP, nginx, proftpd, rc.conf )

По настройке тоже кое что всплывало:

  • Долго тупил с Bind-ом — он никак не хотел обслуживать внешний мир — пока не увидел строчку listen-on 127.0.0.1 — закомментил и наладилось :)
  • Определить траблу помог sockstat | grep named
  • Так же — ПРОВЕРКА SOA внешний запрос к dns серваку (111.222.111.222 — айпишник вашего сервера с биндом) dig @111.222.111.222 gtalex.ru
  • и ещё ПРОВЕРКА SOA внешний запрос к серваку nslookup gtalex.ru 111.222.111.222
  • Для правильной парковки .ru доменов нужно чтоб bind обслуживал 2 айпи адреса с разных подсетей — соответственно прикручиваем так:

    — из командной строки:
    ifconfig re0 95.169.191.208 netmask 255.255.255.0 alias

    — в rc.conf переделывается строчка с интерфейсом и добавляется новая
    ifconfig_re0_alias0="95.169.190.208 netmask 255.255.255.0"
    ifconfig_re0_alias1="95.169.191.208 netmask 255.255.255.0"
  • Мускул почему то не хотел ставиться вперед Апача — после установки апача встал «на ура».
  • В конфиге PHP.ini по умолчанию не стоит short_open_tag — поначалу сильно был удивлён на сайтах где вместо полной конструкции <?php  ... ?> в файлах я сокращенно писал просто <? ... ?>
  • ну и не забываем прописывать все устанавливаемые сервера в rc.conf :)
Яндекс.Метрика