Saturday, December 24, 2011

ASCII Generator for MOTD

http://www.network-science.de/ascii/

 vi /etc/motd


_      ______      ________ 
| |    / __ \ \    / /  ____|
| |   | |  | \ \  / /| |__   
| |   | |  | |\ \/ / |  __|  
| |___| |__| | \  /  | |____ 
|______\____/   \/   |______|
                             

Ротация логов в Linux

Cегодня я хотел бы рассказать о ротации лог-файлов для веб-сервера Apache, либо любой другой службы которая создает логи и которые необходимо ротировать.
Начну с настройки на Линуксе, а именно на ОС Slackware (в RedHat и CentOS аналогично). Ротацию логов я буду осуществлять с помощью logrotate, конфигурационный файл которого расположен в:
# /etc/logrotate.conf
Итак открываем файл logrotate.conf любым редактором и вставляем следующие строки:
/var/log/apache/error_log (полный путь для лог-файла)
(в CentOS это /var/log/httpd/error_log)
{
rotate 5 (кол-во хранимых сжатых фрагментов)
size=10M (максимальный размер несжатого файла (в мегабайтах).
Пока размер текущего файла журнала не превысит данный порог,
файл не будет "ротирован")

missingok (отсутствие файла не является ошибкой)
nocopytruncate (не сбрасывать файл журнала после копирования)
nocreate (не создавать пустой журнал)
nodelaycompress (не откладывать сжатие файла на следующий цикл)
nomail (не отправлять содержимое удаляемых журналов по почте)
notifempty (не обрабатывать пустые файлы)
noolddir (держать все файлы в одном и том же каталоге)
compress (сжимать ротируемые фыйлы)
postrotate
/usr/bin/killall  -HUP  httpd
endscript (между postrotate и endscript расположены команды
интерпретатора исполняемые непосредственно после ротации.
В данном случае сюда помещена команда killall,
перезапускающая httpd-сервер.
Это необходимо для нормальной процедуры ротации лог-файлов)
}/var/log/apache/access_log (полный путь для лог-файла)
(в CentOS это /var/log/httpd/access_log)
{
rotate 4

weekly (производить ротацию регулярно, раз в неделю)
missingok
nocopytruncate
nocreate
nodelaycompress
 
nomail
notifempty
noolddir
compress
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Как вы можете видеть в блоке где происходит ротация error_log, момент ротации наступает по достижению размера в 5 Мегабайт. Напротив, в блоке access_log ротация будет происходить раз в  неделю, либо если раз в месяц (вместо weekly, ставим – monthly).
Ротация файлов может происходить как вручную с помощью команды:
# /usr/sbin/logrotate –s /var/log/logrotate.state /etc/logrotate.conf
Либо с помощью планировщика заданий Cron:
* 22 * * * /usr/sbin/logrotate –s /var/log/logrotate.state /etc/logrotate.conf
На этом все, но продолжение как всегда следует…
PS
Для ротации файла maillog, вместо /usr/bin/killall -HUP httpd – пишем
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

itpad.ru

Последим за сетевой картой

Строка ethtool -p ethX [N] , где N - число секунд, в течение которых нужно мигать светодиодом на карточке, поможет нам в поиске соответствия имени и физического устройства. Команда
ethtool -p eth0 15

заставит мигать светодиод соответствующего интерфейса (eth0) 15 секунд.

Thursday, December 22, 2011

Очистка кэша в Linux

Не буду вдаваться в подробности, но при частых операциях с файлами, особенно с большими, Linux кеширует эти самые файлы в оперативную память. В принципе, в этом нет ничего страшного, потому что как только, занятая закешированными файлами, оперативная память понадобится ядру, она будет частично освобождена для более приоритетной задачи. Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой free.
С параметром -g она выведет информацию об использовании памяти в гигабайтах
free -g
             total       used       free     shared    buffers     cached
Mem:             3          3          0          0          0          3
-/+ buffers/cache:          0          3
Swap:           16          0         16
а с параметром -m – в мегабайтах
free -m
             total       used       free     shared    buffers     cached
Mem:          4047       3996         51          0        254       3099
-/+ buffers/cache:        642       3405
Swap:        16386          0      16386
Не трудно заметить, что из 4 Gb оперативной памяти под кеш занято 3 Gb. Для тех, кому не нравится такой расклад и кто не может заснуть без того, чтобы на сервере было свободно пару гигов оперативы, есть вариант ;)
echo 3 > /proc/sys/vm/drop_caches
Эта команда очистит кеш, а для особых параноиков – ее можно выполнять по cron’у ;)

