четверг, 10 мая 2012 г.

NetXMS network monitoring system

Собрал в Сизиф и t6/branch систему мониторинга NetXMS, привлекшую к себе внимание даже не столько эффективной архитектурой, сколько в первую очередь своей консолью:

Она кажется более наглядной и при этом достаточно простой для сменных инженеров по сравнению с любым веб-интерфейсом (ну или как минимум по сравнению со знакомыми мне OpenNMS и Zabbix). Благодаря Eclipse/RAP ее можно запустить не только в качестве кроссплатформенного десктопного приложения, но и через веб тоже - хотя работать с ней таким образом все же менее комфортно.

Да, апстрим добрый и отзывчивый: баги исправляют, фичреквесты реализуют (или, по крайней мере, задумываются), по-русски говорят.

пятница, 20 января 2012 г.

ALT Linux на OMAP3 BlueShark

Попала в руки плата Atoll-Deluxe v4 с процессорным модулем OMAP3 BlueShark и LCD-панелью NEC E170632:

На борту уже имелся Ångström Linux, однако захотелось получить более привычное окружение. Имевшаяся в комплекте загрузочная SD-карта была разбита на два раздела:
  • с U-Boot и ядром
  • с корневой файловой системой
Поэтому я решил просто отложить родной корень в сторонку и сгенерировать новый традиционным для ALT Linux способом, загрузившись для начала со штатным ядром. Получилось не сразу, но Paul Wolneykien помог решить основную проблему с логином через mini-USB - а дальше дело оказалось в шляпе. Профиль доступен здесь, выложены: В планах сборка правильного ядра.

пятница, 25 ноября 2011 г.

Последняя версия ALT Linux Live

Обновил ALT Linux Live до текущего branch/t6, доступны образы: И, скорее всего, эта сборка будет последней. У меня не хватает сил самостоятельно поддерживать профиль m-p-l в актуальном состоянии, а тем временем наследник тонущего от переизбытка возможностей и их бессистемного добавления основного профиля m-p-d в лице m-p довольно активно развивается. Поэтому со временем я планирую перебираться на него, чего всем выпиливателям кастомных образов и советую.

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

Колоночная СУБД MonetDB

Внезапно дошли руки пощупать настоящую колоночную СУБД в реализации MonetDB, свежая версия которой в честь этого доступна в Сизифе и t6/branch. Тестировал на старой задаче, которая замечательно укладывается в область применения колоночных СУБД - учет объема ip-трафика по различным критериям (периоды, сети, хосты, пропущено/зарезано). Впечатления смешанные. Оно действительно уделывает тщательно тюненный PostgreSQL:
  • Загрузка данных из текстового файла происходит в 3 раза быстрее
  • Выборка с GROUP BY и полным сканированием большой таблицы - в 7 раз быстрее
  • Выборка небольшого набора строк с кучей WHERE - на удивление даже это чуть вышло быстрее, однако в пределах погрешности измерений
  • Размер БД в 1,5 раза меньше исходного текстового файла
Однако ничего не бывает просто так. Помимо ожидаемых проблем колоночных СУБД с одновременным доступом на запись, которые в данном случае совершенно не актуальны, обнаружились и пара более неприятных вещей, являющихся уже особенностью реализации MonetDB:
Это уже не говоря о значительно более лаконичной по сравнению с PostgreSQL документацией и несравнимо меньшим комьюнити. Поэтому рекомендовать это кому-либо в production я не решаюсь, хотя сам, пожалуй, попробую ;)

четверг, 7 апреля 2011 г.

Автоинсталляция ALT Linux Live

Некоторое время назад у меня возникла необходимость установить и предварительно настроить около 30 идентичных серверов. Дело слегка осложнялось тем, что расстояние от них до меня измеряется десятками и сотнями километров, а потому без помощи местных специалистов не обойтись было никак, но и обучать их чему-то более сложному, чем вставить диск или настроить сетевую загрузку, было крайне нежелательно.

