From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Paul Wolneykien Organization: ALT Linux Team To: ALT Linux Sisyphus discussions Message-ID: <57a21de7-b4bf-97c2-527e-7418de867e3a@altlinux.org> Date: Thu, 18 Oct 2018 15:40:26 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: ru Content-Transfer-Encoding: 8bit Subject: [sisyphus] =?utf-8?b?c3Zsb2dkOiDQt9Cw0L/QuNGB0Ywgc3Rkb3V0INCyINC2?= =?utf-8?b?0YPRgNC90LDQuyDRgSDRgNC+0YLQsNGG0LjQtdC5?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2018 12:40:27 -0000 Archived-At: List-Archive: List-Post: Всем привет. Мы столкнулись с проблемой, что нужно сохранять подробный выхлоп от демона для последующего анализа. Systemd на удивление не справился с задачей: при подключении к демону дополнительных клиентов, запись в журнал (который потом можно читать через journalctl) становится нестабильной — часть сообщений в журнал не попадает. Если же просто перенаправить выхлоп в файл, то там всё сохраняется. Из этого я сделал вывод, то systemd не выдерживает напора. Возможно, что я просто не умею готовить systemd. Но тем не менее, мы решили пойти дальше именно по пути сброса в файл. Поэтому сделать оставалось следующее: обеспечить запись в лог временной метки для каждого сообщения и ротацию логов. И тогда я вспомнил о пакете runit. Он почему-то не был у нас собран (сегодня я этот момент исправил — runit-2.1.2-alt2). Пакет целиком представляет собой альтернативную систему запуска системы — очень компактную, предназначенную, в первую очередь, для встраиваемых систем. Но одно из достоинств в том, что входящие в пакет программы можно использовать по отдельности. И одна из них — замечательная программа svlogd (именно о ней я и вспомнил). svlogd — это фильтр-обработчик стандартного входа, с записью результата в файл, с поддержкой ротации. Обработка настраивается простым конфигурационным файлом. В результате мы добились записи временных меток и ротации (со сжатием). Сейчас пробуем сократить объём логов, исключив заведомо ненужные строчки, настроив фильтр. Я подозреваю, что svlogd — не единственная программа такого рода. Но поскольку я уже знал, как ей пользоваться, то выбрал именно её. А вот, как была выполнена настройка: $ cat /lib/systemd/system/pcscd.service [Unit] Description=PC/SC Smart Card Daemon Requires=pcscd.socket [Service] ExecStart=/usr/sbin/pcscd.wrap --foreground --debug --apdu [Install] Also=pcscd.socket --- $ cat /usr/sbin/pcscd.wrap #!/bin/sh -efu echo "Starting pcscd. See its logs in /var/log/pcscd" >&2 /usr/sbin/pcscd "$@" 2>&1 | svlogd -ttt /var/log/pcscd --- $ cat /var/log/pcscd/config s2000000 n500 !gzip