Tuesday, December 13, 2011

Интеграция XCache в PHP5

Это руководство поможет вам интегрировать XCache в PHP5 на базе Linux CentOS 5.5 или Fedora 13 с веб-сервером Apache2, На странице проекта XCache написано, что: XCache это быстрый, стабильный дополнительный код PHP Cacher, которые были испытаны и в настоящее время работает на производство серверов с большой нагрузкой. Похоже на другие дополнительные коды PHP cachers, таких, как eAccelerator и APC.

Предварительное замечание

Настройка производилась на CentOS 5 с ip-адресом 192.168.0.100 где Apache 2 и PHP установлены. Корневой каталог Apache var/www/html.

Проверка PHP5

Во-первых, прежде чем мы установим XCache, давайте узнаем информацию, о PHP5 установки. Для этого мы создаем файл info.php в корневом каталоге var/www/html:
1.vi /var/www/html/info.php
1.<?php
2.phpinfo();
3.?>
Затем, мы вызовем этот файл в браузере: http://192.168.0.100/info.php
Как видите, у нас установлен PHP 5.3.2

но XCache нигде не упоминается на этой странице:
Если вы видите, что другой код операции установлен, такой как eAccelerator или APC, вы должны удалить его:
Для eAccelerator:
1.yum remove php-eaccelerator
Для APC:
1.yum remove php-pecl-apc
После чего перезапустите Apache:
1./etc/init.d/httpd restart

Установка XCache

К сожалению XCache отсутствует в репозиториях Fedora 13 и CentOS 5,5, поэтому мы должны построить его из исходников. Сначала установите все пакеты, которые помогут собрать XCache:
1.yum install php-devel
2.yum groupinstall 'Development Tools'
3.yum groupinstall 'Development Libraries'
Далее мы загружаем и распаковываем последнюю версию XCache:
1.cd /tmp
2.wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz
3.tar xvfz xcache-1.3.0.tar.gz
Переходим в каталог с XCache:
1.cd xcache-1.3.0
и собираем его:
1.phpize
2../configure --enable-xcache
3.make
4.make install
Далее копируем xcache.ini в  /etc/php.d каталог:
1.cp xcache.ini /etc/php.d
Теперь мы должны настроить XCache. Параметры конфигурации описаны в разделе: http://xcache.lighttpd.net/wiki/XcacheIni. По крайней мере, вы должны сделать, это позволить extension = xcache.so и отключить все линии zend_extension, кроме того, изменить xcache.size до размера (в Мб)> 0:
01.[xcache-common]
02.;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
03.;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
04.; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so
05.;; For windows users, replace xcache.so with php_xcache.dll
06.;zend_extension_ts = c:/php/extensions/php_xcache.dll
07.;; or install as extension, make sure your extension_dir setting is correct
08.extension = xcache.so
09.;; or win32:
10.; extension = php_xcache.dll
11.[...]
12.xcache.size  =                60M
13.[...]
Перезагрузим Apache:
1./etc/init.d/httpd restart
После, мы вызовем в браузере: http://192.168.0.100/info.php
Теперь вы должны увидеть XCache, упомянутые на странице, которая означает, что код успешно был включен и работает как надо:

Red Hat / CentOS: Установка Memcached систему кеширования

Как установить Memcached высокопроизводительных распределенных кэширования объектов в памяти системы, общий характер, но предназначенные для использования в ускорении динамических веб-приложений путем облегчения загрузки базы данных под CentOS / RHEL / Fedora / RedHat Linux? Memcached очень быстрая система кэширования для MySQL. Он использует libevent и epoll в масштабе на любое количество открытых соединений и использует неблокирующий сети I/O.

Необходимые пакеты

·         Memcached: высокая производительность, распределенной памятью кэше объектов.
·         Memcached-SELinux: SELinux политики модуль, поддерживающий Memcached.
·         Perl-Cache-Memcached: Perl клиент для Memcached.
·         PHP-PECL-Memcache: Php клиент-расширение для работы с Memcached кэширования демон.
·         Python-Memcached: Python Memcached клиентскую библиотеку.

Включите EPEL репозиторий