Для решения задачи на базе фичи fakeinstall была изготовлена фича autoinstall и с ее помощью задача была быстро решена, однако чувства удовлетворенности не появилось. Во-первых, код в фичах дублировался, а во-вторых, практически всю процедуру настройки пришлось оформить отдельным коммитом во внутреннем бранче - там гвозди совсем большие и толстые.

Положение исправил неожиданно проснувшийся интерес других участников ALT Linux Team к моей процедуре [авто]инсталляции. Например, Михаил Пожидаев выпилил пересекающуюся часть упомянутых выше фич в пакет live-install и использовал его в своем проекте специализированного дистрибутива для людей с ограничениями по зрению. Теперь уже мне ничего не оставалось, кроме как задействовать этот пакет и выкинуть из фич ненужный код, а заодно по аналогии с eeelive - сделать пакет и фичу для тонкого подпиливания уже загруженного (в моем случае как правило по сети) образа - и тем самым утащить самые страшные гвозди из профиля в настраиваемые внешние скрипты.

Обновленные образы, собранные на текущем branch/5.1, по традиции можно взять здесь.

четверг, 12 августа 2010 г.

Король умер, да здравствует король ...

CallWeaver медленно, но верно впадает в анабиоз (критерий - количество новых коммитов в SVN), и потому я давно стал приискивать ему такую замену, которая не называется Asterisk.

Остановился в итоге на FreeSWITCH, который соблазнил меня:
  • Красивой архитектурой с честной модульностью и возможностью масштабироваться от софтфона до софтсвитча
  • Использованием уже зарекомендовавших себя свободных фреймворков (Apache Portable Runtime для обеспечения переностимости между различными платформами, SofiaSIP в качестве SIP-стека и т.д.)
  • Конфигурацией в XML (по мне это значительно удобнее ini-файлов) с возможностью перечитывать фрагменты конфигурации с HTTP-сервера в процессе работы
Правда размер дефолтной конфигурации совершенно безумен, да сама она скорее сборник примеров, чем то, от чего можно отталкиваться в процессе настройки системы для промышленной эксплуатации. Поэтому по аналогии с CallWeaver я выпилил для себя минимально работоспособный вариант, который дальше по мере необходимости уже можно наращивать дополнительными возможностями. Хотел было даже подбить текущего майнтейнера FreeSWITCH в ALT Linux сделать этот вариант конфигурации одним из коробочных - да тот оказался слишком несговорчивым :(

вторник, 4 мая 2010 г.

Java services with Maven

Наконец-то я научился использовать maven :) Устанавливаем аналогично Groovy:
# cd /opt
# wget http://www.sai.msu.su/apache/maven/binaries/apache-maven-2.2.1-bin.zip
# unzip apache-maven-2.2.1-bin.zip 
# ln -s apache-maven-2.2.1 maven
# cat > /etc/profile.d/m2home.sh << EOF
> M2_HOME=/opt/maven
> export M2_HOME
> export PATH=$PATH:$M2_HOME/bin
> EOF
# chmod 755 /etc/profile.d/m2home.sh
В качестве подопытного кролика используем мои старые примеры, разрезанные на 2 части:
Собираем:
$ git clone git://github.com/enp/service.git
$ cd service/
$ mvn package
$ du -s target/service-0.1*
2.2M    target/service-0.1-dist.zip
8.0K    target/service-0.1.jar
12K     target/service-0.1-src.zip
Запустить можно как приложение:
$ cd target/
$ unzip service-0.1-dist.zip 
$ cd service-0.1
$ java -jar service-0.1.jar 
И как сервис:
# apt-get install java-service
# java-service-create myservice
# service myservice start
# service myservice status
# service myservice stop
# java-service-destroy myservice
В пакете java-service в качестве уже скомпилированной реализации сервиса (файл /var/lib/java-service/template.zip) лежит то, что доступно по тегу service. Командой java-service-create myservice архив template.zip разворачивается в /var/lib/java-service/myservice - и вот содержимое этого каталога я уже подменяю моим собственным приложением.