четверг, 13 октября 2011 г.

Syslog в highload режиме

Столкнулся с тем, что высоконагруженный syslog-сервер создает под 100% загрузки диска.

Решение простое, нашел здесь http://palm.opennet.ru/tips/680_syslog_cpu_trouble.shtml
Для начала узнаем нагрузку:

iostat -xm 1

Если столбец util близок к 100, то в лог попадают не все прилетающие записи.
Вылечить это можно, отключив в конфиге syslog.conf синхронизацию данных на диск. Для этого перед путем к файлу добавляется -, т.е. что-то типа

local3.* -/var/syslog/syslog.log

понедельник, 8 августа 2011 г.

Как поменять улавишу Win в Unity для вызова Dash

Привычные виндовые сочетания клавиш типа Win+R будучи прописанными в Ubuntu 11.04 не срабатывают до тех пор, пока, клавиша Win привязана к вызову главного меню Unity. Поменять эту привязку можно следующим образом:

Установим CompizConfig Settings Manager

sudo apt-get install compizconfig-settings-manager

Далее Alt-F2 и выполнить команду about:config

Там в разделе Behaviour поменять Key to show launcher на что-то свое.

Меняем сочетание клавиш для Dash

Рецепт найден здесь.

вторник, 31 мая 2011 г.

Как сконвертировать образ dd raw image в формат, понятный VirtualBox

При разработке embedded систем часто приходится запускать их в среде VirtualBox. При этом в наличии обычно образ системы, созданный командой dd.

Такой образ нужно конвертировать в формат для VirtualBox (vdi).

Делается командой:

VBoxManage convertfromraw /path/to/usb.img /path/to/usb.vdi --format vdi

вторник, 3 мая 2011 г.

Как Unity menu перенести на второй монитор

Сделал апгрейд до Ubuntu 11.04. Довольно приятная система. Однако, при работе с двумя мониторами сразу же вышла заминка с тем, чтобы меню Unity перенести на второй монитор, подключаемый по VGA.

Перетаскиванием с Alt, как это было с гномовской панелью вопрос не решить. Вместо этого в консоли нужно набрать:

/usr/bin/xrandr --output VGA1 --primary

Что просто делает второй монитор главным.

воскресенье, 13 марта 2011 г.

Как менять размер окна виртуального рабочего стола Citrix

Долгое время линуксовый Citrix ресивер бесил тем, что разварачивался на весь экран и перехватывал все управление.

Пока не нашел на форуме поддержки это:

Full screen для citrix в linux:

Minimize full screen XD session on Linux:

To do this you need to allow a key stroke to pass through to the Linux system instead of the XD session. This can be achieved by using the key sequence Ctrl+F2, which tells the client to pass the next keystroke to the Linux system. Then to minimize the window enter the shortcut for your Linux desktop environment to minimize the current window (For gnome this is Alt+F9).

Stop XD clients launching in full screen:
In the client GUI (wfcmgr) go to Tools->Settings->; Citrix XenApp->;Session Options->Window Size
and select a static window size. You will be able to resize the window once you are logged in by just dragging the corners. This will only work if you are launching directly from wfcmgr.

суббота, 12 марта 2011 г.

Как в pfsense 2.0 сделать Captive portal доступным из разных сетей

Captive portal в pfsense 2.0 доступен только из плоских сетей. Если же адрес клиента из другой подсети редирект по порту 8000 идет не на страницу captive portal'а, на локальном адресе роутера, а на изначальный destination адрес, коим может оказаться, к примеру, адрес сервера yandex.

Исправить это дело можно в файле /etc/inc/captiveportal.inc. Для этого нужно найти строки:

function portal_ip_from_client_ip($cliip) {
        global $config;
        $interfaces = explode(",", $config['captiveportal']['interface']);
        foreach ($interfaces as $cpif) {
                $ip = get_interface_ip($cpif);
                $sn = get_interface_subnet($cpif);
                if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
                        return $ip;
        }


и закомментировать пару строк:

$ip = get_interface_ip($cpif);
$sn = get_interface_subnet($cpif);


чтобы в итоге получилось так:

function portal_ip_from_client_ip($cliip) {
        global $config;
        $interfaces = explode(",", $config['captiveportal']['interface']);
        foreach ($interfaces as $cpif) {
                $ip = get_interface_ip($cpif);
                //$sn = get_interface_subnet($cpif);
                //if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
                        return $ip;
        }


Проблема с загрузкой pfsense

pfsense 2.0 действительно крут. Однако, при установке на физический сервер, да еще подключая дистрибутив через ilo столкнулся с тем, что freebsd стала выдавать root mount failed, startup aborted

Лечится просто. В параметры Loader'а (7-й пункт меню при загрузке) нужно передать такой параметр:

set kern.cam.boot_delay=10000

понедельник, 28 февраля 2011 г.

Как сделать похожими логи rsyslog и syslog

Rsyslog - самое гибкое средство для управления sysog логами. В основном из-за того, что в нем можно настроить множество фильтров. Недавно столкнулся с проблемой совместимости формата со старым syslog'овским.

Syslog прилетает с удаленной машины. Так вот, в старом формате в лог помимо прочего заносился ip адрес источника syslog. Т.к. формат лога описывается в template, прописал стандартный темплейт:

# описываем темлейт
$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg:::drop-last-lf%\n"
# и применяем его
local2.* /var/syslog/cisco.log; TraditionalFormat

Однако, ip так и не подставился. Оказывается, наряду с HOSTNAME есть еще property FROMHOST (которую часто по ошибке пытаются прописать как FROMHOST-IP и получают **INVALID PROPERTY NAME** в логе).
Таким оразом, правильный конфиг таков:

# описываем темлейт
$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg:::drop-last-lf%\n"
# и применяем его
local2.* /var/syslog/cisco.log; TraditionalFormat


А в самой верхней строчке, чтобы дата была в старом укороченном формате, желательно прописать:

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat