воскресенье, 31 октября 2010 г.

Настройка DNS в CentOS

Надо сделать кэширующий + локальный днс.
Ставим пакеты
yum -y install bind bind-chroot
А стартовать не хочет.

# service named configtest
none:0: open: /etc/named.conf: file not found

2 сюрприза: конфиг должен быть в /etc, а не /etc/named, как в нормальных системах... и его просто нету!

Спасибо locate, нашли хвосты тут:
/usr/share/doc/bind-*/sample
Перейдем туда.
Теперь копируем оттуда файлы в etc и var, приводим к нужному виду и используем.
Проблема в том, что файлы получаются разбросанные по системе, а /etc забит вместо 1 каталога 4 файлами. Причем если вынести отдельно named.zones, файлов будет 5.
Сначала сделаю в виде "как оно хочет".
cp etc/* /etc/
cp -r var/named /var/

Не могу понять, что мешало сделать это все автоматически при установке.

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

ZFS в CentOS

zfs-fuse.x86_64 : ZFS ported to Linux FUSE
Надо будет поковырять.

Единственное, я из epel ставил. Не знаю, есть ли в официальных.

четверг, 28 октября 2010 г.

еще репа для centos

Основные и наиболее часто используемые репы

Epel
FAQ
epel — пожалуй наиболее популярный репозиторий пакетов для CentOS, поддерживается сообществом Fedora. Содержит несколько тысяч пакетов различного назначения, не конфликтует с репозиториями base и updates . Рекомендуется к использованию.

Если используется ISP, после установки этой репы появляется возможность поставить
"nginx [engine x] — HTTP и прокси-сервер."
"Модуль FastCGI для веб-сервера Apache"
"phpMyAdmin - набор PHP скриптов для управления MySQL"
"Сервер баз данных PostgreSQL"
"Ruby on rails - фреймворк для построения веб-приложений"
итд.
В общем, ставить обязательно! Вдобавок, его требуют некоторые репы.

!!! Адреса изменились, вариант "было" будет ниже. Вместо download.fedora.redhat.com теперь download.fedoraproject.org, но отдается код 302 (редирект), поэтому напрямую через rpm -ivh не поставить. Или делаем wget, или используем зеркало яндекса.
5:
rpm --import http://mirror.yandex.ru/epel/RPM-GPG-KEY-EPEL-5
rpm -ihv http://mirror.yandex.ru/epel/5/`uname -i`/epel-release-5-4.noarch.rpm

6:
rpm --import http://mirror.yandex.ru/epel/RPM-GPG-KEY-EPEL-6
rpm -ivh http://mirror.yandex.ru/epel/6/`uname -i`/epel-release-6-7.noarch.rpm

было:
5:
rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-5
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/`uname -i`/epel-release-5-4.noarch.rpm

6:
rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-6
rpm -ivh http://download.fedora.redhat.com/pub/epel/6/`uname -i`/epel-release-6-5.noarch.rpm

CentALT
CentALT — содержит свежие версии серверного софта. Конфликтует репозиториями base и updates. Не рекомендуется к использованию.

Инструкция по установке: http://centos.alt.ru/?p=120

5: rpm -ihv http://centos.alt.ru/repository/centos/5/`uname -i`/centalt-release-5-3.noarch.rpm
6: rpm -ihv http://centos.alt.ru/repository/centos/6/`uname -i`/centalt-release-6-1.noarch.rpm

Внимание: требуется epel

Там есть свежий nginx, php5.2.17-7 итд.

Некоторые говорят, что подключать CentALT может быть опасно. Можно ограничить только на нужные пакеты. Откываем после установки файл /etc/yum.repos.d/centalt.repo
И вписываем строку
includepkgs=php*
Или ставим enable=0 и при необходимости --enablerepo=

remi
REMI — содержит свежие версии серверного софта, php, mysql httpd. Конфликтует репозиториями base и updates . Не рекомендуется к использованию без необходимости.
Софт там "совсем свежий" - если mysql, тот последняя на текущий момент ветка итд.

Внимание: требуется epel

http://blog.famillecollet.com/pages/Config-en

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

RPMForge
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
RPMForge – содержит в себе огромный архив серверного ПО.

UP
Repoforge. Repoforge is the new name of the RPMforge project.
Установка
5: wget -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.`uname -i`.rpm
6: wget -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.`uname -i`.rpm

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
5: wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.`uname -i`.rpm
6: wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.`uname -i`.rpm
rpm -i rpmforge*

RPMFusion
http://rpmfusion.org/Configuration
RPM Fusion – объединил репозитории Dribble, Freshrpms, Livna.

Внимание: требуется epel


Описания реп частично взяты с сайта centalt
Большой список реп с описаниями: http://centos.alt.ru/?p=18
Офсайт с доп репами: http://wiki.centos.org/AdditionalResources/Repositories

Обновление php до 5.2 в CentOS

http://wiki.centos.org/HowTos/PHP_5.1_To_5.2

SSD на FreeBSD 8.1

Поставил под ДБ SSD Intel X25-E 32G, 2 в зеркало.
Вообще, скорость должна быть под 200мб/с с диска.


Странности.
# dd if=/dev/ad20 of=/dev/null
^C579642+0 records in
579642+0 records out
296776704 bytes transferred in 54.388418 secs (5456616 bytes/sec)
# dd if=/dev/ad20 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 6.819674 secs (157447676 bytes/sec)
# dd if=/dev/ad20 of=/dev/null bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes transferred in 25.157709 secs (170721719 bytes/sec)

Вот такая ерунда. Зависит от размера блока?
# dd if=/dev/ad20 of=/dev/null bs=4k
^C112856+0 records in
112856+0 records out
462258176 bytes transferred in 9.776836 secs (47280959 bytes/sec)
#dd if=/dev/ad20 of=/dev/null bs=16k
^C50850+0 records in
50850+0 records out
833126400 bytes transferred in 10.191321 secs (81748618 bytes/sec)
# dd if=/dev/ad20 of=/dev/null bs=512
^C156910+0 records in
156910+0 records out
80337920 bytes transferred in 10.382522 secs (7737804 bytes/sec)

На закуску:
# dd if=/dev/mirror/gm-var of=/dev/null bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes transferred in 10.394644 secs (103297604 bytes/sec)

Пойду думать. И еще, что делать с TRIM, которое 8 фря не умеет, а в 9 обещали только при форматировании (насколько я помню). Плюс ZFS пока не планирует TRIM, насколько я видел в гугле.

dynamic zones в bind

Долго пытался понять, что это и с чем едят.
Сейчас нашел в конфиге строки:
/* An example dynamic zone
key "exampleorgkey" {
        algorithm hmac-md5;
        secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
        type master;
        allow-update {
                key "exampleorgkey";
        };
        file "dynamic/example.org";
};
*/

