воскресенье, 22 апреля 2012 г.

Настройка мультимедиа-клавиатуры A4Tech KD-600 в XFCE

На этой неделе поменял работу. Коллеги с прошлой работы подарили клавиатуру A4Tech KD-600. Спасибо им большое, клавиатура действительно классная. Выглядит она вот так:
Кроме того, что она чёрного цвета и того, что у неё низкие клавиши, на ней есть ещё 10 дополнительных "мультимедийных" клавиш. Наконец, у меня дошли руки настроить эти клавиши на моём домашнем компьютере под Debian GNU/Linux в XFCE.

Как оказалось, всё довольно просто. Больше времени у меня ушло на выбор программ и действий, которые нужно выполнять при нажатии мультимедийных клавиш.

Итак, перво-наперво, нужно узнать коды клавиш. Для этого запускаем программу xev, нажимаем последовательно клавиши и записываем их коды, появляющиеся в окне консоли.

Например, код клавиши PrtSc равен 111:

KeyRelease event, serial 34, synthetic NO, window 0x2e00001,
    root 0x335, subw 0x0, time 4811863, (90,272), root:(641,688),
    state 0x0, keycode 111 (keysym 0xff61, Print), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Теперь ставим пакет lineakd:
# apt-get install lineakd
В её файле конфигурации /etc/lineakd.def я не нашёл своей модели клавиатуры, поэтому добавил её описание:
[A4-KD600]
  brandname = "A4tech"
  modelname = "Multimedia keyboard KD-600"
  [KEYS]
    ScreenShot       =  111
    WebBrowser       =  178
    Email            =  236
    Search           =  229
    Previous         =  234
    Next             =  233

    MediaPlayer      =  129
    Play|Pause       =  162
    Mute             =  160
    VolumeDown       =  174
    VolumeUp         =  176

  [END KEYS]
[END A4-RFKBS26]
Теперь запускаем под обычным пользователем, настройки клавиатуры которого нужно создать, lineakd таким образом:
$ lineakd -c A4-KD600
A4-KD600 - это название секции файла /etc/lineakd.def, описывающей нашу клавиатуру.

После запуска в домашнем каталоге пользователя будет создан файл .lineakd/lineakd.conf. В этом файле можно задать команды, выполняемые при нажатии клавиш. Я задал такие команды (более ничего не трогая):
Email = /usr/bin/iceweasel https://mail.yandex.ru
MediaPlayer = /usr/bin/deadbeef --play
Mute = /usr/bin/deadbeef --stop
Next = /usr/bin/deadbeef --next
Play|Pause = /usr/bin/deadbeef --play-pause
Previous = /usr/bin/deadbeef --prev
Search = /usr/bin/iceweasel https://google.com
VolumeDown = /usr/bin/amixer set Master 1-
VolumeUp = /usr/bin/amixer set Master 1+
WebBrowser = /usr/bin/thunar /home/stupin
ScreenShot = /usr/bin/xfce4-screenshooter -w
Итак, клавиши справа сверху вниз выполняют следующие действия:
  • запуск файлового менеджера с открытым домашним каталогом,
  • запуск браузера с открытой страницей Яндекс-почты (или, если браузер уже запущен, открытие этой страницы в новой вкладке),
  • запуск браузера с открытой страницей поиска Гугл (или, если браузер уже запущен, открытие этой страницы в новой вкладке),
  • переход к предыдущей дорожке в музыкальном проигрывателе Deadbeef (с его запуском при необходимости),
  • переход к следующей дорожке в музыкальном проигрывателе Deadbeef (с его запуском при необходимости).
Клавиши слева сверху вниз выполняют следующие действия:
  • запуск музыкального проигрывателя Deadbeef для воспроизведения (или, если проигрыватель уже запущен, воспроизведение текущей дорожки сначала),
  • переключение между режимами паузы и воспроизведения в музыкальном проигрывателе Deadbeef (с его запуском при необходимости),
  • остановка воспроизведения текущей дорожки в музыкальном проигрывателе Deadbeef (с его запуском при необходимости, хоть это и не имеет смысла),
  • уменьшение громкости главного звукового канала звуковой карты,
  • увеличение громкости главного звукового канала звуковой карты.
И дополнительно я назначил на клавишу PrtSc запуск программы xfce4-screenshooter для создания снимка текущего окна.

Осталось добавить lineakd в автозагрузку в XFCE. Делается это просто:

Осталось завершить сеанс XFCE и снова войти - lineakd начнёт работу в штатном режиме.

пятница, 6 апреля 2012 г.

Установка системы мониторинга Zabbix

Первым делом ставим сервер мониторинга и веб-интерфейс системы мониторинга:
# apt-get install zabbix-server zabbix-frontend-php snmpd
1. Настройка СУБД MySQL

Подключаемся к БД MySQL с правами администратора, создаём базу данных для Zabbix:
$ mysql -uroot -p
> CREATE DATABASE zabbix DEFAULT CHARACTER SET UTF8
> COLLATE UTF8_GENERAL_CI;
Создаём пользователя, от имени которого Zabbix будет подключаться к MySQL:
> INSERT INTO user(host, user, password) VALUES('localhost', 'zabbix', PASSWORD('zabbix_password'));
> FLUSH PRIVILEGES;
Даём пользователю zabbix полный доступ к базе данных zabbix (случай, когда сервер мониторинга и БД стоят на одном и том же компьютере):
> GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';
> FLUSH PRIVILEGES;
Подключаемся к свежесозданной БД, создаём структуру БД и наполняем её данными:
> USE zabbix;
> SOURCE /usr/share/zabbix-server/mysql.sql
> SOURCE /usr/share/zabbix-server/data.sql
Задаём пароль администратора системы мониторинга и выходим из MySQL:
> UPDATE users SET passwd=MD5('zabbix_admin_password') WHERE alias='admin';
> QUIT
2. Настройка сервера мониторинга

Настроим сервер мониторинга, чтобы он мог подключаться к БД. Отредактируем файл конфигурации /etc/zabbix/zabbix_server.conf, установив значения соответствующих опций:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_password
Запустим сервер мониторинга:
# /etc/init.d/zabbix-server start
3. Настройка веб-интерфейса системы мониторинга

Теперь перейдём к настройке веб-интерфейса системы мониторинга. Для начала настроим сам веб-интерфейс, чтобы он мог подключаться к серверу мониторинга и к БД. Отредактируем файл /usr/share/zabbix/conf/zabbix.conf.php, установив значения соответствующих переменных:
$DB["TYPE"]      = "mysql";
$DB["SERVER"]    = "localhost";
$DB["PORT"]      = "0";
$DB["DATABASE"]  = "zabbix";
$DB["USER"]      = "zabbix";
$DB["PASSWORD"]  = "zabbix_password";
$ZBX_SERVER      = "127.0.0.1";
$ZBX_SERVER_PORT = "10051";
4. Настройка веб-сервера

Теперь настроим веб-сервер (я пользуюсь Lighttpd). Процедуру настройки модуля FastCGI для обслуживания файлов PHP я здесь опущу. Файлы веб-интерфейса лежат в каталоге, отличном от корня документов, поэтому нужно настроить псевдоним. Для этого внесём в файл /etc/lighttpd/lighttpd.conf следующие изменения:
alias.url += (
  "/zabbix/" => "/usr/share/zabbix/"
)
Заставляем веб-сервер перечитать его конфигурацию и можно заходить в веб-интерфейс через браузер:
# /etc/init.d/lighttpd reload
5. Тюнинг PHP

Пройдясь по веб-интерфейсу Zabbix, я обнаружил несколько предупреждений, касающихся настроки PHP. Все предупреждения устраняются настройкой следующих параметров в файле /etc/php5/cgi/php.ini:
date.timezone = Asia/Yekaterinburg
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
После перезапуска веб-сервера предупреждения исчезают:
# /etc/init.d/lighttpd restart
6. Установка и настройка агента системы мониторинга

Теперь можно установить агента мониторинга:
# apt-get install zabbix-agent
Настройка агента сводится к указанию IP-адреса сервера мониторинга в файле /etc/zabbix/zabbix_agent.conf:
Server=127.0.0.1
Теперь сервер мониторинга может наблюдать сам за собой. Можно установить дополнительные агенты мониторинга Zabbix на других компьютерах и настроить их на подключение к серверу мониторинга. Сервер мониторинга работает на TCP-порту 10051, а агент мониторинга - на TCP-порту 10050.

Здесь рассмотрена лишь установка системы мониторинга. Её настройка - отдельная большая тема. Чтобы получить начальное представление об устройстве системы, рекомендую обратиться к статье: FreeBSD: Установка и начальная настройка системы мониторинга Zabbix. Более подробное описание можно найти на официальной вики-странице проекта: Zabbix documentation in Russian.