Введите следующую команду, чтобы включить EPEL репозиторий с необходимыми пакетами.

1.rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
См. этот FAQ для более подробной информации.

Установить Memcached

Введите следующую команду для установки Memcached с PHP расширением:

1.yum install memcached php-pecl-memcache memcached-selinux
Примеры мероприятий:

1.Loaded plugins: downloadonly, rhnplugin, security, verify Setting up Install Process Resolving Dependencies --&gt; Running transaction check ---&gt; Package memcached.x86_64 0:1.2.8-1.el5 set to be updated --&gt; Finished Dependency Resolution  Dependencies Resolved  ========================================================================================================  Package                       Arch               Version               Repository                 Size ======================================================================================================== Installing:  memcached                     x86_64             1.2.8-1.el5           epel                       60 k  Transaction Summary ======================================================================================================== Install      1 Package(s) Update       0 Package(s) Remove       0 Package(s)           Total download size: 60 k Is this ok [y/N]: y Downloading Packages: memcached-1.2.8-1.el5.x86_64.rpm                                                     |  60 kB     00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction   Installing     : memcached                                                                    1/1   Installed:   memcached.x86_64 0:1.2.8-1.el5                                                                                                                                Complete!

Настройка Memcached

Отредактируйте /etc/sysconfig/memcached, введите:

1.vi /etc/sysconfig/memcached
Обновление его следующим образом:

1.PORT="11211" USER="memcached" # max connection 2048 MAXCONN="2048" # set ram size to 2048 - 2GiB CACHESIZE="4096" # listen to loopback ip 127.0.0.1, for network connection use real ip e.g., 10.0.0.4 OPTIONS="-l 127.0.0.1"
Выше, начинается Memcached в качестве демона, используя 4 Гб оперативной памяти, а также трансляция на IP 127.0.0.1, порт 11211. Сохраните и закройте файл.

Запуск Memcached

Введите следующую команду, чтобы запустить Memcached, введите:

1.chkconfig memcached on
2.service memcached start
Чтобы остановить / перезапустить использовать следующие команды:

1.service memcached stop
2.service memcached restart

Как просмотреть память в Memcached ?

Введите следующую команду:

1.memcached-tool IP_ADDRESS:Port
2.memcached-tool IP_ADDRESS:Port display
3.memcached-tool 127.0.0.1:11211
Примеры вывода:

01.#  Item_Size   Max_age  1MB_pages Count   Full
02.1     104 B     5134 s       1      10      no
03.2     136 B     5135 s       1      40      no
04.3     176 B        0 s       1       0      no
05.4     224 B     2648 s       1       7      no
06.8     552 B     1810 s       1      12      no
07.9     696 B     1810 s       1       6      no
08.10     872 B     2935 s      1       8      no
09.11     1.1 kB    4262 s      1      18      no
10.12     1.3 kB    2990 s      1      23      no
11.13     1.7 kB    2434 s      1      22      no
12.14     2.1 kB    3489 s      1      11      no
13.15     2.6 kB    2964 s      1      16      no
14.16     3.3 kB    2861 s      1      14      no
15.17     4.1 kB    2076 s      1       5      no
16.18     5.2 kB    2981 s      1       5      no
17.20     8.1 kB      64 s      1       1      no
18.21    10.1 kB    1865 s      1       3      no
19.29    60.2 kB    1550 s      1       2      no

Как просмотреть статистику Memcached ?

Введите следующую команду:

1.memcached-tool IP_Address:Port stats
2.memcached-tool 127.0.0.1:11211 stats
Примеры вывода:

01.#127.0.0.1:11211   Field       Value
02.         accepting_conns           1
03.                   bytes      399395
04.              bytes_read      504797
05.           bytes_written    17313658
06.               cmd_flush           0
07.                 cmd_get        1141
08.                 cmd_set         248
09.   connection_structures           9
10.        curr_connections           5
11.              curr_items         205
12.               evictions           0
13.                get_hits         898
14.              get_misses         243
15.          limit_maxbytes  1073741824
16.     listen_disabled_num           0
17.                     pid       40159
18.            pointer_size          64
19.           rusage_system    0.227965
20.             rusage_user    0.034994
21.                 threads           5
22.                    time  1255803547
23.       total_connections         344
24.             total_items         259
25.                  uptime        5829
26.                 version       1.2.8