Это зона в формате для правки скриптами. Поэтому нельзя поправить файл с зоной руками - она в бинарном формате + копия в памяти. Как вариант - сделать через rndc зоне freeze, поправить, потом thaw.
(хотя бинарная ли она, вопрос - пока не проверял. В любом случае, freeze делать обязательно).
Возможно, понадобится еще dumpdb

среда, 27 октября 2010 г.

обновляем php

Надо было обновить php до 5.2.14 во фре. Помня предыдущие мытарства, оттягивал этот момент как мог. А тут еще ворох проблем, и прежде всего - простой portupgrade не пройдёт, ибо php5 теперь содержит 5.3, надо его выносить и ставить php52
Пробовал править +CONTENTS в /var/db/pkg, с переименованием папок с пакетами из php5 в php52, и потом pkgdb -F
Правда, правил только php5 и php5-extensions
Оказалось, проще будет так:
pkg_info|grep php5|awk '{print $1}'>php5-pkg
cat php5-pkg|xargs pkd_deinstall -f -
cd /usr/ports/lang/php52
и далее по списку ставим сам пхп, экстеншены... А также наверняка вынесенные phpMyAdmin, и всё "лишнее" из php5-pkg.

Пачка засад:
PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.11. Rebuild it for your PHP version (5.2.14) or download precompiled binaries.\n in Unknown on line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0
Надо пересобирать акселератор.

 Пересобрал.
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0
eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.

