• Последнее обновление было в 21:15:11 2016-05-30 MSK
  • [Из песочницы] Как помочь силам добра бороться со спамом или DMARC на вашем сервере
    mxms в 13:06:49 с метками Серверное администрирование, *nix, dmarc, smtp, exim, freebsd, dkim, spf, shell

    В последние несколько лет в Интернет идёт активное внедрение технологии DMARC в качестве инструмента для эффективной борьбы со спамом.

    Если не вдаваться в технические детали, с которыми лучше ознакомиться на специализированных ресурсах, к примеру dmarc.org или из статей на Habrahabr, то суть DMARC состоит в возможности, во-первых, основываясь на результатах проверки SPF и DKIM сообщить серверу-получателю о действиях, которые следует предпринять в случае обнаружения проблем при их проверке, а, во-вторых, получить статистику и оперативные отчёт об источниках отправки сообщений для данного домена.

    Исходя из вышеизложенного, задача внедрения поддержки DMARC на конкретном почтовом сервере состоит в обеспечении реализации политики домена-отправителя на локальном уровне и отправки аналитических отчётов в качестве вклада в глобальный процесс борьбы со спамом.
    Читать дальше →
  • Релиз операционной системы NetBSD 7.0.1
    в 20:03:58
    Спустя семь месяцев после релиза NetBSD 7.0 подготовлен корректирующий выпуск NetBSD 7.0.1, в котором проведена работа по устранению проблем, влияющих на стабильность и безопасность. Из исправлений можно отметить устранение краха ядра при извлечении примонтированного USB-накопителя, краха в NFS и проблем с устройствами gif.
  • Проект OpenBSD перешёл на обязательное использование механизма защиты W^X
    в 06:35:25
    Проект OpenBSD перешёл на обязательное применение механизма защиты памяти W^X (Write XOR Execute), суть которого в том, что страницы памяти процесса не могут быть одновременно доступны на запись и исполнение. Таким образом, код может быть исполнен только после запрещения записи, а запись в страницу памяти возможна только после запрета исполнения. Механизм W^X помогает защитить приложения в пространстве пользователя от типовых атак, осуществляемых через переполнение буфера, в том числе от переполнений стека (записанный за пределы буфер код не может быть исполнен).
  • Основы использования NFS на примере FreeBSD
    Eax в 10:00:13 с метками Прочее, FreeBSD
    NFS (Network File System) — сетевая файловая система, или, если другими словами, протокол, позволяющий получать доступ к файлам по сети так, словно они находятся у вас локально. NFS можно использовать как альтернативу Samba, например, для хранения ваших фоточек. А системы вроде PVA и Proxmox, к примеру, используют NFS для хранения ISO-образов операционных систем, шаблонов виртуальных машин, [...]
  • Во FreeBSD устранены локальные уязвимости в sendmsg и atkbd
    в 06:49:22
    Разработчики FreeBSD устранили две уязвимости, позволяющие локальному непривилегированному пользователю потенциально выполнить свой код с правами ядра.
  • Проброс физического устройства стримера в jail
    в 00:29:46 с метками железо, jail, nas, nas4free, lto
    Ставить софт управления стримером напрямую в хост nas4free - удовольствие ниже среднего. Хочется в клетку. Но для этого надо пробросить в неё стример. К счастью, разработчик TheBrig alexey123 аккуратнейшим образом реализовал даже этот специфический функционал создания клетки. Респект!

    1. Выясняем какие устройства надо пробрасывать.
    1.1 Сначала в хосте даём

    nas4free ~/ root~$ camcontrol devlist
    ATA ST4000DM000-1F21 CC52 at scbus0 target 4 lun 0 (pass0,da0)
    ATA ST4000DM000-1CD1 CC43 at scbus0 target 5 lun 0 (pass1,da1)
    ATA ST4000DM000-1F21 CC52 at scbus0 target 6 lun 0 (pass2,da2)
    ATA ST4000DM000-1F21 CC52 at scbus0 target 7 lun 0 (pass3,da3)
    ATA ST4000DM000-1F21 CC51 at scbus0 target 8 lun 0 (pass4,da4)
    ATA ST4000DM000-1F21 CC52 at scbus0 target 9 lun 0 (pass5,da5)
    ATA ST4000DM000-1F21 CC52> at scbus0 target 10 lun 0 (pass6,da6)
    ATA ST4000DM000-1F21 CC52 at scbus0 target 11 lun 0 (pass7,da7)
    HP Ultrium 4-SCSI U64D at scbus1 target 8 lun 0 (sa0,pass8)
    WDC WD20EARS-00MVWB0 51.0AB51 at scbus2 target 0 lun 0 (ada0,pass9)
    AHCI SGPIO Enclosure 1.00 0001 at scbus3 target 0 lun 0 (pass10,ses0)
    General UDisk 5.00 at scbus4 target 0 lun 0 (da8,pass11)


    В моём случае видно, что лента HP Ultrium 4-SCSI U64D at scbus1 target 8 lun 0 (sa0,pass8)
    То есть нас интересует sa0 и pass8

    1.2 Если почитать ман
    /dev/[n][e]sa[0-9] general form:
    /dev/sa0 Rewind on close
    /dev/nsa0 No rewind on close
    /dev/esa0 Eject on close (if capable)
    /dev/sa0.ctl Control mode device (to examine state while another
    program is accessing the device, e.g.).

    1.3 И, затем, внимательно изучить вывод команды ls -la /dev, то можно найти имеющие к ленте отношения устройства и права на них (лишнее я выкикнул)
    nas4free ~/ root~$ ls -la /dev
    (...)
    crw-rw---- 1 root operator 0x6c May 12 21:02 esa0
    crw-rw---- 1 root operator 0x6b May 12 21:02 nsa0
    crw------- 1 root operator 0x66 May 12 21:02 pass8
    crw-rw---- 1 root operator 0x6a May 12 21:02 sa0
    crw-rw---- 1 root operator 0x69 May 12 21:02 sa0.ctl



    Вот эти устройства с этими правами и будем пробрасывать в клетку.

    Прим. У меня стример ручной. Если есть автозагрузчик - то он ch[0-9]

    2. (Не обязательно) создадим под нашу клетку датасет. Я лично создаю под все. Удобно делать снимки и откатываться.
    Датасет у меня Pool/Ext/Jails/lto

    3. Global enforce_statfs

    Идём в Extensions|TheBrig Jails и внизу выбираем глобальный параметр enforce_statfs равным 0 или 1. По умолчанию у нас 2 и устройства пробрасывать нельзя.


    4. Создадим клетку с именем lto как обычно в TheBrig
    Запустим, и убедимся, что никаких устройств в ней нет. (у меня jls показала, что номер искомой клетки 4

    nas4free ~/ root~$ jexec 4 ls -la /dev
    total 19
    dr-xr-xr-x 10 root wheel 512 May 15 23:50 .
    drwxr-xr-x 17 root wheel 21 Aug 12 2015 ..
    crw-rw-rw- 1 root wheel 0x48 May 12 21:02 crypto
    dr-xr-xr-x 2 root wheel 512 May 12 21:02 fd
    crw-rw-rw- 1 root wheel 0x1d May 15 23:51 null
    dr-xr-xr-x 2 root wheel 512 May 15 23:50 pts
    crw-rw-rw- 1 root wheel 0x20 May 12 21:03 random
    lrwxr-xr-x 1 root wheel 4 May 15 23:50 stderr -> fd/2
    lrwxr-xr-x 1 root wheel 4 May 15 23:50 stdin -> fd/0
    lrwxr-xr-x 1 root wheel 4 May 15 23:50 stdout -> fd/1
    lrwxr-xr-x 1 root wheel 6 May 15 23:50 urandom -> random
    crw-rw-rw- 1 root wheel 0x1e May 12 21:02 zero



    5. Остановим клетку, жмём гаечный ключ на её редактировании и кнопку More внизу открывшегося диалога.
    5.1 Смотрим, что в In jail allow:указано
    allow.mount
    allow.mount.devfs
    и, заодно,
    allow.mount.procfs

    5.2 Чуть ниже в Mount выбираем для параметра Information about a mounted file system (statfs) значение 1 или 0 (поставить меньше чем задано в Global enforce_statfs невозможно)
    И ставим галку на Enable mount devfs


    5.3 теперь нам надо добавить в Devfs ruleset наши устройства (отобранные в п 1.3) с правильными правам
    add path esa0 unhide mode 0660
    add path nsa0 unhide mode 0660
    add path pass8 unhide
    add path sa0 unhide mode 0660
    add path sa0.ctl unhide mode 0660

    5.4 Сохраняем, применяем изменения, запускаем клетку, смотрим устройства и права в клетке и в хосте

    nas4free ~/ root~$ jexec 9 ls -la /dev/*sa* /dev/pass8
    crw-rw---- 1 root operator 0x6c May 12 21:02 /dev/esa0
    crw-rw---- 1 root operator 0x6b May 12 21:02 /dev/nsa0
    crw------- 1 root operator 0x66 May 12 21:02 /dev/pass8
    crw-rw---- 1 root operator 0x6a May 12 21:02 /dev/sa0
    crw-rw---- 1 root operator 0x69 May 12 21:02 /dev/sa0.ctl
    nas4free ~/ root~$ ls -la /dev/*sa* /dev/pass8
    crw-rw---- 1 root operator 0x6c May 12 21:02 /dev/esa0
    crw-rw---- 1 root operator 0x6b May 12 21:02 /dev/nsa0
    crw------- 1 root operator 0x66 May 12 21:02 /dev/pass8
    crw-rw---- 1 root operator 0x6a May 12 21:02 /dev/sa0
    crw-rw---- 1 root operator 0x69 May 12 21:02 /dev/sa0.ctl


    Совпадает

    5.5 проверим, что лента доступна из клетки

    nas4free ~/ root~$ jexec 9 mt -f /dev/sa0 status
    Drive: sa0: Serial Number: HUE3500CPF
    ---------------------------------
    Mode Density Blocksize bpi Compression
    Current: 0x46:LTO-4 variable 323215 enabled (0x1)
    ---------------------------------
    Current Driver State: at rest.
    ---------------------------------
    Partition: 0 Calc File Number: 0 Calc Record Number: 0
    Residual: 0 Reported File Number: 0 Reported Record Number: 0
    Flags: BOP


    Бинго! Теперь можно сделать с клетки снапшот и ставить в неё всякий архивный софт.

    PS Получилось благодаря этому посту
  • Во FreeBSD появится прослойка для использования графических драйверов ядра Linux
    в 08:20:26
    Разработчики FreeBSD пересмотрели подход к портированию DRM/KMS-драйверов из ядра Linux. Если ранее новая версия DRM-драйвера Linux адаптировалась для ядра FreeBSD, что приводило к необходимости применения достаточного большого патча (различия составляют почти 17 тысяч строк), то при портировании драйвера Intel i915 из ядра Linux 3.9+ будет применён новый подход - драйвер будет поставляться с минимальным числом изменений, а для его работы будет применена специальная прослойка KPI, транслирующая вызовы окружения Linux в окружение ядра FreeBSD.
  • Пятидесятый выпуск репозитория пакетов pkgsrc
    в 20:41:18
    Разработчики проекта NetBSD представили релиз репозитория пакетов pkgsrc-2016Q1, который стал пятидесятым по счёту выпуском проекта. Система pkgsrc была создана 18 лет назад на основе портов FreeBSD и в настоящее время используется по умолчанию для управления коллекцией дополнительных приложений в NetBSD и Minix, в качестве дополнительного средства распространения пакетов pkgsrc также применяется пользователями DragonFlyBSD, Solaris/illumos и OS X. В общем виде Pkgsrc поддерживает 23 платформы, включая AIX, FreeBSD, HPUX, Haiku, IRIX, Linux, OpenBSD, QNX и UnixWare.
  • Отчёт о развитии FreeBSD за первый квартал 2016 года
    в 09:05:23
    Опубликован отчёт о развитии проекта FreeBSD с января по март 2016 года.
  • Выпуск десктоп-окружения Lumina 0.9, развиваемого для FreeBSD и PC-BSD
    в 05:41:14
    Сформирован релиз легковесного окружения рабочего стола Lumina 0.9.0, развиваемого проектом PC-BSD. Компоненты окружения написаны с использованием библиотеки Qt5 (без применения QML), в качестве оконного менеджера применяется Fluxbox. Lumina изначально нацелен на работу во FreeBSD/PC-BSD и отталкивается от возможностей FreeBSD, отодвигая на второй план портирование для других платформ (что не мешает в его портировании). Код проекта написан на языке C++ и распространяется под лицензией BSD. Новый выпуск Lumina уже доступен через систему портов FreeBSD и добавлен в репозиторий PC-BSD "Edge" (x11/lumina[-i18n]).
  • Запись образа на DVD в FreeBSD 10
    Воронов Глеб в 03:06:05 с метками FreeBSD, cdcontrol, dd, dvd, freebsd, growisofs, iso
    Вот уж не думал, что возникнет необходимость, но потребовалось записать установочный образ семёрки на DVD Привод был только на машине с FreeBSD. Установка необходимого порта: [crayon-574c7fac065ac015485799/] Переходим в каталог с образом и даём команду [crayon-574c7fac065b4042048742/] Вывод получается примерно следующий [crayon-574c7fac065b9518947394/]…
    ДАЛЕЕ
  • В NTP 4.2.8p7 устранено 11 уязвимостей
    в 16:39:22
    Доступен корректирующий выпуск сервера для синхронизации точного времени NTP 4.2.8p7, в котором устранено 11 уязвимостей, большинство из которых выявлено в процессе аудита, проведённого компанией Cisco. Уязвимостям присвоен средний или низкий уровень опасности из-за специфичных условий эксплуатации (например, отсутствие блокировки спуфинга UDP-пакетов).
  • Разработчики OpenBSD подготовили для libc механизм защиты anti-ROP
    в 06:32:59
    В списке рассылки разработчиков OpenBSD опубликован набор патчей с реализацией новой техники защиты anti-ROP, основанной на случайном перестроении порядка расположения экспортируемых символов в системной библиотеке libc.so, выполняемом при каждой загрузке системы. Перестроение приводит к увеличению времени загрузки на несколько секунд.
  • Samba 10G Performance
    lexa в 12:47:39

    Картинка для привлечения внимания. Сервер FreeBSD+Samba, клиент: Windows 8.1 ,

    Есть у меня FreeBSD-шный бокс с ZFS к которому я хожу по Samba по 10G-линку. И до вчерашнего дня производительность не радовала, 200Mb/sec получались только изредка, а вообще типичная скорость была лишь немногим выше гигабита. При этом

    • MTU 9000 на этом линке - глючило (временами отваливалась сеть)
    • А практически такой же бокс (сторадж -
    • ...
  • Корректирующий релиз DragonFlyBSD 4.4.3
    в 12:34:02
    Доступен корректирующий релиз операционной системы DragonFlyBSD 4.4.3.
  • Руководство по созданию собственного LiveCD/LiveUSB дистрибутива на базе FreeBSD
    в 08:10:48
    Опубликована подробная инструкция по модификации Live-образов проекта mfsBSD. Автор (Егор Вершинин) использовал идеи, заложенные еще Сергеем Можайским в проекте Frenzy (подготовка сжатых образов файловых систем, монтирование их поверх + добавление unionfs). По словам автора, сборка по HOW-TO настолько проста, что не требует никаких специфичных знаний и занимает весьма небольшое время. На внешнем ресурсе (использован dropbox) размещён демонстрационный образ, собранный по инструкции.
  • Релиз дистрибутива для создания межсетевых экранов pfSense 2.3
    в 07:32:38
    Доступен выпуск компактного дистрибутива для создания межсетевых экранов и сетевых шлюзов pfSense 2.3. Дистрибутив основан на кодовой базе FreeBSD 10.3 с задействованием наработок проекта m0n0wall и активным использованием pf и ALTQ. Для загрузки доступно несколько образов для архитектур i386 и amd64, размером от 300 до 350 Мб, включая LiveCD и образ для установки на USB Flash.
  • Краткая шпаргалка по использованию GNU screen
    Eax в 09:00:04 с метками Прочее, FreeBSD, Linux
    Сегодня я хотел бы поделиться небольшой шпаргалкой по screen. Пользуюсь я этой утилитой крайне редко. Поэтому я постоянно забываю, что и как делается. Отсюда и потребность в шпаргалке. Напомню, что screen — это программа, которая позволяет открывать несколько терминалов в одном. Это очень удобно, если вы работаете по SSH или просто без иксов. Также в [...]
  • Памятка по отладке ядра и драйверов во FreeBSD
    Eax в 09:00:10 с метками Прочее, FreeBSD, Отладка
    Недавно мы научились собирать FreeBSD из исходных кодов. Этих знаний достаточно, если вы хотите просто попробовать самые свежие фичи системы или оптимизировать FreeBSD под конкретное железо. Но если вы собираетесь как следует порыться в кишках системы, дабы лучше разобраться в ее работае, или даже что-то изменить в ней, необходимо уметь цепляться к системе отладчиком. Да [...]
  • Релиз десктоп-ориентированной ОС PC-BSD 10.3
    в 06:51:47
    Представлен релиз десктоп-ориентированной операционной системы PC-BSD 10.3, основанной на кодовой базе FreeBSD 10.3. В качестве пользовательского окружения на выбор предлагаются Lumina, KDE4, GNOME3, MATE, Cinnamon, LXDE и Xfce. Развитие PC-BSD курирует компания iXsystems, которая активно участвует в развитии FreeBSD, например, способствует улучшению поддержки ZFS и спонсирует многие инициативы FreeBSD Foundation.
  • Релиз FreeBSD 10.3
    в 04:21:50
    После семи месяцев разработки официально представлен релиз FreeBSD 10.3, который доступен для архитектур amd64, i386, ia64, powerpc, powerpc64, sparc64 и armv6. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Hashicorp/Atlas Vagrant. Среди ключевых новшеств: существенное улучшение работы на системах UEFI, в том числе возможность загрузки на корневых разделах с ZFS, функция смены корневой ФС (reroot) во время загрузки, поддержка выполнения 64-разрядных приложений в режиме эмуляции Linux, добавление средств кластеризации в CAM Target Layer (CTL).
  • Досрочно выпущен OpenBSD 5.9
    в 19:41:58
    На месяц раньше ожидаемой даты увидел свет релиз операционной системы OpenBSD 5.9. Операционная система OpenBSD была основана Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 21 аппаратная платформа), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 5.9 составляет 213 Мб.
  • Собираем ядро и мир FreeBSD из исходников
    Eax в 09:00:44 с метками Прочее, FreeBSD
    Сегодня мы научимся собирать ядро и мир (основные исполняемые файлы, библиотеки и тд) FreeBSD из сходных кодов. Ранее в заметке PostgreSQL: сборка из исходников и настройка под Linux мы выясняли, зачем нужно уметь собирать что-то из исходников. Основными сценариями являются оптимизация под конкретное железо и получение самого свежака прямо из ветки master. Кроме того, вы [...]
  • Профилирование кода на C/C++ в Linux и FreeBSD
    Eax в 09:00:19 с метками Прочее, C/C++, FreeBSD, Linux, Оптимизация
    Рассмотрим типичную ситуацию — приходит пользователь и говорит «я делаю в приложении то-то и то-то и у меня все сильно тормозит». Как понять, в чем проблема, и исправить ее? Вот об этом мы и поговорим в данной заметке. Приведенный список методов не претендует на полноту, однако это то, что в настоящее время я чаще всего использую [...]
  • Nginx не передает Apache реальный IP пользователя
    admin в 23:53:50 с метками FreeBSD, *nix
    Понадобилось на одном проекте сделать определения страницы пользователя по гео-данным и анализу php переменной HTTP_ACCEPT_LANGUAGE для корректного направления домена на язык пользователя. Скрипт был написан и успешно протестирован на работоспособность на локальном сервере. После загрузки на сервер и внедрения – эффекта не было. При анализе выяснилось, что IP-адрес пользователя в переменной $_SERVER['REMOTE_ADDR'] был 127.0.0.1 Apache [...]
  • [ZFS] Замена сбойного диска сбойным
    skeletor в 12:38:02 с метками FreeBSD, Solaris
    Не знаю, проявляется ли это на новых версиях ZFS, но достаточно интересный хак. И так, ситуация следующая: при замене диска в пуле, в процесс перестройки, выпал заменяемый диск. Тогда пул навсегда замирает в состоянии DEGRADED. Как быть? Вот здесь подсмотрел хак. Приведу цитатой: echo zfs_no_scrub_io/W0t1 | mdb -kw После этого надо дать resilver закончиться (он пройдёт […]
  • Управление пакетами во FreeBSD при помощи утилиты pkg
    Eax в 09:00:25 с метками Прочее, FreeBSD
    Как известно, во FreeBSD можно использовать пакеты как бинарные, так и собранные из исходных кодов при помощи портов. Устройство портов за последнее время ничем не изменилось. А вот на смену утилитам для управления бинарными пакетами pkg_add, pkg_info и прочим pkg_* в последних версиях FreeBSD пришел новый пакетный менеджер pkg (также известный как pkgng). Данная небольшая [...]
  • OpenBSD SNMP check
    anaumov в 13:55:38 с метками OpenBSD, python

    It seems like there are no OpenBSD SNMP checks on exchange.nagios.org or exchange.icinga.org. I found few checks for this operating system, but NO scripts which use SNMPv2c. Nobody trusts SNMPv2c? Well, as we know, the most common alternative acronym for SNMP is “Security? Not My Problem!”, right? On the other hand, SNMP is the de facto standart for gathering information from network devices or servers.
    Anyway, I have this free operating system at home and on this weekend I spent a bit time to play with SNMP. It makes fun to learn something new. SNMP servers on different systems support different OIDs/MIBs. OpenBSD includes an SNMP agent, snmpd(8), which supports all of the usual SNMP functions, and also offers visibility into OpenBSD-specific feautures such as packet filtering.

    I concentrated on standard MIBs and wrote a small python script to monitor the memory usage, the CPU load average and the file system space usage. It looks like a common nagios plugin. In addition, it also shows information about network interfaces, file systems in tabular form and the list of running processes. Make it sense for people?:)

    These 3 functions are info functions and was implemented just to show the system’s status overview and to help to configure checks. For example, we can get storage information to see the list of all mounted file systems. Use file-systems option for that:

    > ./check_snmp_openbsd.py 192.168.0.2 public file-systems
    
        SIZE                USED                AVALIABLE           FILE SYSTEM
    ==================================================================================
     1004.7 Mb         46.2 Mb (4.59 %)       958.6 Mb (95.41 %)    /                             
       47.3 Gb         20.0 Kb (0.00 %)        47.3 Gb (100.00 %)   /home                         
        3.9 Gb          8.0 Kb (0.00 %)         3.9 Gb (100.00 %)   /tmp                          
        2.0 Gb        316.4 Mb (15.72 %)        1.7 Gb (84.28 %)    /usr                          
     1004.8 Mb        173.6 Mb (17.27 %)      831.2 Mb (82.73 %)    /usr/X11R6                    
        8.6 Gb         10.0 Mb (0.11 %)         8.6 Gb (99.89 %)    /usr/local                    
        2.0 Gb          2.0 Kb (0.00 %)         2.0 Gb (100.00 %)   /usr/obj                      
        2.0 Gb          2.0 Kb (0.00 %)         2.0 Gb (100.00 %)   /usr/src                      
        4.9 Gb          4.8 Mb (0.10 %)         4.9 Gb (99.90 %)    /var

    OpenBSD supports hrStorageTable, which actually shows the same information with the exception of percentage representation. I coped this function from my HP-UX script anyway.
    Now we know about file systems already mounted on own target system and can to configure checks:

    > ./check_snmp_openbsd.py 192.168.0.2 public fs:/usr/X11R6 80 90
    OK: FS usage 17.27 % [ 173.6 Mb / 1004.8 Mb ]|usage=17.27;80;90;0;0
    > echo $?
    0
    
    > ./check_snmp_openbsd.py 192.168.0.2 public fs:/ 4 9
    WARNING: FS usage 4.59 % [ 46.2 Mb / 1004.7 Mb ]|usage=4.59;4;9;0;0
    > echo $?
    1
    

    To monitor memory usage or swap, use mem or swap options:

    > ./check_snmp_openbsd.py 192.168.0.2 public mem 20 90
    WARNING: Memory usage 24.53 % [ 125.4 Mb / 511.3 Mb ]|usage=24.53;20;90;0;0
    > echo $?
    1
    
    > ./check_snmp_openbsd.py 192.168.0.2 public swap 4 9
    OK: Swap usage 0.00 % [ 0.0 b / 767.4 Mb ]|usage=0.00;4;9;0;0
    > echo $?
    0

    These 3 checks (swap, memory and file systems space usage) use the same function storage(). This function returns the integer value and the output string. main() compares this return value to warning and critical input parameters, i.e. the final decision (check state) is taken by main() function. The same logic has the cpu() function. For all values returned to main(), script spawns output with performance data (for creating graphs) with a percentage representation (0..100).

    To check the CPU load average, script has the cpu option:

    > ./check_snmp_openbsd.py 192.168.0.2 public cpu 4 9
    OK: CPU load average 1 % |'1 min'=1;4;9;0;0

    In case of CPU, what does return value means? I think, the CPU performance is one of the easier metrics to measure. The load average is the average number of processes currently ready to run. That is, it is an estimate of the number of processes that are capable of using the CPU at any given time. What tells us the standard? The RFC2790 tells: The average, over the last minute, of the percentage of time that this processor was not idle. Is this description clear?
    I think, to be able to say something concretely about CPU performance, in additions to CPU load average we need also to know how many CPU cores this machine has… Anyway this value is *ALL* what we can get from OpenBSD (did I miss something?). This value will be used to create a graph:

    CPU_OPENBSD
    It’s also possible to monitor the list of processes running on OpenBSD. To get this list, use proc option. It will show you the PID, STATE and TYPE of processes running at this moment:

    > ./check_snmp_openbsd.py 192.168.0.2 public proc
    
    PID        STATE        TYPE            PROC
    ================================================================
    1          runnable     application     init 
    1433       runnable     application     syslogd 
    1455       runnable     application     getty std.9600 ttyC0
    1624       runnable     application     smtpd 
    1972       runnable     application     pflogd 
    2217       runnable     application     dhclient 
    2289       runnable     application     cron 
    3809       runnable     application     xdm 
    5209       running      application     snmpd 
    5531       runnable     application     ksh 
    5599       runnable     application     sshd 
    5683       runnable     application     smtpd 
    5691       runnable     application     ksh 
    7626       runnable     application     snmpd 
    9492       runnable     application     smtpd 
    11095      runnable     application     getty std.9600 ttyC3
    12554      runnable     application     smtpd 
    14171      runnable     application     ksh 
    14960      runnable     application     dhclient 
    15196      runnable     application     smtpd 
    15432      runnable     application     Xorg 
    16474      runnable     application     syslogd 
    16676      runnable     application     xconsole 
    16707      runnable     application     xconsole 
    16897      runnable     application     xdm 
    16942      runnable     application     fvwm 
    17296      runnable     application     sshd 
    17647      runnable     application     getty std.9600 ttyC1
    18782      runnable     application     getty std.9600 ttyC2
    21983      runnable     application     smtpd 
    24911      runnable     application     sshd 
    25946      runnable     application     pflogd 
    29033      runnable     application     snmpd 
    29488      runnable     application     Xorg :0 vt05 -auth /etc/X11/xdm/authdir/authfiles/A:0-THfdBX
    29720      runnable     application     FvwmPager 7 4 /usr/X11R6/lib/X11/fvwm/.fvwmrc 0 8 0 0
    30087      runnable     application     getty std.9600 ttyC5
    30187      runnable     application     xterm 
    30486      runnable     application     sh /etc/X11/xdm/Xsession
    30525      runnable     application     ksh 
    30564      runnable     application     smtpd 
    30656      runnable     application     sndiod
    
    > ./check_snmp_openbsd.py 192.168.0.2 public proc 40 60
    OK: running 28 processes [max 1310]|processes=28;40;60;0;0
    

    If you type 2 parameters more, script will to interpret this as a warning and critical values for check. This check monitors the number of running processes. …if somebody really need it:)
    PROC_OPENBSD
    To monitor some specific processes (or PIDs) makes no sense, I guess. If you need to know about, for example, Web Server, I will recommend to use HTTP(s) and ask it directly.

    The last information that you can get via this script is the interface configuration. The option interfaces shows you the list of all interfaces found on this system. As you can see, I have 2 configured interfaces on my OpenBSD at home. Do not surprised, the second interface, iwi0, is actually wireless, but SNMP recognizes it as the ethernetCsmacd:

    > ./check_snmp_openbsd.py 192.168.0.2 public interfaces
    
    NAME     STATE   IP              MAC                MTU       TYPE               CONNECTOR  I/O ERROR
    ======================================================================================================
    rl0      up      192.168.0.2     0:3:d:1f:70:73     1500      ethernetCsmacd     true       0/0
    iwi0     up      192.168.3.101   0:e:35:86:8f:a9    1500      ethernetCsmacd     true       0/0
    enc0     down                                       0         other              false      0/0
    lo0      up      127.0.0.1                          32768     softwareLoopback   false      0/0
    pflog0   up                                         33192     other              false      0/0
    

    I’m going to continue to work on this script (for example, using argparse). It has some defects. I also want to support OpenBSD specific MIBs. If you want to test it, you can find it here or here. Feel free to give a feedback or just to send a submit request. It’s free software of course😉


  • Postfix как локальный SMTP-ретранслятор во FreeBSD
    morbo в 11:00:00 с метками 8.2, freebsd, postfix
    Ранее я уже настраивал Postfix в Debian: Postfix как локальный SMTP-ретранслятор. Здесь я выложу ту же заметку, адаптированную применительно к FreeBSD.

    Установим Postfix из портов:
    # cd /usr/ports/mail/postfix
    В процессе установки этого порта оставим отмеченными только опции SASL2 и TLS. Как зависимость опции SASL2 будет установлен также порт security/cyrus-sasl2. У этого порта я оставил отмеченными только опции CRAM, DIGEST, LOGIN и PLAIN.

    Настроим Postfix для отправки почты с подменой отправителя и аутентификацией на сервере провайдера. Настроим в файле /usr/local/etc/postfix/main.cf следующую конфигурацию:
    # Имя сервера и его почтового домена
    myhostname = server.domain.tld
    mydomain = domain.tld

    # Откуда и для кого принимать почту к доставке
    inet_protocols = ipv4
    inet_interfaces = 127.0.0.1
    mydestination = $myhostname, localhost.$mydomain, localhost
    mynetworks = 127.0.0.0/8

    # К адресам локальных отправителей добавлять этот домен
    masquerade_domains = domain.tld

    # Карта соответствия локальных получателей адресам на почтовом сервере ISP
    alias_maps = hash:/etc/mail/aliases
    alias_database = hash:/etc/mail/aliases

    # Карта соответствия локальных отправителей ящикам на почтовом сервере ISP
    sender_canonical_maps = hash:/usr/local/etc/postfix/sender_maps

    # Включаем использование аутентификации на сервере провайдера
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/usr/local/etc/postfix/passwords

    # Включаем выбор учётных данных на сервере провайдера в зависимости от отправителя
    smtp_sender_dependent_authentication = yes
    sender_dependent_relayhost_maps = hash:/usr/local/etc/postfix/sender_relays

    # Если в таблице отправителей нет соответствия, использовать этот почтовый сервер ISP
    relayhost = [mailserver.domain.tld]:587

    # Устанавливаем не более одного исходящего подключения на каждый домен
    default_destination_concurrency_limit = 1

    # Разрешаем использовать механизмы аутентификации PLAIN и LOGIN
    smtp_sasl_security_options = noanonymous
    smtp_sasl_tls_security_options = noanonymous
    smtp_sasl_mechanism_filter = plain, login
    Теперь создадим необходимые карты. Укажем в файле /etc/mail/aliases, на какие ящики на сервере провайдера перенаправлять почту для локальных пользователей:
    postmaster root
    root recipient@domain.tld
    Почта для пользователя root будет перенаправляться в ящик recipient@domain.tld.

    Укажем в файле /usr/local/etc/postfix/sender_maps, какой ящик на сервере провайдера использовать для отправки почты от локального отправителя:
    root sender@domain.tld
    Когда пользователь root попытается отправить письмо, то на сервер провайдера оно уйдёт от отправителя sender@domain.tld.

    Укажем в файле /usr/local/etc/postfix/sender_relays, какой сервер следует использовать для отправки писем от определённого отправителя:
    sender@domain.tld [mailserver.domain.tld]:587
    Когда пользователь root попытается отправить почту, письмо, в соответствии с настройками в файле /etc/postfix/sender_maps, будет отправлено с адреса sender@domain.tld. Письмо от этого отправителя нужно отправить через порт 587 сервера mailserver.domain.tld.

    Укажем в файле /usr/local/etc/postfix/passwords учётные данные каждого из ящиков на сервере провайдера:
    sender@domain.tld sender:password
    Когда пользователь root попытается отправить почту, письмо, в соответствии с настройками в файле /usr/local/etc/postfix/sender_maps, будет отправлено с адреса sender@domain.tld. Письмо от этого отправителя, в соответствии с настройками в файле /usr/local/etc/postfix/sender_relays, нужно отправить через порт 587 сервера mailserver.domain.tld. В соответствии с настройками в этом файле для аутентификации на сервере провайдера нужно будет использовать имя пользователя sender и пароль password.

    Для файла /usr/local/etc/postfix/passwords стоит задать разрешения, ограничивающие возможность подсмотреть пароли локальными пользователями системы:
    # chown root:root /usr/local/etc/postfix/passwords
    # chmod u=rw,g=r,o= /usr/local/etc/postfix/passwords
    При каждом обновлении файлов карт нужно не забывать обновлять их двоичные копии одной из следующих команд:
    # postalias /etc/mail/aliases
    # postmap /usr/local/etc/postfix/sender_maps
    # postmap /usr/local/etc/postfix/sender_relays
    # postmap /usr/local/etc/postfix/passwords
    Двоичные копиии имеют то же имя, но с расширением .db. Права доступа к оригинальному файлу полностью переносятся и на его двоичную копию.

    Теперь нужно отключить использование senadmail и включить postfix. Для этого отредатируем файл /etc/rc.conf, вписав в него следующие опции:
    postfix_enable="YES"
    sendmail_enable="NO"
    sendmail_submit_enable="NO"
    sendmail_outbound_enable="NO"
    sendmail_msp_queue_enable="NO"
    Для отключения служебных периодически запускаемых скриптов sendmail впишем в файл /etc/periodic.conf следующие опции:
    daily_clean_hoststat_enable="NO"
    daily_status_mail_rejects_enable="NO"
    daily_status_include_submit_mailq="NO"
    daily_submit_queuerun="NO"
    В процессе установки порта postfix предлагается заменить содержимое файла /etc/mail/mailer.conf. Если вы отказались, можно исправить упущение, вписав в него следующие настройки:
    #
    # Execute the Postfix sendmail program, named /usr/local/sbin/sendmail
    #
    sendmail /usr/local/sbin/sendmail
    send-mail /usr/local/sbin/sendmail
    mailq /usr/local/sbin/sendmail
    newaliases /usr/local/sbin/sendmail
    Теперь, когда с настройкой покончено, настало время остановить sendmail и запустить вместо него postfix. Для этого выполним следующие команды:
    # /etc/rc.d/sendmail stop
    # /usr/local/etc/rc.d/postfix start
    Осталось проверить правильность работы системы. Попробуем отправить тестовое письмо от имени пользователя root пользователю root:
    # mail -s test root
    test
    .
    На ящик recipient@domain.tld должно прийти письмо от ящика sender@domain.tld.
  • bhyve и дебиановский инсталлятор: их можно примирить?
    Alex Povolotsky в 21:55:40
    Насколько я понял, дебиановский инсталлятор по умолчанию запускается в графическом режиме. bhyve таких изысков не поддерживает, и, как следствие, попытка загрузиться останавливается на инициализации дисплея.

    Не удавалось ли кому победить этот конфликт? Указать какой-нибудь хитрый параметр инсталлятору, или на крайний случай собрать все на virtualbox-е, а потом мигрировать?

    Поделитесь положительным опытом

    UPD. Если идти консолью не на /dev/nmdm0A, а на /dev/nmdm0B, то все работает.

    Дальше идут глюки шестерочного инсталлятора, но они уже не относятся к сообществу
  • ZFS: L2ARC кэш перестал использоваться
    Alex Povolotsky в 22:45:55
    Я понимаю, что "подземный стук", но - на одном из серверов, 10.2-RELEASE, без всякой диагностики в логах перестал использоваться L2-кэш.

    L2 ARC Size: (Adaptive)                         9.60    GiB
            Header Size:                    0.06%   5.87    MiB
    
    L2 ARC Breakdown:                               66.85m
            Hit Ratio:                      0.03%   20.10k
            Miss Ratio:                     99.97%  66.83m
            Feeds:                                  1.30m
    


    при том, что кэша порядка 100 гигабайт и обмен с диском активный. Не выключал.

    Куда копать?
  • как указать правильную либу?
    Alexander Titaev в 22:30:03
    процесс сборки валится на
    /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.10 required by /usr/local/src/grpc/third_party/protobuf/src/protoc not found

    нужное содержит другая либа
    # strings /usr/local/lib/gcc48/libstdc++.so.6 | grep GLIBCXX_3
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10

    запускаю
    CC=gcc48 CXX=g++48 LINK=gcc48 LINKXX=g++48 LD=gcc48 CFLAGS=-Wno-error=sign-conversion LDFLAGS="-L/usr/local/lib/gcc48/ -l/usr/local/lib/gcc48/libstdc++.so.6" gmake

    что делаю не так?
  • Использование FreeBSD на десктопе, версия 2.0
    Eax в 09:00:48 с метками Прочее, FreeBSD
    Прошло три года с тех пор, как я попрощался с FreeBSD, по крайней мере, как с десктопной операционной системой. Сомнений в том, что FreeBSD по большому счету является неплохой серверной ОС, у меня нет. В частности, веб-сервер, отдающий страницы этого блога, работал и продолжает работать на FreeBSD. А вот о том, изменилось ли что-то в мире [...]
  • Как установить права на /dev/zvol/ при загрузке?
    Alex Povolotsky в 19:50:23
    Есть фря, на ней виртуалбокс, в качестве диска - указан раздел на zfs.

    Но виртуалбокс желательно пускать не от рута, а по умолчанию на zvol-разделы права встают root:operator rw-r-----.

    Есть ли какая-то возможность более-менее изящно это сделать, через какой-нибудь devd, например? Тупо chown-chmod в стартовом скрипте отдает грязной кувалдой
  • zfs: пишет и пишет
    Alex Povolotsky в 10:07:18
    Запустил я процесс передачи zfs-снапшота.

    Смотрю и не понимаю


    root@postgres:/home/tarkhil # zfs send -D data/postgres@xfer4 | mbuffer -s 128k -m 1G | ssh -C 192.168.11.3 "mbuffer -s 128k -m 1G | zfs receive -v -F system/postgres"
    receiving full stream of data/postgres@xfer4 into system/postgres@xfer4
    in @ 76.0 MiB/s, out @ 76.0 MiB/s,  473 GiB total, buffer   0% full
    
    root@postgres:/home/tarkhil # zfs list -t snapshot  data/postgres@xfer4
    NAME                  USED  AVAIL  REFER  MOUNTPOINT
    data/postgres@xfer4  1.02G      -  76.7G  -
    
    [20:45] superbook:~ % zfs list system/postgres
    NAME              USED  AVAIL  REFER  MOUNTPOINT
    system/postgres  72,2G   126G  20,5G  /usr/local/pgsql
    



    Вопрос к уважаемому сообществу: ЧТО он столько времени перетаскивает? Я даже не спрашиваю, куда он это девает...
  • Исправление Python-прослойки библиотеки Net-SNMP во FreeBSD
    morbo в 11:00:00 с метками 8.2, freebsd, python, snmp
    Ещё одна заметка, ссылка на которую мне может в дальнейшем понадобиться. В целом заметка повторяет предыдущую, но адаптирована на этот раз применительно к FreeBSD.

    Ниже описано, как я исправил отправку параметров типа IPADDR в запросах SNMP SET в пакете net-snmp-5.7.2_2 во FreeBSD 8.2 своим патчем.

    Перейдём в каталог порта:
    # cd /usr/ports/net-mgmt/net-snmp
    Создадим в каталоге порта files файл патча под именем patch-python__netsnmp__client_intf.c со следующим содержимым:
    --- python/netsnmp/client_intf.c        2010-02-10 15:04:31.000000000 +0500
    +++ python.new/netsnmp/client_intf.c 2014-12-21 18:10:26.677816256 +0500
    @@ -979,14 +979,20 @@

    case TYPE_IPADDR:
    vars->type = ASN_IPADDRESS;
    - vars->val.integer = (long *)malloc(sizeof(long));
    + in_addr_t addr = 0;
    if (val)
    - *(vars->val.integer) = inet_addr(val);
    + addr = inet_addr(val);
    +
    + if (addr && (addr != -1)) {
    + vars->val.string = malloc(sizeof(in_addr_t));
    + vars->val_len = sizeof(in_addr_t);
    + memcpy(vars->val.string, &addr, sizeof(in_addr_t));
    + }
    else {
    ret = FAILURE;
    - *(vars->val.integer) = 0;
    + vars->val.string = (u_char*)strdup("");
    + vars->val_len = 0;
    }
    - vars->val_len = sizeof(long);
    break;

    case TYPE_OBJID:
    @@ -2426,6 +2432,7 @@
    goto done;
    }
    memcpy(tmp_val_str, val, tmplen);
    + tmp_val_str[tmplen] = '\0';
    if (type==TYPE_INTEGER && use_enums && tp && tp->enums) {
    for(ep = tp->enums; ep; ep = ep->next) {
    if (val && !strcmp(ep->label, val)) {
    Теперь очистим порт и распакуем исходники, не накладывая никаких патчей:
    # make clean
    # make extract
    Перейдём в каталог с распакованными исходными текстами:
    # cd work/net-snmp-5.7.2/
    Наложим имеющийся патч, игнорируя пробелы и несовпадение номеров строк, указанных в патче:
    # patch -Np0 --ignore-whitespace < ../../files/patch-python__netsnmp__client_intf.c
    Перейдём в каталог порта и пересоздадим файл патча files/patch-python__netsnmp__client_intf.c, в котором теперь пробелы и номера строк выставятся так, чтобы соответствовать исходникам из порта:
    # cd ../..
    # make makepatch
    Очистим теперь файлы, созданные портом:
    # make clean
    Распакуем и наложим на исходники все патчи, включая наш:
    # make patch
    Если ошибок не было, можно собрать порт:
    # make
    Если порт собрался успешно, его можно установить:
    # make install
    Если порт ранее уже был установлен из той же версии портов, с которой мы только что работали, то можно безболезненно заменить файлы порта:
    # make deinstall
    # make install
    Если же имеющийся в системе пакет был установлен из другой версии портов, тогда для обновления этого порта и всех зависящих от него рекомендую воспользоваться инструментом portupgrade. Рассмотрение этого инструмента я оставлю за рамками этой заметки.
  • Просмотр сетевых соединений с PID’ами процессов
    skeletor в 17:37:21 с метками FreeBSD, Linux, Solaris
    FreeBSD $ sockstat Solaris $ netstat -u Linux $ lsof -i
  • Первые впечатления от Raspberry Pi и как я устанавливал на него FreeBSD
    Eax в 09:00:22 с метками Прочее, FreeBSD, Linux, Девайсы
    По-видимому, в прошлом году я был хорошим котиком, так как Дедушка Мороз положил мне под елку коробочку с Raspberry Pi. В этой заметке я поделюсь своими первыми впечатлениями от использования данного одноплатного компьютера, расскажу, как мне удалось запустить на нем FreeBSD, а также как я отважно рисковал здоровьем в процессе написания поста. Итак, держим в [...]
  • Восстановление GPT - теперь чуть проще.
    bu7cher в 12:41:00 с метками FreeBSD, gpart, gpt, PMBR
    Вчера смержил в stable/10 патч, который учит ядро и загрузчик FreeBSD обнаруживать GPT при повреждённом PMBR. У этого есть два эффекта. Во-первых, теперь если повредить первые несколько секторов, то GPT всёравно будет определяться. Не нужно выполнять странных манипуляций с записью /boot/pmbr в первый сектор при помощи dd(1). Второй эффект следует из первого - теперь GPT не уничтожить простым
  • New linuxolator in STABLE-10
    Dmitry Morozovsky в 20:16:20
    А ещё Дмитрий Чагин (dchagin@) взялся сегодня переносить в stable/10 свои изменения линуксолятора -- в первую очередь, совместимость с x86-64, new glibc, threads.

    Анонса не нашёл, поэтому можно просто смотреть коммиты в https://lists.freebsd.org/pipermail/svn-src-stable/2016-January/date.html

    Upd: 134 коммита, с 17:08 по 21:40 MSK. Финальный: https://svnweb.freebsd.org/changeset/base/293610
  • Completely async sendfile(2) in -CURRENT
    Dmitry Morozovsky в 14:08:46
    Глеб Смирнов (glebius@) таки закоммиттил используемый Netflix'ом асинхронный sendfile. Они раздают до 80 гигабит потокового видео с одной машины.

    Ref: https://svnweb.freebsd.org/changeset/base/293439
  • ZFS вешает систему при активной записи на raidz
    gremlinable в 09:34:32
    Добрый день!
    Прошу помощи в поиске и решении проблемы с файлопомойкой. Есть сервак (amd64, 8GB RAM) на десятке с дисковым массивом, объединённым в Raid-Z (5 x 2TB WD Red). Сама система так же стоит на ZFS, но на отдельном SSD. Сервак используется в том числе для регулярного деланья бекапов с других серверов с помощью rsync (причём, ряд серверов доступен через OpenVPN). В определённый момент начала проявляться проблема - в какой-то момент при определённых положениях звёзд сервер в процессе сливания бекапов виснет. Причём на мышку/клаву он реагирует, но первая же операция, требующая считывание чего-либо с диска намертво уходит в себя и ни на что не реагирует. По сети сервак тоже перестаёт быть доступен. Перезагрузка становится возможна только резетом, после чего система надолго зависает в стадии "mounting local filesystems". Надолго - это на несколько часов, а один раз провисела в этом состоянии трое суток, после чего я ребутнул и оживлял систему из сингл-мод.
    zpool, smart и прочие каких-либо проблем с дисками и рейдом не обнаруживают, мем-тест прогонял, zfs-stat тоже ничего интересного не показывает, размеры ARC вменяемые (разрешено 7Гиг, реально до 5.6 растёт). Куда копать и кто слабое звено не понимаю.
    Подскажите, как мне хотя бы зацепиться за источник проблемы?
    Кстати, на рейде включена дедуплекация и компрессия. Наверное, я не прав, не стоило это включать одновременно?


    Информация о системе
    # zpool status -v
       pool: zdata
      state: ONLINE
       scan: none requested
     config:
    
             NAME        STATE     READ WRITE CKSUM
             zdata       ONLINE       0     0     0
               raidz1-0  ONLINE       0     0     0
                 ada1    ONLINE       0     0     0
                 ada2    ONLINE       0     0     0
                 ada3    ONLINE       0     0     0
                 ada4    ONLINE       0     0     0
                 ada5    ONLINE       0     0     0
    
     errors: No known data errors
    
       pool: zroot
      state: ONLINE
       scan: none requested
     config:
    
             NAME                                          STATE     READ WRITE CKSUM
             zroot                                         ONLINE       0     0     0
               gptid/d7bf94fd-a438-11e3-8231-94de80b1a491  ONLINE       0     0     0
    
     errors: No known data errors
    
    
    
    # zfs-stats -a
    
     ------------------------------------------------------------------------
     ZFS Subsystem Report                            Wed Jan  6 12:21:50 2016
     ------------------------------------------------------------------------
    
     System Information:
    
             Kernel Version:                         1002000 (osreldate)
             Hardware Platform:                      amd64
             Processor Architecture:                 amd64
    
             ZFS Storage pool Version:               5000
             ZFS Filesystem Version:                 5
    
     FreeBSD 10.2-RELEASE-p7 #0: Mon Nov 2 14:19:39 UTC 2015 root
     12:21PM  up 16:18, 2 users, load averages: 0.35, 0.33, 0.32
    
     ------------------------------------------------------------------------
    
     System Memory:
    
             0.11%   8.55    MiB Active,     0.45%   34.96   MiB Inact
             96.45%  7.36    GiB Wired,      0.00%   96.00   KiB Cache
             2.99%   234.14  MiB Free,       0.00%   0 Gap
    
             Real Installed:                         8.00    GiB
             Real Available:                 98.30%  7.86    GiB
             Real Managed:                   97.09%  7.63    GiB
    
             Logical Total:                          8.00    GiB
             Logical Used:                   96.71%  7.74    GiB
             Logical Free:                   3.29%   269.20  MiB
    
     Kernel Memory:                                  162.64  MiB
             Data:                           83.47%  135.76  MiB
             Text:                           16.53%  26.88   MiB
    
     Kernel Memory Map:                              7.63    GiB
             Size:                           52.35%  4.00    GiB
             Free:                           47.65%  3.64    GiB
    
     ------------------------------------------------------------------------
    
     ARC Summary: (HEALTHY)
             Memory Throttle Count:                  0
    
     ARC Misc:
             Deleted:                                9.09m
             Recycle Misses:                         7.26m
             Mutex Misses:                           1.12k
             Evict Skips:                            34.31m
    
     ARC Size:                               82.17%  5.45    GiB
             Target Size: (Adaptive)         82.18%  5.45    GiB
             Min Size (Hard Limit):          12.50%  849.27  MiB
             Max Size (High Water):          8:1     6.63    GiB
    
     ARC Size Breakdown:
             Recently Used Cache Size:       93.46%  5.10    GiB
             Frequently Used Cache Size:     6.54%   364.90  MiB
    
     ARC Hash Breakdown:
             Elements Max:                           1.21m
             Elements Current:               46.53%  564.33k
             Collisions:                             6.58m
             Chain Max:                              14
             Chains:                                 109.96k
    
     ------------------------------------------------------------------------
    
     ARC Efficiency:                                 316.81m
             Cache Hit Ratio:                96.09%  304.42m
             Cache Miss Ratio:               3.91%   12.39m
             Actual Hit Ratio:               59.84%  189.57m
    
             Data Demand Efficiency:         98.50%  892.78k
             Data Prefetch Efficiency:       22.71%  7.30k
    
             CACHE HITS BY CACHE LIST:
               Anonymously Used:             36.91%  112.37m
               Most Recently Used:           19.67%  59.89m
               Most Frequently Used:         42.60%  129.68m
               Most Recently Used Ghost:     0.21%   632.61k
               Most Frequently Used Ghost:   0.61%   1.84m
    
             CACHE HITS BY DATA TYPE:
               Demand Data:                  0.29%   879.42k
               Prefetch Data:                0.00%   1.66k
               Demand Metadata:              61.98%  188.69m
               Prefetch Metadata:            37.73%  114.84m
    
             CACHE MISSES BY DATA TYPE:
               Demand Data:                  0.11%   13.36k
               Prefetch Data:                0.05%   5.64k
               Demand Metadata:              86.66%  10.74m
               Prefetch Metadata:            13.18%  1.63m
    
     ------------------------------------------------------------------------
    
     L2ARC is disabled
    
     ------------------------------------------------------------------------
    
     File-Level Prefetch: (HEALTHY)
    
     DMU Efficiency:                                 196.65m
             Hit Ratio:                      81.03%  159.34m
             Miss Ratio:                     18.97%  37.31m
    
             Colinear:                               37.31m
               Hit Ratio:                    0.02%   6.40k
               Miss Ratio:                   99.98%  37.31m
    
             Stride:                                 156.03m
               Hit Ratio:                    99.99%  156.01m
               Miss Ratio:                   0.01%   20.31k
    
     DMU Misc:
             Reclaim:                                37.31m
               Successes:                    0.09%   32.93k
               Failures:                     99.91%  37.27m
    
             Streams:                                3.32m
               +Resets:                      0.00%   154
               -Resets:                      100.00% 3.32m
               Bogus:                                0
    
     ------------------------------------------------------------------------
    
     VDEV cache is disabled
    
     ------------------------------------------------------------------------
    
     ZFS Tunables (sysctl):
             kern.maxusers                           839
             vm.kmem_size                            8197922816
             vm.kmem_size_scale                      1
             vm.kmem_size_min                        0
             vm.kmem_size_max                        1319413950874
             vfs.zfs.trim.max_interval               1
             vfs.zfs.trim.timeout                    30
             vfs.zfs.trim.txg_delay                  32
             vfs.zfs.trim.enabled                    1
             vfs.zfs.vol.unmap_enabled               1
             vfs.zfs.vol.mode                        1
             vfs.zfs.version.zpl                     5
             vfs.zfs.version.spa                     5000
             vfs.zfs.version.acl                     1
             vfs.zfs.version.ioctl                   4
             vfs.zfs.debug                           0
             vfs.zfs.super_owner                     0
             vfs.zfs.sync_pass_rewrite               2
             vfs.zfs.sync_pass_dont_compress         5
             vfs.zfs.sync_pass_deferred_free         2
             vfs.zfs.zio.exclude_metadata            0
             vfs.zfs.zio.use_uma                     1
             vfs.zfs.cache_flush_disable             0
             vfs.zfs.zil_replay_disable              0
             vfs.zfs.min_auto_ashift                 9
             vfs.zfs.max_auto_ashift                 13
             vfs.zfs.vdev.trim_max_pending           10000
             vfs.zfs.vdev.bio_delete_disable         0
             vfs.zfs.vdev.bio_flush_disable          0
             vfs.zfs.vdev.write_gap_limit            4096
             vfs.zfs.vdev.read_gap_limit             32768
             vfs.zfs.vdev.aggregation_limit          131072
             vfs.zfs.vdev.trim_max_active            64
             vfs.zfs.vdev.trim_min_active            1
             vfs.zfs.vdev.scrub_max_active           2
             vfs.zfs.vdev.scrub_min_active           1
             vfs.zfs.vdev.async_write_max_active     10
             vfs.zfs.vdev.async_write_min_active     1
             vfs.zfs.vdev.async_read_max_active      3
             vfs.zfs.vdev.async_read_min_active      1
             vfs.zfs.vdev.sync_write_max_active      10
             vfs.zfs.vdev.sync_write_min_active      10
             vfs.zfs.vdev.sync_read_max_active       10
             vfs.zfs.vdev.sync_read_min_active       10
             vfs.zfs.vdev.max_active                 1000
             vfs.zfs.vdev.async_write_active_max_dirty_percent60
             vfs.zfs.vdev.async_write_active_min_dirty_percent30
             vfs.zfs.vdev.mirror.non_rotating_seek_inc1
             vfs.zfs.vdev.mirror.non_rotating_inc    0
             vfs.zfs.vdev.mirror.rotating_seek_offset1048576
             vfs.zfs.vdev.mirror.rotating_seek_inc   5
             vfs.zfs.vdev.mirror.rotating_inc        0
             vfs.zfs.vdev.trim_on_init               1
             vfs.zfs.vdev.cache.bshift               16
             vfs.zfs.vdev.cache.size                 0
             vfs.zfs.vdev.cache.max                  16384
             vfs.zfs.vdev.metaslabs_per_vdev         200
             vfs.zfs.txg.timeout                     5
             vfs.zfs.space_map_blksz                 4096
             vfs.zfs.spa_slop_shift                  5
             vfs.zfs.spa_asize_inflation             24
             vfs.zfs.deadman_enabled                 1
             vfs.zfs.deadman_checktime_ms            5000
             vfs.zfs.deadman_synctime_ms             1000000
             vfs.zfs.recover                         0
             vfs.zfs.spa_load_verify_data            1
             vfs.zfs.spa_load_verify_metadata        1
             vfs.zfs.spa_load_verify_maxinflight     10000
             vfs.zfs.check_hostid                    1
             vfs.zfs.mg_fragmentation_threshold      85
             vfs.zfs.mg_noalloc_threshold            0
             vfs.zfs.condense_pct                    200
             vfs.zfs.metaslab.bias_enabled           1
             vfs.zfs.metaslab.lba_weighting_enabled  1
             vfs.zfs.metaslab.fragmentation_factor_enabled1
             vfs.zfs.metaslab.preload_enabled        1
             vfs.zfs.metaslab.preload_limit          3
             vfs.zfs.metaslab.unload_delay           8
             vfs.zfs.metaslab.load_pct               50
             vfs.zfs.metaslab.min_alloc_size         33554432
             vfs.zfs.metaslab.df_free_pct            4
             vfs.zfs.metaslab.df_alloc_threshold     131072
             vfs.zfs.metaslab.debug_unload           0
             vfs.zfs.metaslab.debug_load             0
             vfs.zfs.metaslab.fragmentation_threshold70
             vfs.zfs.metaslab.gang_bang              16777217
             vfs.zfs.free_max_blocks                 -1
             vfs.zfs.no_scrub_prefetch               0
             vfs.zfs.no_scrub_io                     0
             vfs.zfs.resilver_min_time_ms            3000
             vfs.zfs.free_min_time_ms                1000
             vfs.zfs.scan_min_time_ms                1000
             vfs.zfs.scan_idle                       50
             vfs.zfs.scrub_delay                     4
             vfs.zfs.resilver_delay                  2
             vfs.zfs.top_maxinflight                 32
             vfs.zfs.zfetch.array_rd_sz              1048576
             vfs.zfs.zfetch.block_cap                256
             vfs.zfs.zfetch.min_sec_reap             2
             vfs.zfs.zfetch.max_streams              8
             vfs.zfs.prefetch_disable                0
             vfs.zfs.delay_scale                     500000
             vfs.zfs.delay_min_dirty_percent         60
             vfs.zfs.dirty_data_sync                 67108864
             vfs.zfs.dirty_data_max_percent          10
             vfs.zfs.dirty_data_max_max              4294967296
             vfs.zfs.dirty_data_max                  844396953
             vfs.zfs.max_recordsize                  1048576
             vfs.zfs.mdcomp_disable                  0
             vfs.zfs.nopwrite_enabled                1
             vfs.zfs.dedup.prefetch                  1
             vfs.zfs.l2c_only_size                   0
             vfs.zfs.mfu_ghost_data_lsize            4204567552
             vfs.zfs.mfu_ghost_metadata_lsize        699420672
             vfs.zfs.mfu_ghost_size                  4903988224
             vfs.zfs.mfu_data_lsize                  199680
             vfs.zfs.mfu_metadata_lsize              3733504
             vfs.zfs.mfu_size                        9319424
             vfs.zfs.mru_ghost_data_lsize            0
             vfs.zfs.mru_ghost_metadata_lsize        391472128
             vfs.zfs.mru_ghost_size                  391472128
             vfs.zfs.mru_data_lsize                  4080406016
             vfs.zfs.mru_metadata_lsize              1161030144
             vfs.zfs.mru_size                        5462962176
             vfs.zfs.anon_data_lsize                 0
             vfs.zfs.anon_metadata_lsize             0
             vfs.zfs.anon_size                       32768
             vfs.zfs.l2arc_norw                      1
             vfs.zfs.l2arc_feed_again                1
             vfs.zfs.l2arc_noprefetch                1
             vfs.zfs.l2arc_feed_min_ms               200
             vfs.zfs.l2arc_feed_secs                 1
             vfs.zfs.l2arc_headroom                  2
             vfs.zfs.l2arc_write_boost               8388608
             vfs.zfs.l2arc_write_max                 8388608
             vfs.zfs.arc_meta_limit                  1781045248
             vfs.zfs.arc_free_target                 13926
             vfs.zfs.arc_shrink_shift                5
             vfs.zfs.arc_average_blocksize           8192
             vfs.zfs.arc_min                         890522624
             vfs.zfs.arc_max                         7124180992
    
    # zfs get all zdata
     NAME   PROPERTY              VALUE                  SOURCE
     zdata  type                  filesystem             -
     zdata  creation              Wed Feb 19  6:58 2014  -
     zdata  used                  11.5T                  -
     zdata  available             1.57T                  -
     zdata  referenced            268K                   -
     zdata  compressratio         1.20x                  -
     zdata  mounted               yes                    -
     zdata  quota                 none                   default
     zdata  reservation           none                   default
     zdata  recordsize            128K                   default
     zdata  mountpoint            /zdata                 local
     zdata  sharenfs              off                    default
     zdata  checksum              on                     default
     zdata  compression           lz4                    local
     zdata  atime                 on                     default
     zdata  devices               on                     default
     zdata  exec                  on                     default
     zdata  setuid                on                     default
     zdata  readonly              off                    default
     zdata  jailed                off                    default
     zdata  snapdir               hidden                 default
     zdata  aclmode               discard                default
     zdata  aclinherit            restricted             default
     zdata  canmount              on                     default
     zdata  xattr                 off                    temporary
     zdata  copies                1                      default
     zdata  version               5                      -
     zdata  utf8only              off                    -
     zdata  normalization         none                   -
     zdata  casesensitivity       sensitive              -
     zdata  vscan                 off                    default
     zdata  nbmand                off                    default
     zdata  sharesmb              off                    default
     zdata  refquota              none                   default
     zdata  refreservation        none                   default
     zdata  primarycache          all                    default
     zdata  secondarycache        all                    default
     zdata  usedbysnapshots       0                      -
     zdata  usedbydataset         268K                   -
     zdata  usedbychildren        11.5T                  -
     zdata  usedbyrefreservation  0                      -
     zdata  logbias               latency                default
     zdata  dedup                 on                     local
     zdata  mlslabel                                     -
     zdata  sync                  standard               default
     zdata  refcompressratio      1.00x                  -
     zdata  written               268K                   -
     zdata  logicalused           13.6T                  -
     zdata  logicalreferenced     45K                    -
     zdata  volmode               default                default
     zdata  filesystem_limit      none                   default
     zdata  snapshot_limit        none                   default
     zdata  filesystem_count      none                   default
     zdata  snapshot_count        none                   default
     zdata  redundant_metadata    all                    default
    
  • [CFT] инфраструктуры совместимости с Centos 6.7
    Andrey Fesenko в 09:28:00 с метками FreeBSD, ports, software
    2003 www.timemachine.ne.jp
    Готовится к выходу и уже доступно для публичного тестирования, крупное обновление, в инфраструктуре портов. Будут обнавлены все порты, связанные с подсистемой совместимости Centos 6 (до текущей версии 6.7). А так же, похоже, впервые будет реализована возможность задействовать новый режим 64 bit linuxulator, что позволит запускать 64 битные сборки програм.
    Однако тем кто захочет попробовать новый режим, совместимости 64 битного ПО, стоит учесть:
    • режим не до конца оттестирован
    • некоторое програмное обеспечение не имеет 64 битных сборок
    • в настоящее время, НЕЛЬЗЯ использовать 32 битные программы, если установлены 64-битные библиотеки совместимости
    • перед установкой следует удалить все старые пакеты связанные с линуксулятором
    • в make.conf надо внести секцию
      OVERRIDE_LINUX_BASE_PORT=c6_64
      OVERRIDE_LINUX_NONBASE_PORTS=c6_64
    Так же после данного обновления, после долгого перерыва, станет снова доступен Skype (32 bit).
    Достаточно подробную инструкцию как приступить к тестированию, написал в своём блоге miwi@, если коротко:
    • качаем diff D3428 (точную ссылку брать в фабрикаторе)
    • патчим дерево портов
    • собираем
    • инсталим
    • присматриваемся
    • если что пишем в рассылку, багтрекер или фабрикатор
  • ZFS Boot Environments интегрирован в загрузочное меню FreeBSD
    Andrey Fesenko в 14:55:00 с метками FreeBSD, ZFS
    ZFS Boot Environments menu to the loader menu
    ZFS BE меню выбора BE
    ZFS Boot Environments menu to the loader menu
    ZFS BE загрузчик, основное меню
    Новый год начинается с хороших новостей, наконец завершена интеграция, в меню загрузчика, возможностей ZFS по созданию окружений загрузки (Boot Environments, BE).
    Напомню как это работает, благодаря возможности ZFS создавать снапшоты, мгновенно и практически без накладных расходов (место они всё же занимают). Можно создать, в любой момент, снапшот загрузочной файловой системы (чаще всего youpool/ROOT/bename). клонировать его и повысить (promoting) его до обычной файловой системы, а в дальнейшем выбрать новую файловую систему в качестве загрузочной.
    В Opensolaris утилиты для работы данного функционала начали появляться ещё в 2008 году, так же поддержка была интегрирована в grub. В PC-BSD® аналогичный функционал был реализован с версии 10.0 благодаря использованию функционала grub. Весной 2012 года было начато портирование beadm во FreeBSD, после этого она стала доступна в портах и позволяет легко управлять BE из командной строки.
    root@des:~ # beadm list
    BE Active Mountpoint Space Created
    init - - 4.4G 2014-09-05 03:05
    first - - 2.1M 2014-09-05 05:19
    ...
    pre293017 - - 2.7M 2016-01-01 02:54
    r293017 NR / 35.8G 2016-01-01 05:07

    Но до вчерашнего дня, поддержки данного функционала не было в загрузчике и выбрать из какого BE загружаться, можно было только в уже работающей системе. Что немного снижало полезность данного функционала. Процесс интеграции был начат ещё летом, даже двумя независимыми проектами, один в рамках GSoC, другой в рамках reviews.freebsd.org, отчасти этим наверное вызвано, что изменение не было интегрировано ещё летом (так как GSoC заканчивался к осени). Но за прошедшее время разработчики успели улучшить функционал, и теперь он работает очень хорошо, так список BE строится автоматически и не ограничен по количеству BE и длине названий.
    В итоге, мы имеем отличную возможность создавать BE с помощью sysutils/beadm, а так же выбирать любой из существующих BE как заранее, так и в момент загрузки системы (в uefi boot menu вроде до сих пор не доступно). Это позволяет:
    • Откатится, в случае неудачного обновления (создавайте BE в самый последний момент, ибо все изменения после его создания и активации не будут автоматически доступны в новом BE, после перезагрузки)
    • Иметь несколько версий/модификаций системы с общим домашним или другими каталогами (находящимися вне BE.
    • лёгкую интеграцию с sysutils/beadm
    Хороший доклад на тему возможностей BE был сделан как раз в этом году в рамках EuroBSDcon 2015, Snapshots, Replication, and Boot-Environments by Kris Moore.

    UPD:  интеграция меню загрузчика, для UEFI идёт полным ходом, за процессом можно наблюдать и участвовать D4797
  • Проблема с malloc при портировании программы с linux'а
    Alex Povolotsky в 11:34:11
    Пытаюсь портировать pgcenter с линукса. С простыми до смешного патчами собрался, но при запуске вылетает с коредампом при free.

    Собрал valgrind ... так при запуске под valgrind'ом работает прекрасно.

    Нет ли у кого идей, что это может быть и/или куда дальше копать?
  • Перенос баз данных Mysql на другой диск
    admin в 18:24:09 с метками FreeBSD, MYSQL

    Кратко ситуация: начал сыпаться диск на рабочей машине с mysql. В результате бьются таблицы, repair не помогает. Надо остановить машину, запустить fsck, но доступ к машине только по шеллу. Размонтировать var система не дает, исправить ошибки на неразмонтироавнной ФС нельзя. В принципе все работает кроме БД, следовательно принято решение оставить var в покое и перенести базы на другой диск (благо он смонтирован для бэкапа). Копирую себе на заметку мануал по переносу баз mysql.

    Для начала можно посмотреть где базы:

    mysql> show variables like 'datadir';
    +---------------+----------------+
    | Variable_name | Value          |
    +---------------+----------------+
    | datadir       | /var/db/mysql/ |
    +---------------+----------------+
    1 row in set (0.00 sec)

    Останавливаем mysql копируем каталог с базами, меняем права доступа.

    /usr/local/etc/rc.d/mysql-server stop
    cp -R /var/db/mysql /data/mysql
    chown -R mysql:mysql /data/mysql

    Добавим ключ запуска mysql с указанием где лежат базы.

    echo 'mysql_dbdir="/usr/mysql"' >> /etc/rc.conf

    Запускаемся. Проверяем.

    mysql> show variables like 'datadir';
    +---------------+-------------+
    | Variable_name | Value       |
    +---------------+-------------+
    | datadir       | /data/mysql/ |
    +---------------+-------------+
    1 row in set (0.01 sec)

    Чекаем базу.

    mysqlcheck -Aor -p

    Все должно заработать.

  • Asterisk REST Interface (ARI)
    admin в 19:08:15 с метками Asterisk, FreeBSD, VoIP, Программинг
    Как, надеюсь, вам уже известно в Asterisk`е есть: Asterisk Gateway Interface (AGI) — запуск и исполнение любых скриптов на любом языке программирования из dialplan, а так же позволяет выполнять команды dialplan`а в этих скриптах Asterisk Manager Interface (AMI) — позволяет «слушать» событие происходящие в Asterisk`е, а так же позволяет выполнять команды Если вам они неизвестны, то подробнее […]
  • Asterisk и Distributed Device State
    admin в 14:11:51 с метками Asterisk, FreeBSD, VoIP
    Многие у кого в компании больше одного сервера Asterisk зачастую сталкиваются с задачей: экспорт состояния номеров на другом сервере Например когда появляется желание мониторить состояние exten`а на другом сервере (BLF). Чтобы при том что ваш телефон подключен к одному Asterisk серверу, а второй телефон к другому. По научному это называется Distributed Device State. Реализация подобной задачи […]
  • Агрегированный маршрут с BGP атрибутами на Juniper
    admin в 10:59:01 с метками Juniper, Networks, Протоколы маршрутизации
    Вместо вступления: Давненько не писал, все руки как то не доходили. 2015 год заканчивается, надо бы обновить блог Напишу те статьи что помню и давно хотел написать. Итак в данной статье пойдет речь о оч.хор. фишке у Juniper, а именно возможность выполнить анонс сети по BGP от другой AS без поднятия BGP сессии с этой AS. […]
  • if_enc(4) интерфейс во FreeBSD
    bu7cher в 14:02:00 с метками FreeBSD, if_enc, IPSec
    Ни для кого, наверное, не новость уже, что IPSec во FreeBSD 11 включён в GENERIC ядро. Но вот if_enc(4) туда включать почему-то не стали. Модулем оно загружаться не умеет, а временами его функционал бывает довольно полезен. Поэтому, вслед за if_gre(4) и if_gif(4), я решил переделать и if_enc(4). Теперь в head/ его можно загружать из модуля, а так же выгружать после использования. Пару слов для
  • www.lissyara.su www.lissyara.su igNix.ru OpenNews.opennet.ru Хабрахабр Russian FreeBSD Users Community Hilik Free Black Blog Oleksandr Tymoshenko's blog adminlog.ru Все о FreeBSD skiangel's replace :) Блог системного администратора Subnets.ru blog Andrey V. Elsukov Блог@DeathStar.Name Всякие заметочки Блог простого админа Rulkov.ru Настоящая система ifreebsd.org Nuclear Lightning's Track записки юного БСДешника BSDniR skeletor.org.ua Dreamcatcher.ru iboxjo Записки *NIX Админа rtfm Media UniX Блог Владислава Врублевского Мастерская интернет-разработчика 22:55 Unixzen Блог о FreeBSD HelpDesk jared.kiev.ua Около сетевой Блог How about a nickel bag? Fifteen bucks, lit-tle man. Put that shit in my hand! Клуб Сисадминов hotbits.RU Заметки о виртуализации и не только... www.unix.ck.ua Статьи - .:unix.uz:. - Заметки BSDельника ;) eax.me my.toilet.server infobsd.ru www.info-x.org - FreeBSD Блогосайт Алисы и Alv'а xaxatyxa.ru Сабынич Вадим. Обо всем понемногу Ufa FreeBSD News nix Блог-склерозник ~ArchimeD~'а Блог системного администратора Linux/FreeBSD rednikov system blog Все о ремонте и настройке компьютера Блог о программах для Windows&Linux some little things сисадминство Заметки creasysee 2gusia alex_tesla Сетевое хранилище для дома Ещё один блог сисадмина tedor.kr.ua - блог Информационный портал Noctifer Собрание полезных заметок Shirrma АйТи Лапша Vladus blog - Odmin.info Блог полезных статей о разработке и раскрутке сайтов ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD likeunix Воронов Глеб | TradeNarK LLCВоронов Глеб | TradeNarK LLC Labor omnia vincit BSD MAG (не)структурированные мысли Алексея Тутубалина (blog.lexa.ru)