Увеличил до 64М
# sysctl kern.ipc.shmmax=67108864
kern.ipc.shmmax: 33554432 -> 67108864

Не помогло.
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0
eAccelerator: shmmax should be at least 2MB

Тут: http://m.habrahabr.ru/post/67557/ нашел, что надо скопировать файлик.
cp /usr/local/share/examples/eaccelerator/eaccelerator.ini /usr/local/etc/php/
Не помогло. Правда, у меня был php.ini еще поправлен, прямо туда вписана настройка.
Хотя тут: http://nil.nu/ нашел подсказку:
kern.ipc.shmall=65536
kern.ipc.shmmax=268435456
и еще видел где-то совет прописать
eaccelerator.shm_max="32"
Больше 2, лучше 16-32.
После этого поднялось. Ура. 


checking for APR... configure: error: the --with-apr parameter is incorrect.

Что-то не то с APR, вылечил так:
cd /usr/ports/devel/apr1
make install clean
Хотя тут: http://free-pc-help.ru/news/checking-for-apr-configure-error-the-with-apr-parameter-is-incorrect/ сказано, что пакет надо бы пересобрать с тредами, но у меня его а) не стояло, б) галочка  на тредах была.

вторник, 26 октября 2010 г.

Zabbix с нуля

Что это такое, есть в вики
Поскольку мне приходится возиться как с centos, так и freebsd, то подборка ссылок будет "unisex".

http://phpsuxx.blogspot.com/search/label/Zabbix
Подборка с другого ресурса

http://phpsuxx.blogspot.com/2009/12/why-zabbix-suxx.html
Иметь в виду.

В центоси штатно не поставить - в репах совсем древнючая, новее нет. Причём штатно его нет вообще, а в epel версия 1.4, которая весьма прожорлива. Переход на 1.8 крайне желателен! Надо собирать пакет. Впрочем, есть вариант с уже собранными пакетами, см ниже.
debian не лучше - там тоже
Version: 1:1.4.6-1

Во фре 1.8 в портах, но сначала надо поставить perl, php (5.2 или 5.3), apache по вкусу. Потом zabbix-server, zabbix-backend

http://www.itpad.ru/?p=1431
заббикс в центоси

http://www.ignix.ru/public/daemon/zabbix
заббикс во фре

Если ставить в jail - получим ошибки.
/usr/local/bin/zabbix_server [30553]: Can not create Semaphore [Function not implemented]
/usr/local/bin/zabbix_server [30553]: Unable to create mutex for log file


http://opennet.ru:8101/openforum/vsluhforumID1/87577.html
тут решение: jail_sysvipc_allow="YES"


Ставим zabbix в CentOS из rpm (на основе доки выше, но там сборка из исходников, а у меня использование пакетов. Также в процессе использовался locate, когда что-то было не найти)
Для начала, удаляем 1.4 из epel:
#yum erase zabbix-\*
(если его не стояло - хорошо. Хотя можно посмотреть, что оно тянуло зависимостями, и скачать руками. Тот же php)

теперь идем http://repo.andrewfarley.com/centos/5/i386/ и качаем нужные пакеты нужных версий. Я взял последнюю на тот момент 1.8.3

Ставим основной пакет
# rpm -i zabbix-1.8.3-1.i386.rpm

Теперь server, для этого доставляем библиотеки:
# yum install libssh2 OpenIPMI fping
# rpm -i zabbix-server-1.8.3-1.i386.rpm

Также хорошо бы мониторить и сам сервер...
# yum install openssl-devel
# rpm -ivh zabbix-agent-1.8.3-1.i386.rpm

Если хотим веб интерфейс
# yum -y install php-xml httpd php-mbstring php-mysql
# rpm -ivh zabbix-frontend-php-1.8.3-1.i386.rpm

Если что, можно открыть спек файл и посмотреть там зависимости, описания, что ставится итд.

Теперь настроим server. Для этого нам снова не хватает модулей, доставим
# yum install mysql-server

Запустим mysql, сделаем mysql_secure_installation, подключимся к базе
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
Не забываем применить права!
mysql> flush privileges;
mysql> quit

Теперь перейдём в /usr/share/doc/zabbix-server-1.8.3/
Там лежат нужные нам файлы для БД
Зальём базу
# cd create/schema
# cat mysql.sql | mysql -u zabbix -p zabbix
# cd ../data
# cat data.sql | mysql -u zabbix -p zabbix
# cat images_mysql.sql | mysql -u zabbix -p zabbix
И 3 раза введем пароль, который указали в grant all. Впрочем, можно -p заменить на -pzabbix (без пробела) - эффект будет тот же.

Теперь переходим к конфигам.
# cd /etc/zabbix/

Правим конфиг сервера под наши задачи
# vi /etc/zabbix/zabbix_server.conf

Надо найти строки и привести к данному виду:
DBName=zabbix
DBUser=zabbix
DBPassword=пароль юзера на базу zabbix

Теперь проверим, что есть пользователь zabbix
# id zabbix
Если нет - надо создать
# useradd -m -s /bin/bash zabbix
Но у меня он уже был. Пакет должен был его создать, выставить права на /etc/zabbix и сделать владельцем.

Теперь надо запустить сервер.
# /etc/init.d/zabbix-server start
Starting ZABBIX server: [ OK ]
# /etc/init.d/zabbix-agentd start
Starting ZABBIX agent: [ OK ]

Можно выставить автозагрузку сервиса.
Оказалось, скрипт не добавил сервер! Да и агент тоже. Добавим.
# /sbin/chkconfig --add zabbix-server
# /sbin/chkconfig --add zabbix-agentd

Теперь выставим автозагрузку БД и заббикса
# /sbin/chkconfig httpd on
# /sbin/chkconfig mysqld on
# /sbin/chkconfig zabbix-server on
# /sbin/chkconfig zabbix-agentd on

Теперь перейдём к веб-интерфейсу.
Мы его уже поставили, он ставится в /var/www/html/zabbix-1.8.3/
Для начала, надо подготовить php
# vi /etc/php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
date.timezone = Europe/Moscow
mbstring.func_overload = 2

Теперь надо добавить этот сайт в настройки апача
NameVirtualHost *:80

<virtualhost *:80>
DocumentRoot /var/www/html/zabbix
ServerName zabbix
DirectoryIndex index.php
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
ErrorLog logs/dummy-host.example.com-error_log
</virtualhost>

Но тут один момент.. у нас же поставилось в zabbix-1.8.3, а не zabbix.. Так что надо или в примере пути поправить, или создать симлинк
# cd /var/www/html/
# ln -s zabbix-1.8.3 zabbix

Теперь перезапускаем апач и подключаемся на айпи нашего сервера и наблюдаем графический инсталлятор. Там на 3 шаге скажут, если у нас что-то не доставлено.
Например, у меня ругнулось на max_input_time (в моём варианте выше оно тоже вписано, в оригинальной доке нет)

Ещё момент - если открыть логи, там будут записи
zabbix_agentd [27158]: ERROR: Cannot create PID file [/var/run/zabbix_agentd.pid] [Permission denied]
zabbix_server [26844]: ERROR: Cannot create PID file [/var/run/zabbix_server.pid] [Permission denied]
Я правлю так:
# mkdir /var/run/zabbix
#chown zabbix:zabbix /var/run/zabbix
и в конфиги вписываю в путь pid-файлов, чтобы он был /var/run/zabbix/...

После настройки логин – admin, пароль – zabbix.

В Dashboard должна быть строка Zabbix server is running Yes

И надо сразу проверить, что сессии сохраняются. У меня по умолчанию в /etc/php.ini была строка:
session.save_path = "/var/lib/php/session"
Но права на эту папку 770, причем владелец - root! Разумеется, ничего работать не будет. Надо или ставить 1777, или создать /tmp/sess, поставить на неё 1777 и поправить конфиг. Иначе - function.session-start ... failed: Permission denied

Система стоит, можно переходить к настройке событий, триггеров и прочего.

Начало...

http://phpsuxx.blogspot.com
надо бы завести подобное, но свое..

http://markelov.blogspot.com/search/label/Virtualization
Ну и еще полезный раздел.