Софт-Архив

Syslog server

Рейтинг: 4.3/5.0 (1011 проголосовавших)

Категория: Windows: Анализ логов

Описание

Настройка Syslog server

Comunications Apps с нуля
  • Настройка Cisco Unified Contact Center Express (UCCX) с нуля. Часть 1
  • Настройка Cisco Unified Contact Center Express (UCCX) с нуля. Часть 2
  • Настройка Cisco Unified Contact Center Express (UCCX) с нуля. Часть 3
  • Настройка UCCX 10.x, 11.x + Cisco Finesse desktop
  • Установка скрипта для записи UCCX Prompts
  • Настройка Cisco Unity Connection (CUC) с нуля. Часть 1
  • Настройка Cisco Unity Connection (CUC) с нуля. Часть 2
  • Настройка Cisco Unified Presence (CUP) с нуля. Теория
  • Настройка Cisco Unified Presence (CUP) с нуля. Практика: Начальная установка
  • Mediasense и запись звонков. 01 Теория.
  • Mediasense и запись звонков. 02 Установка.

Syslog server:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Установка и настройка syslog сервера

    Установка и настройка syslog сервера

    Думаю, что в жизни каждого сисадмина бывают моменты, когда в его любимой сети начинают происходить необъяснимые вещи. Особенно неприятно, если это происходит с некоторой периодичностью и установить причину каждый раз не удается. Конечно, можно сослаться на магнитные бури, погоду на Марсе и т.д. (нужное подчеркнуть), но все мы с вами прекрасно понимаем, что космос здесь не причем.

    Мы не будем себя утруждать перебором всех возможных вариантов, лучше подумаем о том, как можно предупредить, отследить и быстро установить причину возникновения того или иного сбоя. Все сетевые железки (и не только), которые хотя бы частично наделены мозгами, в процессе своей работы генерируют логи происходящих событий. Чаще всего эти логи записываются локально в память железки и уважвющий себя сисадмин их никогда не читает. А зря Ибо там и кроется вся истина происходящих событий.

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

    Как ты уже догодался, нам нужно каким-то образом отслеживать все происходящие события централизованно. Возникает вопрос как и чем это делать? Мониторинг сети? Одно такое решение под названием PRTG Network Monitoring мы недавно рассматривали. Однако, не все и не всегда можно отследить с помощью PRTG.

    Умные дяди давным давно придумали специальный стандарт для передачи логов — Syslog. Кто особо заинтересовался подробостями этого протокола — велкам в википедию . а остальным мы в краце расскажем что к чему и как это настроить в любимой сети.

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

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

    Хороший вариант — установить linux, там syslog в базовом варианте уже встроен изначально, останется только подшаманить с настройкой хранения событий в БД и веб-мордой для удобного просмотра. Но что делать, если нет времени плясать с бубном или нет достаточных знаний в *nix системах? Оказывается, даже из такой ситуации есть выход! Называется он SyslogAppliance . На сайте разработчиков можно скачать уже готовую к применению виртуальную машину vmware с настроенным syslog сервером.Я обнаружил только два ньюанса при развертывании виртуальной машины SyslogAppliance. А именно: виртуалка настроена на получение автоматического IP по DHCP, часовой пояс выставлен хрен знает какой. Если у вас есть DHCP-сервер, то впринципе можно привязать там MAC-адрес syslog сервера и больше не забивать голову всякой ерундой. Но имхо для сервера это не кашерно. Лучше выставить настройки IP-адресации вручную. Делается это следующим образом. Логинимся в syslog сервер по консоли, затем с помощью редактора vim открываем файл сетевых настроек. Команда будет выглядеть так:

    vim /etc/network/interfaces

    Здесь нам надо заменить строку:

    iface eth0 inet auto

    и все что под ней на:

    iface eth0 inet static

    address твой_IP_адрес

    netmask маска_подсети

    gateway шлюз_по_умолчанию

    Для перехода в режим редактирования сначала нажимаем i, затем правим всё как указано выше, затем жмем Esc. Для выода с сохранением нажимаем Shift+z два раза.

    Далее нужно вписать DNS. Для этого набираем

    vim /etc/resolv.conf

    указываем адрес нашего DNS-сервера. Сохраняемся, выходим. Перезагружаемся командой reboot. Если у syslog сервера есть доступ в интернет, то можно выполнить пару команд обновления системы. Сначала набираем apt-get update. затем apt-get upgrade .

    Последнее что нужно сделать, это поменять часовой пояс и выставить правильную дату и время. Первое делается командой

    dpkg-reconfigure tzdata

    а второе командой

    date —set=»мм/дд/гггг чч:мм:сс»

    После этих манипуляций можно перезагрузить syslog сервер и попробовать зайти на web-интерфейс по адресу http://ip-адрес-сервера/logs

    Нас попросят ввести логин/пароль, затем будет показана текущая ситуация по собранным событиям:

    Все события разбиваются по источнику, типу сообщения (notice, warning, error, alarm и т.п.), описание, в котором указано что именно произошло. Мы можем отфильтровать таблицу по интересующим нас критериям, для этого просто кликните мышью по нужной надписи. Если надо видеть какие сообщения валятся на syslog сервер в режиме реального времени, то в правой части экрана над шапкой таблицы есть ниспадающий список с вариантами автообновления страницы с разными интервалами времени. Ко всему прочему можно поизучать статистические данные, которые здесь представлены в виде диаграмм. Есть несколько типов графиков.

    Теперь собственно то, ради чего мы это затевали. Как заставить всякие железяки отправлять сообщения на наш syslog сервер?

    Например, для оборудования cisco в конфиг нужно добавить строчку logging ip-адрес_сервера

    В *nix система в конфиг локального syslog’а добавляется строка *.* @ip-адрес_сервера .

    Кстати говоря, даже Windows можно заставить передавать события в наш syslog. Сделать это можно с помощью одной небольшой бесплатной утилиты eventlog-to-syslog .

    Вот собственно и все примудрости. Остается пожелать тебе и твоей сети поменьше глюков и успехов в освоении syslog’a.

    ЗЫ: Как всегда мы будем рады любым комментариям и оценкам данной статьи. Спасибо!

    Syslog Server - выбираем под свои нужды

    Искать его видимо надо тут:

    (это его домен и он указан в проге несмотря на то что на сайте фотограф)

    Автор в 12г хотел продать весь проект с исходниками и правами всего то за 3000руб.

    Кто хочет развивать (или выложить в опенсурс) можете скинуться и выкупить

    Там же есть "официальная" ссылка на загрузку с РГоста, но она умерла.

    Если он так нуждался в деньгах, мог бы сам просто в опенсурс выложить, привлечь энтузиастов и зарабтать куда больше просто с нескольких баннеров вместо того чтобы морочаться с защитами и тп. Мотивом к продаже видимо послужил факт, что за прогу никто денег платить не хотел на фоне кучи бесплатных тулзов, а иная конечная цель, кроме как заработать бабла (в рамках нынешней идеологии) ему закономерно не пришла. Продавать тоже решил на форуме SQL, т.е. видимо там, где ему лично удобнее общаться, хотя там люди занимаются в основном базами данных а не системными утилами, и, соотв. клиентов там найти шанс не велик. О том, что гораздо легче было бы продавать на каком нибудь фрилансе - т.е. идти навстречу к клиенту он не допер (ток без обид!). Вот к чему приводят стереотипы мышления в рамках нашей сегодняшней убогой идологии "товар-деньги-товар".

    Если не хотите более заниматься проектом, выложите в опенсурс и привлеките энтузмиастов (на что потребуются некоторые усилия) с сохранением контроля над проектом. Со временем немал шанс, что заработаете куда более 3000руб.

    Могут конечно пойти форки, но вам тем не менее что-то достанется.

    Установка и настройка Kiwi Syslog Daemon - IT it s Easy

    Доброго времени суток.

    Когда вы настроили свою сеть и все у вас работает на ура, то возникает необходимость как то отслеживать все происходящее в ней. Вдруг что-то происходит, а вы и не в курсе :). Для этого я и хочу сегодня рассказать об установке и настройке программы мониторинга Kiwi Syslog Daemon.

    Кто заинтересовался, добро пожаловать под кат…

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

    Итак, для установки нам потребуется непосредственно сама программа (я буду использовать Kiwi Syslog версии 8.3.48 (если кому надо, пишите, поделюсь :))) и свободный сервер (я буду использовать Windows Server 2003).

    Схема, которую будем собирать, выглядит следующим образом:

    На схеме мы имеем три сетевых устройства (два роутера и ASA). Сервер Syslog находится в сети 3.3.3.0/24 и имеет IP-адрес 3.3.3.15. Все устройства мы настроим на отсылку syslog сообщений на этот сервер.

    Если у вас в сети до расположения сервера будут находиться устройства безопасности, то не забудьте открыть порт UDP 514 для прохождения сообщений.

    Итак, приступим к установке Kiwi Syslog Daemon. Заходим на windows server 2003 и запускаем установочный файл программы:

    Принимаем лицензионное соглашение:

    Здесь, если вы не хотите каждый раз запускать программу вручную при перезагрузке сервера, то выбирайте пункт инсталляции Kiwi Syslog Daemon в качестве сервиса. Нажимаем «Next»:

    Если вы устанавливаете программу, находясь на сервере под локальным администратором, то оставляйте тут настройки по умолчанию. Если же вы находитесь на сервере под каким-то другим пользователем, то вам необходимо указать имя и пароль администратора, входящего в группу локальных администраторов. Нажимаем «Next»:

    Здесь, в принципе, можно оставить все по умолчанию. Нажимаем «Next»:

    Тут выбираем папку для установки программы и нажимаем «Install». Начнется не длительный процесс установки. В итоге перед вами должно появиться вот такое финальное окно:

    Нажимаете кнопку «Finish» и у вас запустится Kiwi Syslog Daemon. Выглядеть окно программы должно следующим образом:

    Итак, программа работает. Оставим пока все как есть и перейдем к настройкам наших сетевых устройств. По умолчанию, Syslog будет принимать все syslog сообщения от всех устройств и показывать их в основном экране (Display 00 (Default)).

    По очереди заходим на наши устройства и делаем нехитрые настройки.

    Enter configuration commands, one per line. End with CNTL/Z.

    R2(config)#hostname Router_2

    Router_2(config)#int fastEthernet 0/0

    Router_2(config-if)#ip address 1.1.1.1 255.255.255.252

    Router_2(config-if)#no sh

    Router_2(config-if)#exit

    Router_2(config)#int loopback 0

    Router_2(config-if)#ip address 20.20.20.20 255.255.255.255

    Router_2(config-if)#exit

    Router_2(config)#logging host 3.3.3.15 – прописываем IP-адрес Syslog Server-а ;

    Router_2(config)#logging source-interface loopback 0 – указываем под каким именем (IP-адресов) будет видно устройство на сервере ;

    Router_2(config)#logging trap debugging – выставляем уровень сообщений, которые будут отсылаться (в данном случае все сообщения) ;

    Router_2(config)#enable secret ciscocisco

    Router_2(config)#username admin password cisco

    Router_2(config)#line console 0

    Router_2(config-line)#login local

    Router_2(config-line)#exit

    Router_2(config)#line vty 0 15

    Router_2(config-line)#login

    Router_2(config-line)#login local

    Router_2(config-line)#exit

    R1(config)#hostname Router_1

    Router_1(config)#int fa 0/0

    Router_1(config-if)#ip address 1.1.1.2 255.255.255.252

    Router_1(config-if)#no sh

    Router_1(config-if)#exit

    Router_1(config)#int fa 0/1

    Router_1(config-if)#ip address 3.3.3.2 255.255.255.0

    Router_1(config-if)#no sh

    Router_1(config-if)#exit

    Router_1(config)#int loopback 0

    Router_1(config-if)#ip address 10.10.10.10 255.255.255.255

    Router_1(config-if)#exit

    Router_1(config)#logging host 3.3.3.15

    Router_1(config)#logging source-interface loopback 0

    Router_1(config)#logging trap debugging

    Router_1(config)#enable secret ciscocisco

    ciscoasa(config)# hostname ASA

    ASA(config)# command-alias exec wr copy run disk0:/.private/startup-config

    ASA(config)# int ethernet 0/1

    ASA(config-if)# ip address 3.3.3.1 255.255.255.0

    ASA(config-if)# nameif inside

    INFO: Security level for "inside" set to 100 by default.

    ASA(config-if)# no sh

    ASA(config-if)# exit

    ASA(config)# enable password ciscocisco

    ASA(config)# username admin password cisco privilege 15

    ASA(config)# logging host inside 3.3.3.15 – указываем адрес Syslog Server-а и интерфейс, за которым он находится ;

    ASA(config)# logging trap informational – выставляем уровень сообщений ;

    ASA(config)# logging enable – включаем логирование (не забудьте этого сделать, так как, по умолчанию, без этой команды logging не включится) ;

    ASA(config)# wr

    Ну что, теперь можно перейти на Syslog Server и посмотреть, есть ли там сообщения от наших сетевых устройств:

      где
    • 1 – устройство безопасности ASA;
    • 2 – роутер Router_2;
    • 3 – роутер Router_1
    Признаюсь, что я сначала поставил на ASA уровень debugging и она прислала очень много сообщений. Пришлось исправить уровень на information и почистить экран :). И, как вы можете видеть, все устройства прислали сообщения, причем с теми именами (IP-адресами), которые мы настроили (касаемо роутеров).

    Итак, сообщения принимаются и отображаются. Но, во-первых, когда они складываются и отображаются все вместе, это не совсем удобно и наглядно. Во-вторых, при получении, какого либо важного сообщения от устройств, хотелось бы знать об этом. Не заходить же каждую минуту на сервер или сидеть перед монитором и наблюдать. Ну и, в-третьих, нужно иметь файлы, в которые и будут записываться сообщения (так сказать в формате *.txt).

    Для устранения всех этих «НО» перейдем на сервер Kiwi Syslog Daemon и начнем пошаговую настройку самой программы, для облегчения нам жизни в дальнейшем :).

    Начнем с распределения экранов для отображения сообщений. Каждому устройству определим свой экран и настроим, чтобы в нем отображались сообщения, принадлежащие только соответствующему устройству. Для этого нам необходимо создать три правила (Rule), создать и настроить фильтр и действия.

    По умолчанию у нас уже работает правило Default. Изменим ему имя и создадим фильтр, согласно которому в соответствующем экране будут отображаться нужные нам сообщения. Заходим на сервер, открываем программу и переходим, как показано на рисунке:

    Откроется окно настроек. Для начала, давайте определим имена наших экранов отображения. Для этого переходим в пункт «Display»:

    Здесь, из выпадающего меню выбираем экран (1), присваиваем ему название (2), нажимаем «Update» (3) и изменения должны вступить в силу. Для каждого из экранов можно задать свои параметры (например, мигать при получении сообщения (4), автоматически подстраивать ширину колонки (5) и так далее). Создаем, таким образом, 3 экрана, затем нажимаем «Apply» и переходим к настройкам правила по умолчанию (Default). Изменим, для начала, ему название. Кликнете по названию «Default» правой клавишей мыши и выберете пункт «Rename rule»:

    Пишем новое название, нажимаем ввод. Название поменяется. Дальше, давайте создадим и настроим фильтр, чтобы согласно этому правилу на заданном экране отображались сообщения, приходящие только от Router_1. Для этого, кликните правой клавишей мыши на пункте «Filters» и выберете «Add filter»:

    Откроется окно настройки нового фильтра:

    Здесь из выпадающего меню «Field» (1) выбираем «IP address» (конечно вы можете выбрать и другие параметры), из меню «Filter Type» выбираем «IP Range» (2). После этого, указываем интересующий нас IP-адрес роутера Router_1 (3) (так как у нас IP-адрес один, то начальный и конечный адреса у нас одни и те же). Нажимаем «Apply» (4). Можно также изменить название фильтра (удобно в названии писать, что это за фильтр). Для этого кликните по нему правой клавишей мыши и выберете пункт «Rename filter».

    Все, с фильтром закончили. Теперь проверим действия «Actions» для этого правила и, если потребуется, подкорректируем их. На данный момент у нас есть два действия, а именно:

    • 1. Отображать поступающие сообщения;
    • 2. Записывать их в лог-файл.
    Проверим, чтобы они соответствовали нашим требованиям. Кликнем по первому действию «Display»:

    Проверьте, чтобы «Display number» соответствовал вашему правилу. Выберете его из выпадающего списка, затем нажмите «Apply». Теперь, кликните по второму действию «Log to file»:

    По умолчанию, все сообщения записываются в файл «SyslogCatchAll.txt», что не совсем удобно. Лучше создать для каждого устройства свой лог файл. Для этого нажмите на кнопку (1), откроется путь к папке, где будут лежать файлы. Пропишите название отдельного файла для устройства (2) и нажмите на «Save» (3). Затем проверьте путь в строке и, если он прописался как надо, то нажмите «Apply».

    Все, одно правило для Router_1 готово. Теперь надо создать еще правила для остальных устройств. Для этого кликните правой клавишей мыши по пункту «Rules» и выберете «Add rule». Далее все как мы разбирали выше. Добавьте и настройте фильтр (filter) и действия (Actions). Добавлять действия тоже не сложно (правая клавиша мыши на «Actions», выбираем пункт «Add action» и так далее). Для ориентира, вот картинка:

    Создайте остальные правила. В конечном итоге, согласно нашей схеме, у вас должно получиться, что-то вроде этого:

    Configuring a Syslog Agent in Windows Server 2012

    Configuring a Syslog Agent in Windows Server 2012

    by David Davis [Published on 18 July 2013 / Last Updated on 18 July 2013 ]

    This article takes a look at what you need to know about syslog and how to configure your Windows Servers to send syslog.

    Introduction

    Are you a Windows Admin who doesn’t know a lot about syslog? That’s pretty common as Windows Servers use “events”, not the IETF standard RFC3164 and RFC5424 syslog. Still, the Windows OS can use syslog if taking the right steps. Here’s what you need to know about syslog and how to configure your Windows Servers to send syslog.

    What is Syslog?

    An industry-standard standard system log reporting system, syslog, is used by most devices and operating systems in the datacenter. It includes messages related to systems management, security, debugging, and OS or application errors. Not only is syslog supported by all Linux and Unix-based operating systems but it is also supported by network devices (like routers, switches, and firewalls), storage devices, and even devices like printers. Because of its wide adoption, syslog is a great way to consolidate logging data from across the datacenter in a single place both for preservation and analysis. Analysis of syslog data is critical for security auditing, troubleshooting, and identifying misconfigurations. However, in many cases it is even useful for troubleshooting storage configurations, storage security, and even storage performance. Many devices in the datacenter (such as Cisco routers and switches) do not store historical syslog messages and, thus, it is crucial to consolidate them. If that syslog data is lost when the router looses power or crashes, it may be difficult or impossible to troubleshoot the issue with the device.

    With syslog, every device sending syslog messages uses an agent to do so. Those messages from the agents are sent to a central syslog server. Every syslog message is sent with a particular “facility code”, used to identify the type of software that generated the message. Default syslog message are - auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0 - local7. Those messages are assigned a severity using one of the following classifications - Emergency, Alert, Critical, Error, Warning, Notice, Info, or Debug. In Linux, the syslog messages are usually stored in /var/log and most Linux operating systems offer a command line tool to send data to the log file called logger .

    Syslog and the Windows Server OS

    So what does all this have to do Windows Server 2012, you ask? With most other devices in the datacenter sending syslog messages to a centralized syslog server, what about Windows? The problem is that, unlike Linux, the Windows OS doesn’t include a syslog agent that is capable of sending syslog data to a syslog server. Without a syslog agent, not only can’t the Windows OS send syslog messages to a syslog server but it also can’t send syslog messages from any applications running in the Windows OS (like a web server or database).

    I discovered this while testing the new syslog consolidation and analysis tool from VMware – vCenter Log Insight. Log Insight is a syslog server that performs not only consolidation but also real-time analysis of any logging data sent to it. It’s ideally suited for VMware vSphere virtual infrastructure as it connects directly to your vCenter server and ESXi hosts. It understands the statistics that it collects from the vSphere infrastructure and is a great tool for analyzing system logs and identify errors before they affect end users.

    Syslog Agent Options for Windows 2012

    If you use your favorite search engine and you do a search for “windows syslog agent”, you’ll get number of syslog agents to choose from (most of them being free). Here are some of the options that I found:

    Please note:

    I did not test any of these syslog agents except for one – Datagram SyslogAgent – (which happened to be the first one that I picked and tested below). Thus, I’m not saying that the one I selected was better or worse than the others, it just happened to be the one I used.

    Also note that you shouldn’t confuse syslog servers with syslog agents. Syslog servers (or syslog hosts) collect syslog data and agents send that data. For Windows Server, you need an agent, not a collector (or server). For example, Solarwinds syslog server (formerly Kiwi syslog server) is a syslog server, not a syslog agent. If you don’t have a syslog server already, then that is a good option for general use or vCenter Log Insight is a good option if you are already using VMware vSphere.

    Downloading and Installing Datagram Syslog Agent

    For my testing, I selected the free Datagram SyslogAgent. From the product page, I clicked the Download and then selected the Datagram Syslog Agent 64-bit download (don’t choose the Syslog Server at the top of the page). Note that you can either go to this webpage directly from the server where you want to install the syslog agent on or you can download it on your local computer and then transport it the Windows server via the network or USB key.

    If you extract the 2MB Syslog file that you downloaded, there are a few files but the only three important files are the PDF user’s manual, the SyslogAgent configuration tool, and the SyslogAgent that you need to install on the server.

    Figure 1: SyslogAgent Installation Files

    In the sense of a traditional Windows application install, there is not one for the SyslogAgent service. You just run the SyslogAgentConfig tool and click Install under the Service Status section at the top.

    Figure 2: Installing the SyslogAgent Service

    This will create the Windows service for the SyslogAgent.

    Before you get too excited and start the service, let’s first configure it.

    The minimum configuration would be:

    • That the service is install
    • A syslog server IP and port are configured
    • That either event or application logs are selected to be sent to the syslog host (for whatever type of events and/or applications you choose)
    • And that the syslog agent service is started.

    To select where the log data from your Windows host will be sent, enter the IP address of the syslog host, as you see in the graphic, Figure 2, above. In my case, the Log Insight syslog server’s IP address was 10.0.1.120 and we were using UDP port 514.

    With this enabled, I checked the Event Logs option and selected what type of event logs I wanted. For system monitoring, I would recommend sending “system logs” but you are welcome to send any type of logs you want such as security logs for

    auditing purposes.

    Figure 3: Selecting the Event Logs to Send to the Syslog Host

    Optionally, you can configure the application log events to forward and even customize their facility and severity, as you see in Figure 4.

    Figure 4: Customizing Facility and Severity

    Optionally, you can choose to send events from specific Windows applications to the syslog host, even specifying the executable for the custom application (as you see at the bottom of Figure 2).

    Once you’ve got it configured, click Start Service .

    You are welcome to double check your Windows services to see that the SyslogAgent is added and running as you see below in Figure 5.

    Figure 5: SyslogAgent Running in Services

    With the syslog agent running, let’s go check our syslog server to see if it is receiving messages from our Windows 2012 Server.

    Testing Syslog with VMware vCenter Log Insight

    Let’s assume that your syslog server was installed and is running fine, at the IP address you specified on the agent. In my case, I am using the new VMware vCenter Log Insight as my syslog host but there are numerous options.

    Over on the vCenter Log Insight console, indeed, I was quickly able to identify syslog traffic coming from my Windows 2012 Server (with a DNS name of HV1 ).

    Figure 6: Windows Server Syslog Message on vCenter Log Insight

    The graphic shows that the syslog server is reporting administrative user logins and logouts (at least in this part of the log) – something that would be very valuable for security audit purposes. Keep in mind that the syslog entries from Windows won’t just be security info. They’ll contain important system and application events as well.

    FreeBSD syslog: выбираем, что писать

    FreeBSD syslog: выбираем, что писать

    После долгого юзания ОС возникает такой момент, когда хочется всё контроллировать, в смысле писать события в файл. Для этих целей предназначен демон syslog. И так, всё по порядку.

    Дело в том, что полной документации по syslogd вообще нет. Есть только общая, наиболее используемая. Поэтому по чуть-чуть с разных форумов, с гугла насобирал всё в кучу.

    Все изменения будут производится в файле /etc/syslog.conf. После любых изменений нужно перегружать конфигурацию демона syslog :

    #/etc/rc.d/syslog reload

    1) Выбираем, что нужно писать.

    писать по «ключевому слову». Наример, вы хотите писать все события связанные с ppptftpddhcpd или smbd_audit (аудит самбы). Для этого применяем такую конструкцию

    *.*                                             /var/log/ppp.log

    *.*                                             /var/log/tftpd.log

    *.*                                             /var/log/dhcpd.log

    smbd_audit

    *.*                                             /var/log/samba/audit/audit.log

    категория журналирования local0-local7. Для этого применяем такое

    local7.*                                        /var/log/local7.log

    если нужно принимать журналирование с удалённого сервера, то применяем такую конструкцию (для того, что бы это заработало, syslogd должен стартовать с параметром «-a «):

    #grep syslog /etc/rc.conf

    syslogd_enable="YES"

    syslogd_flags="-a 10.10.10.0/24 -a 10.11.11.0/24"    # означает принимать логи для любых машин с подсети 10.10.10.0/24, 10.11.11.0/24

    а это добавляем уже в /etc/syslog.conf

    +10.10.10.10

    local7.*                                        /var/log/10.10.10.10.log

    сочетание +* означает конец привязки к хосту, с которого забираем логи.

    логгированние только на локальную машину+@

    Это сочетание ставится в начале зоны логгирования и означает, что всё, что логгироваться на локальную машину будет только то, что расположенно ниже.

    логгированние на удалённую машину .

    *.info                 @domain.com.ua

    альтернативное логгирование (если вы не хотите использовать syslog для логгирование, а будете использовать другую программу)

    mail.* | /usr/local/bin/mailstat.pl

    — отправка сообщения в логи из консоли

    #logger -sp [средство].[уровень] [-t имя_процесса] "текст"

    mycomp# logger 111111

    после этой команды в файле /var/log/messages появится запись:

    после этой команды в файлах /var/log/cron и /var/log/debug.log появится запись:

    mycomp# logger -ps debug this is test message 333333

    после этой команды в файлах /var/log/debug.log появится запись:

    Feb  8 15:15:52 msinhome root: this is test message 333333, а также сообщение выведется на

    root: this is test message 3333333

    2) Исключаем из логгирования.

    приведёт к тому, что записи из категории authpriv в общий лог писатся не будут.

    !-ppp ### ОБРАТИТЕ ВНИМАНИЕ

    !-ppp ### ОБРАТИТЕ ВНИМАНИЕ

    How to configure a syslog server with rsyslog on Linux

    How to configure a syslog server with rsyslog on Linux

    A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily.

    On most Linux distributions, rsyslog  is the standard syslog daemon that comes pre-installed. Configured in a client/server architecture, rsyslog can play both roles; as a syslog server rsyslog can gather logs from other devices, and as a syslog client. rsyslog can transmit its internal logs to a remote syslog server.

    In this tutorial, we cover how to configure a centralized syslog server using rsyslog on Linux. Before we go into the details, it is instructive to go over syslog standard first.

    Basic of Syslog Standard

    When logs are collected with syslog mechanism, three important things must be taken into consideration:

    • Facility level: what type of processes to monitor
    • Severity (priority) level: what type of log messages to collect
    • Destination: where to send or record log messages

    Let's take a look at how the configuration is defined in more detail.

    The facility levels define a way to categorize internal system processes. Some of the common standard facilities in Linux are:

    • auth:  messages related to authentication (login)
    • cron: messages related to scheduled processes or applications
    • daemon:  messages related to daemons (internal servers)
    • kernel:  messages related to the kernel
    • mail:  messages related to internal mail servers
    • syslog:  messages related to the syslog daemon itself
    • lpr:  messages related to print servers
    • local0 - local7: messages defined by user (local7 is usually used by Cisco and Windows servers)

    The severity (priority) levels are standardized, and defined by using standard abbreviation and an assigned number with number 7 being the highest level of all. These levels are:

    • emerg:  Emergency - 0
    • alert:  Alerts - 1
    • crit: Critical - 2
    • err:  Errors - 3
    • warn:  Warnings - 4
    • notice:  Notification - 5
    • info:  Information - 6
    • debug:  Debugging - 7

    Finally, the destination statement enforces a syslog client to perform one of three following tasks: (1) save log messages on a local file, (2) route them to a remote syslog server over TCP/UDP, or (3) send them to stdout such as a console.

    In rsyslog. syslog configuration is structured based on the following schema.

    Configure Rsyslog on Linux

    Now that we understand syslog, it's time to configure a Linux server as a central syslog server using rsyslog. We will also see how to configure a Windows based system as a syslog client to send internal logs to the syslog server.

    Step One: Initial System Requirements

    To set up a Linux host as a central log server, we need to create a separate /var partition, and allocate a large enough disk size or create a LVM special volume group. That way, the syslog server will be able to sustain the exponential growth of collected logs over time.

    Step Two: Enable Rsyslog Daemon

    rsyslog daemon comes pre-installed on modern Linux distributions, but is not enabled by default. To enable rsyslog daemon to receive external messages, edit its configuration file located in /etc/rsyslog.conf.

    Once the file is opened for editing, search and uncomment the below two lines by removing the # sign from the beginning of lines.

    This will enable rsyslog daemon to receive log messages on UDP port 514. UDP is way faster than TCP, but does not provide reliability on data flow the same way as TCP does. If you need to reliable delivery, you can enable TCP by uncommenting the following lines.

    Note that both TCP and UDP can be set on the server simultaneously to listen on TCP/UDP connections.

    Step Three: Create a Template for Log Receipt

    In the next step we need to create a template for remote messages, and tell rsyslog daemon how to record messages received from other client machines.

    Open /etc/rsyslog.conf with a text editor, and append the following template before the GLOBAL DIRECTIVES block:

    This template needs a little explanation. The $template RemoteLogs directive ("RemoteLogs" string can be changed to any other descriptive name) forces rsyslog daemon to write log messages to separate local log files in /var/log/, where log file names are defined based on the hostname of the remote sending machine as well as the remote application that generated the logs. The second line ("*.* ?RemoteLogs") implies that we apply RemoteLogs template to all received logs.

    " sign represents a redirect rule, and is used to tell rsyslog daemon to stop processing log messages further, and not write them locally. If this redirection is not used, all the remote messages would be also written on local log files besides the log files described above, which means they would practically be written twice. Another consequence of using this rule is that the syslog server's own log messages would only be written to dedicated files named after machine's hostname.

    If you want, you can direct log messages with a specific facility or severity level to this new template using the following schema.

    For example:

    Direct all internal authentication messages of all priority levels to RemoteLogs template:

    Direct informational messages generated by all system processes, except mail, authentication and cron messages to RemoteLogs template:

    If we want all received messages from remote clients written to a single file named after their IP address, you can use the following template. We assign a new name "IpTemplate" to this template.

    After we have enabled rsyslog daemon and edited its configuration file, we need to restart the daemon.

    On Debian, Ubuntu or CentOS/RHEL 6:

    $ sudo service rsyslog restart

    On Fedora or CentOS/RHEL 7:

    $ sudo systemctl restart rsyslog

    $ sudo netstat -tulpn | grep rsyslog

    The output should look like the following in case rsyslog daemon listens on UDP port.

    If rsyslog daemon is set up to listen on TCP connections, the output should look like this.

    Send Windows Logs to a Remote Rsyslog Server

    To forward a Windows based client's log messages to our rsyslog server, we need a Windows syslog agent. While there are a multitude of syslog agents that can run on Windows, we can use Datagram SyslogAgent. which is a freeware program.

    After downloading and installing the syslog agent, we need to configure it to run as a service. Specify the protocol though which it will send data, the IP address and port of a remote rsyslog server, and what type of event logs should be transmitted as follows.

    After we have set up all the configurations, we can start the service and watch the log files on the central rsyslog server using tailf  command line utility.

    Conclusion

    By creating a central rsyslog server that can collect log files of local or remote hosts, we can get a better idea on what is going on internally in their systems, and can debug their problems more easily should any of them become unresponsive or crash. For information about setting up a syslog client, refer to this guideline .

    Download this article as ad-free PDF (made possible by your kind donation ):

    Bog BOS: syslog - сетевой системный журнал

    Bog BOS: syslog - сетевой системный журнал

    Компонентами системы являются генератор сообщений (устройство или процесс), протокол обмена, коллектор сообщений (collector, syslog server), релей (relay, принимает сообщения от одного или нескольких генераторов и передает одному или нескольким коллекторам или следующим релеям). Генератор (или релей при передаче) не знает является ли приемник релеем или коллектором, может передавать одно сообщение нескольким приемникам, может обрабатывать сообщение самостоятельно (например, записывая в файл).

    Протокол syslog не содержит никаких средств защиты от подделок сообщений. Хуже того, использование протокола UDP позволяет злоумышленникам посылать сообщения от имени любого хоста. Локальная сеть должна быть защищена экраном (IOS ACL. ipchains ) от приема пакетов с поддельными локальными адресами (хотя это не помешает посылать поддельные сообщения изнутри локальной сети) и от приема пакетов снаружи на порт 514/udp. Известны случаи переполнения диска ложными сообщениями.

    Протокол syslog и UDP не обеспечивают гарантированной доставки (сообщения могут быть потеряны при перегрузке сети или перехвачены, поврежденные сообщения удаляются без предупреждения), правильной последовательности доставки (сообщение о завершении процесса может придти раньше сообщения о его запуске), приоритетной доставки.

    Конфиденциальность сообщений не обеспечивается, так как они передаются открытым текстом.

    Если при настройке генератора сообщений указать неправильный адрес коллектора или релея, то никаких сообщений об ошибке не будет - сообщения будут удаляться (или записываться в чужой журнал ;).

    Средства защиты от зацикливания передачи сообщений неправильно настроенными релеями не предусмотрены.

    RFC 3195 предлагает новый протокол над TCP (syslog-conn, 601), обеспечивающий гарантированную доставку в правильной последовательности. Реализация мне не известна. Чудовищная смесь XML, команд и кодов возврата в стиле SMTP и заголовков MIME (BEEP), в которую заворачиваются сообщения стандартного формата syslog. Используется два режима - RAW (аналог нынешнего UDP протокола) и COOKED (сообщения структурированы по полям). BEEP позволяет обеспечить аутентификацию, целостность и конфиденциальность (SASL, TLS).

    Проект RFC syslog-sign предлагает обеспечить аутентификацию, упорядоченность, целостность сообщений и обнаружение пропавших сообщений за счет генерации специальных сообщений, содержащих цифровую подпись (signature) блока предыдущих сообщений с сохранением стандартного протокола и формата syslog и использованием UDP. Используется SHA1, OpenPGP DSA.

    Для приема сообщений используется порт 514/UDP. Рекомендуется также использовать исходный порт 514 для передачи сообщений. Сообщение представляет собой текстовую строку и не может иметь длину более 1024 байт, в противном случае его разрешается обрезать или даже выбрасывать. Даже неправильно сформированное сообщение, посланное на 514 порт, должно рассматриваться как сообщение syslog. Однако, если релей передает сообщение дальше, то он должен добавить к нему стандартные заголовки (при этом, возможно обрезав его до 1024 байт) - USER, NOTICE, свое локальное время и простое имя источника сообщения.

    Сообщение начинается с поля PRI, которое в закодированном виде содержит информацию об источнике сообщения (facility) и уровне серьезности (Severity level) сообщения. За ним записывается время (TIMESTAMP), пробел, имя или IP адрес хоста в десятичной записи (HOSTNAME), пробел, произвольный текст сообщения (MSG) в US-ASCII (0x20 - 0x7e).

    Источник сообщения кодируется числом от 0 до 23:
    • 0 - KERN (сообщения ядра)
    • 1 - USER (сообщения пользовательских программ)
    • 2 - MAIL (почтовая система)
    • 3 - DAEMON (прочие демоны)
    • 4 - AUTH (безопасность/права доступа)
    • 5 - SYSLOG (генерируемые самим syslog)
    • 6 - LPR (подсистема печати)
    • 7 - NEWS (Netnews, USENET)
    • 8 - UUCP
    • 9 - CRON
    • 10 - AUTHPRIV (безопасность/права доступа - защищенный режим)
    • 11 - FTP
    • 12 - NTP (существует не везде)
    • 13 - log audit (существует не везде)
    • 14 - log alert (существует не везде)
    • 15 - clock daemon (существует не везде)
    • с 16 по 23 зарезервированы для локального использования (LOCAL0 - LOCAL7)
    Уровень серьезности кодируется числом от 0 до 7:
    • 0 - EMERG (система неработоспособна, старое название PANIC)
    • 1 - ALERT (требуется немедленное вмешательство)
    • 2 - CRIT (критическое состояние)
    • 3 - ERR (ошибка, старое название ERROR)
    • 4 - WARNING (предупреждение, старое название WARN)
    • 5 - NOTICE (все нормально, но важно)
    • 6 - INFO (информационное сообщение)
    • 7 - DEBUG (отладочная печать)

    Номер источника умножается на 8 и складывается с уровнем серьезности, получившееся число заключается в угловые скобки и образует поле PRI.

    Время (местное!) записывается в формате: Feb 13 21:12:06. Если номер дня является однозначным числом, то перед ним ставится дополнительный пробел (не 0!). Заметьте отсутствие года и зоны в дате, что необходимо учесть при долговременном хранении. Для того, чтобы время в сообщении было правильным, устройство должно быть синхронизовано (например, по NTP ).

    Имя хоста (простое, не FQDN!) записывается так, как оно известно генератору сообщения. Если устройство имеет несколько интерфейсов с различными IP-адресами, то в качестве имени или адреса хоста может быть использовано любое из них.

    Текст сообщения (MSG) обычно содержит этикетку (TAG), указывающую на программу или процесс, выдавшую это сообщение и тело сообщения (CONTENT). Этикетка может содержать латинские буквы и цифры. Начало тела сообщения определяется по первому специальному символу - обычно двоеточие или открывающая квадратная скобка. Например, Cisco IOS в качестве этикетки использует последовательный номер сообщения и двоеточие, а Unix - простое имя программы (тело сообщения начинается с номера процесса в квадратных скобках и двоеточия).

    syslogd осуществляет прием сообщений с порта 514/UDP и от местных источников (сокет /dev/log), их маршрутизацию в зависимости от источника сообщений и уровня серьезности. Позволяет выводить сообщения в журнал, выводить на консоль, на терминал, посылать на другой сервер. Вводится дополнительный тип источника MARK (регулярные отметки, info)

    Каждая строка журнала содержит запись одного сообщения, состоящую из полей, разделенных пробелами:
    • дата в стандартном текстовом формате (поле TIMESTAMP из сообщения syslog)
    • имя хоста (fqdn или сокращенное, поле HOSTNAME из сообщения syslog)
    • текст сообщения (поля TAG и CONTENT из сообщения syslog)
    Параметры запуска:
    • -a дополнительный-прослушиваемый-сокет (полезен для демонов, делающих chroot; может быть несколько; до 19 )
    • -d (отладочный режим)
    • -f имя-конфигурационного-файла (по умолчанию, /etc/syslog.conf )
    • -h (изменить обычное поведение, при котором сообщения, принятые от удаленных хостов, не передаются дальше для записи на удаленном хосте во избежание зацикливания)
    • -l список-хостов (список хостов, имена которых должны записываться в простом виде, а не FQDN; разделяются двоеточием)
    • -m минут (интервал для регулярных временных записей; по умолчанию - 20; если 0, то не делать вообще)
    • -n (не уходить в фоновый режим; необходим для запуска из init)
    • -p прослушиваемый-сокет (по умолчанию: /dev/log )
    • -r (разрешить принимать сообщения от удаленных хостов; firewall д.б. приоткрыт; в /etc/services д.б. определен syslog для 514/udp)
    • -s список-доменов (обрезать из имен хостов имена указанных доменов; разделяются двоеточием; по умолчанию обрезается домен, совпадающий с доменом сервера syslog)
    • -v (показать версию и закончить работу)
    • -x (запретить определять имя хоста по его адресу, предотвращает deadlock при работе на одном хосте с сервером DNS)
    Используемые файлы:
    • /etc/syslog.conf - конфигурационный файл (изменяется при запуске параметром -f )
    • /dev/log - сокет, с которого читаются локальные сообщения (изменяется при запуске параметром -p )
    • /var/run/syslogd.pid - идентификатор процесса
    Реакция на сигналы:
    • SIGHUP - реинициализация (закрывает все файлы, читает заново файл конфигурации)
    • SIGTERM - завершение работы
    • SIGINT, SIGQUIT - завершение работы, если выключена отладка
    • SIGUSR1 - включить/выключить отладку (только при использовании ключа -d)

    Запускается с правами root. Не меняет права доступа к файлам. Если вынужден создавать файл, то делает его с правами 644. При необходимости ограничить доступ к журналу, соответствующий файл надо создать вручную (или поменять права доступа). Особые проблемы создает logrotate.

    Представляет собой набор правил маршрутизации сообщений. Комментарии начинаются с символа '#'. Обратная косая черта в конце строки означает продолжение правила на следующей строке. Каждое правило состоит из селектора и действия, которые разделяются табуляциями (в старых системах - Solaris 5) или пробелами (Linux). Получив сообщение для записи в журнал (от klogd, от локальной или удаленной программы), syslogd для каждого правила проверяет не подходит ли сообщение под шаблон, определяемый селектором. Если подходит, то выполняется указанное в правиле действие. Для одного сообщения м.б. выполнено произвольное количество действий (т.е. обработка сообщения не прекращается при первом успехе).

    Селектор состоит из двух частей, разделенных точкой: источник сообщения и уровень серьезности. Прописные и строчные буквы не различаются. Можно также использовать числа (см. /usr/include/syslog.h). Кроме определенных в syslog(3) источников, можно указывать mark (регулярные временные метки), security (устаревший синоним для auth ). Кроме определенных в syslog.h уровней серьезности можно использовать warn (синоним для warning ), error (синоним для err ), panic (синоним для emerg ). Сообщения с уровнем, равным или выше указанного в селекторе, и источником, равным указанному в селекторе, считается подходящим. Звездочка перед точкой соответствует любому источнику ( кроме daemon и syslog! ), после точки - любому уровню. Слово none после точки - никакому уровню для данного источника. Можно указывать несколько источников в одном селекторе (через запятую). В этом случае приоритет можно указывать только для последнего источника. В одной строке можно указывать несколько селекторов через ';'. Семантика не ясна: если использовать позитивные селекторы, то выполняется логическое ИЛИ. если негативные (none и восклицательный знак), то логическое И.

    В новом syslogd (linux) перед уровнем можно поставить знак равенства - селектору будут соответствовать только сообщения с указанным уровнем (но не с высшим); восклицательный знак - не будут соответствовать сообщения с уровнем равным или большим; восклицательный знак и равенство - не будут соответствовать сообщения с уровнем, равным указанному.

    В качестве действия можно указывать:
    • имя обычного файла (полный путь от корня), минус перед именем отключает синхронизацию записи (ускорение на порядок и более!)
    • поименованные каналы - fifo (перед именем ставится вертикальная черта), сам канал д.б. создан перед запуском syslogd командой mkfifo
    • терминал или консоль (/dev/console)
    • @имя-хоста (передать сообщений для удаленной журнализации)
    • список пользователей (через запятую), на терминалы которых будет послано сообщение
    • звездочка для посылки сообщения на все терминалы (wall)
    rsyslog - это один из претендентов на замену "стандартного" сервера sysklogd в Linux (может быть полностью с ним совместим). Продвигается фирмой Red Hat (в частности, в RHEL5.2 (2.0.0) и Fedora 8 (1.19.6 и 2.0.2) как вариант; в Fedora 10 (3.21.9) по умолчанию). Имеется платная поддержка (Adiscon). Лицензия - GPLv3. Работает под Linux (Red Hat, Debian, Ubuntu, OpenSUSE, Gentoo), FreeBSD, Solaris, AIX. Среди улучшений:
    • возможность использовать TCP для передачи сообщений
    • возможность сжатия сообщений пи передаче
    • возможность шифрования и цифровой подписи при передаче сообщений (пакет rsyslog-gnutls)
    • аутентификация и авторизация с использованием Kerberos (пакет rsyslog-gssapi)
    • возможность обеспечения резервного сервера
    • возможность хранения журналов в БД (MySQL - пакет rsyslog-mysql, Postgres - пакет rsyslog-pgsql, прочие СУБД - через libdbi)
    • возможность использовать RELP (надёжный протокол передачи, TCP не гарантирует доставки, т.к. неизвестно какие сообщения - до 1000 - потерялись при разрыве соединения) для передачи и приёма сообщений (пакет rsyslog-relp) и RFC 3195 при приёме
    • буферизация сообщений перед записью
    • фильтрация и обработка сообщений (включая регулярные выражения)
    • возможность посылки e-mail и запуска скриптов по фильтру
    • многозадачность и многопоточность
    • управление нагрузкой и приоритетами
    Имеет модульную структуру (загрузка модулей производится директивой "$ModLoad имя-модуля"):
    • модули ввода - /usr/lib64/rsyslog/im*
      • imudp - приём сообщений с использованием обычного syslog протокола UDP
      • imuxsock - приём местных сообщений (logger) через сокет
      • imklog - приём сообщений ядра (klogd)
      • immark - отметки MARK
      • imfile - ввод сообщений из текстового файла
      • imtcp - приём сообщений с использованием протокола TCP
      • imrelp - приём сообщений с использованием протокола RELP
    • модули дополнительных возможностей (Library Modules) - /usr/lib64/rsyslog/lm*
      • lmnet
      • lmnetstrms
      • lmnsd_ptcp
      • lmregexp
      • lmtcpclt
      • lmtcpsrv
    • модули вывода -/usr/lib64/rsyslog/om*
      • omsnmp - посылка сообщений с помощью SNMP trap
      • ommail - посылка сообщений с помощью e-mail
      • omrelp - модуль передачи сообщений с помощью протокола RELP
      • ommysql - модуль записи сообщений в БД MySQL
      • ompgsql - модуль записи сообщений в БД PostgreSQL
      • omlibdbi - модуль записи сообщений в БД через libdbi (Firebird/Interbase, MS SQL, Sybase, SQLLite, Ingres, Oracle)
    Между модулем ввода (imtcp) и подлежащим транспортным уровнем можно поместить драйвер потока (Network Stream Drivers), который обеспечивает последовательность, аутентификацию и секретность:
    • ptcp - просто TCP, без шифрования и аутентификации
    • gtls - GnuTLS (режимы шифрования: 0 - без шифрования, 1 - TLS; режимы аутентификации: anon, x509/fingerprint - проверка fingerprint, x509/certvalid - проверка сертификата на корректность, x509/name - проверка имени (Subject), в текущей реализации корневой CA должен быть одинаков)
    Параметры запуска (/etc/sysconfig/rsyslog, /etc/rc.d/init.d/rsyslog):
    • -c версия (выбор режима совместимости; д.б. первым в строке; -c0 или по умолчанию - совместимость с sysklogd; -c2 - rsyslogd 2)
    • -A (использовать все возможные пути посылки UDP-сообщений, может приводить к дублированию)
    • -4 (прослушивать только IPv4 порт)
    • -6 (прослушивать только IPv6 порт)
    • -a дополнительный-прослушиваемый-сокет (версия 0 или 2; полезен для демонов, делающих chroot; может быть несколько)
    • -d (отладочный режим; не переходит в фоновый режим)
    • -f имя-конфигурационного-файла (по умолчанию, /etc/rsyslog.conf )
    • -h (версия 0 или 2; изменить обычное поведение, при котором сообщения, принятые от удаленных хостов, не передаются дальше для записи на удаленном хосте во избежание зацикливания)
    • -i pid-файл (/var/run/syslogd.pid)
    • -l список-хостов (список хостов, имена которых должны записываться в простом виде, а не FQDN; разделяются двоеточием)
    • -m минут (версия 0 или 2; интервал для регулярных временных записей; по умолчанию - 20; если 0, то не делать вообще)
    • -n (не уходить в фоновый режим; необходим для запуска из init)
    • -N уровень (проверить правильность конфигурационного файла, 1 - обычная проверка)
    • -o (версия 2; не читать с /dev/log)
    • -p прослушиваемый-сокет (версия 0 или 2; по умолчанию: /dev/log )
    • -q (при сбоях DNS во время обработки ACL использовать имена хостов)
    • -Q (не разрешать DNS во время обработки ACL)
    • -r [порт ] (версия 0 или 2; разрешить принимать UDP сообщения от удаленных хостов)
    • -s список-доменов (обрезать из имен хостов имена указанных доменов; разделяются двоеточием; по умолчанию обрезается домен, совпадающий с доменом сервера syslog)
    • -t [порт ] (версия 2; разрешить принимать TCP сообщения от удаленных хостов)
    • -v (показать версию и закончить работу)
    • -w (не выводить предупреждения о получении сообщений от недоверенных хостов)
    • -x (запретить определять имя хоста по его адресу, предотвращает deadlock при работе на одном хосте с сервером DNS)
    Используемые файлы:
    • /etc/rsyslog.conf - конфигурационный файл (изменяется при запуске параметром -f )
    • /dev/log - сокет, с которого читаются локальные сообщения (изменяется при запуске параметром -p )
    • /var/run/syslogd.pid - идентификатор процесса
    Реакция на сигналы:
    • SIGHUP - реинициализация (закрывает все файлы, читает заново файл конфигурации, разрываются TCP соединения, сбрасываются хранящиеся в памяти очереди)
    • SIGTERM, SIGINT, SIGQUIT - завершение работы
    • SIGUSR1 - включить/выключить отладку (только при использовании ключа -d)
    • SIGCHLD - дождаться завершения порождённых процессов

    В отличие от sysklogd синхронизация выключена по умолчанию. Формат временных отметок при записи в файл по умолчанию изменён. При передаче сообщений на удалённый сервер они предваряются именем хоста ( как это обрабатывается logwatch. ), рекомендуется обеспечить совместимость следующим образом:

    Принимаемые сообщения могут складываться в главную очередь сообщений (MainMsg, параметры собираются по всему файлу настройки) перед обработкой правил (есть и другие очереди перед каждым действием - Action, отдельная очередь для каждого действия, параметры должны быть определены до описания действия). Типы очередей (QueueType):
    • Direct - отсутствие очереди, позволяет вернуть статус выполнения, что обязательно для работы логики резервирования сервера журналов
    • Disk - буферизация с использованием файлов, надёжно (требуется ручная работа), медленно; можно задать шаблон имени файла (QueueFilename, WorkDirectory), размер куска (QueueMaxFileSize), интервал сохранения (QueueCheckpointInterval)
    • LinkedList - очередь в памяти, быстро, не переживёт аварию; реализована в виде связанного списка, динамическое выделение памяти
    • FixedArray - очередь в памяти, быстро, не переживёт аварию; реализована в виде массива указателей, меньшее потребление CPU
    • очередь в памяти с файловой поддержкой (disk-assisted, DA); LinkedList или FixedArray с заданием шаблона имени файла; файловая очередь используется при необходимости (переполнение очереди в памяти или выключение сервера) с учётом HighWatermark и LowWatermark

    Количество потоков обработки очереди выбирается автоматически в зависимости от заполнения очереди (QueueWorkerThreadMinimumMessages, QueueWorkerThreads). Ненужные более потоки уничтожаются при истечении времени неактивности (QueueWorkerTimeoutShutdown). При катастрофическом переполнении очереди (QueueDiscardMark) менее приоритетные сообщения (QueueDiscardSeverity) выкидываются. При длительном переполнении очереди приём новых сообщений останавливается полностью (QueueTimeoutEnqueue) и все входящие сообщения могут выкидываться. Скорость обработки можно замедлять паузами между обработкой сообщений (QueueDequeueSlowdown).

    Не меняет права доступа к имеющимся файлам.

    Файл представляет собой набор общих директив, директив модулей и правил маршрутизации сообщений. Комментарии начинаются с символа '#'. Обратная косая черта в конце строки означает продолжение правила на следующей строке. Максимальная длина строки - 4KB. Директивы начинаются с символа '$'.

    Общие директивы (параметры, описывающие действие должны быть до активизации действия; при задании размера можно использовать суффиксы: k, m, g, t (двоичные) и K, M, G, T (десятичные)):
    • $ActionExecOnlyWhenPreviousIsSuspended off|on (если для селектора определено несколько действий, то следующее действие выполняется только, если предыдущее завершилось неуспешно, так реализуется резервирование сервера)
    • $ActionExecOnlyOnceEveryInterval секунд (выполнять действия не чаще указанного, полезно для ommail)
    • $ActionExecOnlyEveryNthTime число (обрабатывать только каждое n-ое сообщение)
    • $ActionExecOnlyEveryNthTimeTimeout секунд (сбрасывать счётчик n-ых сообщений, 0 - по умолчанию)
    • $ActionFileDefaultTemplate имя-шаблона (шаблон формата при записи в файл журнала, шаблон RSYSLOG_TraditionalFileFormat совместимость со форматом журналов при записи в файл, шаблон RSYSLOG_ForwardFormat задаёт новый формат при передаче сообщений на удалённый сервер)
    • $ActionFileEnableSync off|on (синхронизация при записи)
    • $ActionForwardDefaultTemplate имя-шаблона (шаблон формата при передаче по протоколам UDP и TCP)
    • $ActionGSSForwardDefaultTemplate имя-шаблона (шаблон формата при передаче по протоколу GSS-API)
    • параметры очереди действия:
      • $ActionQueueCheckpointInterval число-сообщений
      • $ActionQueueDequeueSlowdown микросекунд (0)
      • $ActionQueueDiscardMark число (9750)
      • $ActionQueueDiscardSeverity уровень-серьёзности (4, т.е. warning)
      • $ActionQueueFileName начало-имени-файла
      • $ActionQueueHighWaterMark число-сообщений (8000)
      • $ActionQueueImmediateShutdown off|on (off)
      • $ActionQueueSize число-сообщений (10000)
      • $ActionQueueLowWaterMark число-сообщений (2000)
      • $ActionQueueMaxFileSize размер (1m)
      • $ActionQueueTimeoutActionCompletion милисекунд (1000, 0 - немедленно)
      • $ActionQueueTimeoutEnqueue милисекунд (2000, 0 - бесконечность)
      • $ActionQueueTimeoutShutdown милисекунд (0, 0 - бесконечность)
      • $ActionQueueWorkerTimeoutThreadShutdown милисекунд (6000)
      • $ActionQueueType Direct|FixedArray|LinkedList|Disk
      • $ActionQueueSaveOnShutdown off|on
      • $ActionQueueWorkerThreads число (1)
      • $ActionQueueWorkerThreadMinumumMessages число-сообщений (100)
    • $ActionResumeInterval секунд (30, начальный интервал между проверками, не "ожил" ли получатель сообщений; повторные интервалы прогресивно увеличиваются)
    • $ActionResumeRetryCount число (0, -1 - бесконечность)
    • $ActionSendResendLastMsgOnReconn off|on (повторять ли последнее сообщение при восстановлении связи)
    • $ActionSendStreamDriver ptcp|gtsl
    • $ActionSendStreamDriverMode режим-секретности (0)
    • $ActionSendStreamDriverAuthMode режим-аутентификации
    • $ActionSendStreamDriverPermittedPeer имя-или-fingerprint
    • $AllowedSender список-допустимых-отправителей (по умолчанию - любой; список разделяется запятыми; первым элементом должен быть "UDP" или "TCP или ""; сетевой адрес может сопровождаться "/длина-маски-сети"; в именах можно использовать шаблоны
    • $ControlCharacterEscapePrefix символ (\)
    • $DefaultNetstreamDriver ptcp|gtsl
    • $DefaultNetstreamDriverCAFile имя-файла-CA (в формате .pem)
    • $DefaultNetstreamDriverCertFile имя-файла-сертификата (в формате .pem)
    • $DefaultNetstreamDriverKeyFile имя-файла-частного-ключа (в формате .pem)
    • $DirCreateMode 0644
    • $DirGroup имя-группы (только для создаваемых каталогов)
    • $DirOwner имя-владельца (только для создаваемых каталогов)
    • $DropMsgsWithMaliciousDnsPTRRecords off|on
    • $DropTrailingLFOnReception on|off
    • $DynaFileCacheSize число (10, определяет число одновременно открытых файлов)
    • $EscapeControlCharactersOnReceive on|off (например, ^G преобразуется в "\007")
    • $ErrorMessagesToStderr on|off
    • $FailOnChownFailure on|off (не создавать файл, если обнаружены ошибки в $DirOwner/$FileOwner)
    • $FileCreateMode 0644 (зависит также от $umask)
    • $FileGroup имя-группы (только для создаваемых файлов)
    • $FileOwner имя-владельца (только для создаваемых файлов)
    • $IncludeConfig имя-включаемого-файла (допустимо вложение, можно включать целый каталог/ или файлы по шаблону*)
    • параметры основной очереди:
      • $MainMsgQueueCheckpointInterval число-сообщений
      • $MainMsgQueueDequeueSlowdown микросекунд (0)
      • $MainMsgQueueDiscardMark число (9750)
      • $MainMsgQueueDiscardSeverity уровень-серьёзности (4, т.е. warning)
      • $MainMsgQueueFileName начало-имени-файла
      • $MainMsgQueueHighWaterMark число-сообщений (8000)
      • $MainMsgQueueImmediateShutdown off|on (off)
      • $MainMsgQueueSize число-сообщений (10000)
      • $MainMsgQueueLowWaterMark число-сообщений (2000)
      • $MainMsgQueueMaxFileSize размер (1m)
      • $MainMsgQueueTimeoutActionCompletion милисекунд (1000, 0 - немедленно)
      • $MainMsgQueueTimeoutEnqueue милисекунд (2000, 0 - бесконечность)
      • $MainMsgQueueTimeoutShutdown милисекунд (0, 0 - бесконечность)
      • $MainMsgQueueWorkerTimeoutThreadShutdown милисекунд (6000)
      • $MainMsgQueueType FixedArray|Direct|LinkedList|Disk
      • $MainMsgQueueSaveOnShutdown off|on
      • $MainMsgQueueWorkerThreads число (1)
      • $MainMsgQueueWorkerThreadMinumumMessages число-сообщений (100)
    • $MaxMessageSize размер (2k; UDP - до 4k; MS Windows Event Log - до 64k)
    • $ModDir каталог-модулей ('/' в конце имени)
    • $ModLoad имя-модуля (можно использовать полный путь или сокращённое имя, модуль должен быть загружен до первой директивы его настройки)
    • $RepeatedMsgReduction on|off
    • $outchannel имя-канала,имя-файла,максимальный-размер,имя-скрипта-обработки-переполнения (предполагалось вынести описание действия из правила маршрутизации в отдельную директиву, работы не завершены и заброшены)
    • $ResetConfigVariables (полезен после $IncludeConfig, чтобы привести все значения по умолчанию)
    • $template имя-шаблона,описание-шаблона [,] (sql и sqlstd вызывает форматирование результата выполнения шаблона в вид, пригодный для MySQL или стандартный SQL)
    • $WorkDirectory имя-рабочего-каталога (сюда пишутся файлы с очередью)
    • $umask маска
    Директивы модуля imudp:
    • $UDPSeverAddress IP-адрес (по умолчанию прослушиваются все интерфейсы ("*"), директив может быть несколько)
    • $UDPServerRun имя-или-номер-порта (514, обязательно после задания адреса, директив может быть несколько)
    Директивы модуля imtcp (возможно шифрование и аутентификация с помощью stunnel, gtls или imgssapi):
    • $TCPSeverAddress IP-адрес (по умолчанию прослушиваются все интерфейсы ("*"), директив может быть несколько, не реализовано)
    • $InputTCPServerRun имя-или-номер-порта (514, обязательно после задания адреса, в будущем директив может быть несколько, а пока либо TLS для всех, либо никому)
    • $InputTCPMaxSessions число-одновременных-сессий
    • $InputTCPServerStreamDriverMode режим-шифрования (зависит от драйвера потока ptcp или gtls)
    • $InputTCPServerStreamDriverAuthMode режим-аутентификации (зависит от драйвера потока ptcp или gtls)
    • $InputTCPServerStreamDriverPermittedPeer список-допустимых-соседей (можно использовать шаблоны, можно указывать несколько раз)
    Директивы модуля imklog:
    • $KLogInternalMsgFacility источник-сообщения (kern; для собственных сообщений - запуск, останов)
    • $KLogPermitNonKernelFacility off|on
    • $DebugPrintKernelSymbols off|on
    • $klogSymbolLookup off|on (в ядре 2.6 преобразование символов производится самим ядром; аналог "klogd -x")
    • $klogUseSyscallInterface off|on (использовать только системные вызовы и не обращаться к /proc/kmsg для получения исходных сообщений; аналог "klogd -s")
    • $klogSymbolsTwice off|on (сообщения аварийного завершения ядра - Oops! -выдаются дважды: до преобразования адресов в имена - для ksymoops - и после; аналог "klogd -2")
    Директивы модуля immark:
    • $MarkMessageInterval секунд (1800; 0 - никогда)
    Директивы модуля imuxsock:
    • $AddUnixListenSocket имя-дополнительного-сокета
    • $InputUnixListenSocketIgnoreMsgTimestamp on|off (временные отметки, полученные от приложения, игнорируются)
    • $InputUnixListenSocketFlowControl off|on (блокировать сокет при переполнении очереди)
    • $InputUnixListenSocketHostName имя-хоста (будет записываться в сообщение)
    • $OmitLocalLogging off|on (не читать с системного сокета /dev/log)
    • $SystemLogFlowControl off|on (блокировать системный сокет при переполнении очереди)
    • $SystemLogSocketIgnoreMsgTimestamp on|off (временные отметки, полученные от приложения через системный сокет, игнорируются)
    • $SystemLogSocketName имя-системного-сокета
    Директивы модуля imfile (каждая строка считается сообщением, файл может быть динамически дополняться и подменяться (ротация), можно мониторить до 100 файлов):
    • $InputFileName абсолютное-имя-файла
    • $InputFileTag метка-процесса (двоеточие необходимо указывать явно)
    • $InputFileStateFile имя-файла (в этом файле хранится текущая позиция в обрабатываемом файле, хранится в рабочем каталоге, необходимо самостоятельно заботится об отсутсвии многократного использования)
    • $InputFileFacility источник-сообщения (local0)
    • $InputFileSeverity уровень-серьёзности (botice)
    • $InputRunFileMonitor (активизация мониторинга с накопленными параметрами)
    • $InputFilePollInterval секунд (10; интервал опроса для всех файлов)
    Директивы модуля imrelp
    • InputRELPServerRun номер-порта
    Директивы модуля ommail (аутентификация SMTP не поддерживается, вызывается в форме: ":ommail:;имя-шаблона-для-тела-письма", рекомендуется фильтровать сообщения и использовать $ActionExecOnlyOnceEveryInterval):
    • $ActionMailSMTPServer имя-или-адрес (127.0.0.1)
    • $ActionMailSMTPPort имя-или-номер (25)
    • $ActionMailFrom адрес-отправителя
    • $ActionMailTo адрес-получателя (можно использовать несколько раз, сбрасывается?)
    • $ActionMailSubject имя-шаблона
    • $ActionMailEnableBody on|off
    Директивы модуля omsnmp (версии протокола SNMP - SNMPv1 и SNMPv2c, сообщение заворачивается в OCTED STRING, вызывается в форме: ":omsnmp:"):
    • $actionsnmptransport udp|tcp|udp6|tcp6|icmp|icmp6
    • $actionsnmptarget имя-или-адрес-SNMP-сервера
    • $actionsnmptargetport имя-или-номер (162)
    • $actionsnmpversion индекс-версии (1; 0 - SNMPv1, 1 - SNMPv2c)
    • $actionsnmpcommunity имя (public)
    • $actionsnmptrapoid идентификатор-OID ("1.3.6.1.4.1.19406.1.2.1", что означает "ADISCON-MONITORWARE-MIB::syslogtrap"; только для SNMPv2c; на стороне получателя должны быть установлены ADISCON-MONITORWARE-MIB ) и ADISCON-MIB
    • $actionsnmpsyslogmessageoid идентификатор ("1.3.6.1.4.1.19406.1.1.2.1", что означает "ADISCON-MONITORWARE-MIB::syslogMsg")
    • $actionsnmpenterpriseoid идентификатор ("1.3.6.1.4.1.3.1.1", что означает "enterprises.cmu.1.1"; только для SNMPv1)
    • $actionsnmpspecifictype номер-trap (0; только для SNMPv1)
    • $actionsnmptraptype тип-trap (6, что означает SNMP_TRAP_ENTERPRISESPECIFIC; только для SNMPv1)
    Директивы модуля ommysql (при вызове ":ommysql:имя-сервера,имя-БД,имя-пользователя,пароль[;имя-шаблона]" выполняется SELECT с подставленным значением шаблона):
    • $ActionOmmysqlServerPort номер-порта
    Директивы модуля omlibdbi (при вызове ":omlibdbi:[;имя-шаблона]" выполняется SELECT с подставленным значением шаблона):
    • $ActionLibdbiDriverDirectory имя-каталога
    • $ActionLibdbiDriver mysql|firebird|ingres|msql|Oracle|sqlite|sqlite3|freetds|pgsql (freetds - для Microsoft SQL и Sybase)
    • $ActionLibdbiHost имя-хоста
    • $ActionLibdbiUserName имя-пользователя
    • $ActionlibdbiPassword пароль
    • $ActionlibdbiDBName имя-БД
    Директивы модуля omrelp (при вызове использовать :omrelp:имя-сервера:порт;имя-шаблона)
    • отсутствуют

    Каждое правило маршрутизации состоит из селектора и действия, которые разделяются табуляциями или пробелами. Каждое сообщение из главной (входной) очереди проверяется селектором каждого правила. Если подходит, то выполняется указанное в правиле действие. Для одного сообщения м.б. выполнено произвольное количество действий (т.е. обработка сообщения не прекращается при первом успехе). Перед действием отфильтрованные сообщения преобразуются с использованием шаблона вывода (либо шаблона по умолчанию, указанного в директиве, либо явно указанного по имени через точку с запятой после описания действия). Шаблон также может использоваться для генерации самого текста действия с указанием символа '?' перед именем шаблона. Шаблон должен быть определён до использования, иначе селектор будет проигнорирован.

    Встроенные шаблоны:
    • RSYSLOG_TraditionalFileFormat - традиционный формат журнала для записи в файл
    • RSYSLOG_FileFormat - традиционный формат журнала, с добавлением долей секунды и зоны
    • RSYSLOG_TraditionalForwardFormat - традиционный формат журнала для передачи на удалённый сервер
    • RSYSLOG_ForwardFormat - традиционный формат журнала для передачи с добавлением долей секунды и зоны
    • RSYSLOG_SyslogProtocol23Format - формат, определённый в проекте стандарта IETF ietf-syslog-protocol-23
    Описание шаблона заключается в кавычки. Обратная косая черта обеспечивает специальное действие следующего символа вида \7 или \n. Текст описания шаблона выводится в результат как есть, кроме переменных (property replacer), заключённых в знаки процента. Внутри знаков процента после имени переменной могут идти начальная и конечная позиция и опции, разделённый двоеточиями. Имена переменных.
    • msg - тело сообщения
    • hostname - имя хоста из сообщения
    • fromhost - имя хоста, от которого пришло сообщения
    • fromhost-ip - адрес хоста, от которого пришло сообщения (127.0.0.1 для местных источников)
    • syslogtag - имя и номер процесса (" exim[16895]:"), который выдал сообщение (извлекается из сообщения)
    • programname - имя процесса, который выдал сообщение (извлекается из сообщения)
    • pri - источник и приоритет, в виде числа
    • pri-text - декодированные источник и уровень (syslog.info)
    • syslogfacility - источник в виде числа
    • syslogfacility-text - декодированный источник ("local7")
    • syslogseverity - уровень в виде числа
    • syslogseverity-text - декодированный уровень ("debug")
    • timegenerated - время получения сообщения (с высоким разрешением)
    • timereported - время, извлечённое из сообщения
    • inputname - имя входного модуля
    • $now, $year, $month, $day - текущая дата в формате YYYY-MM-DD
    • $hour, $minute - текущее время
    • $myhostname - имя хоста обработки

    Простейший шаблон для использования с модулем ommysql (однако, рекомендуется использовать встроенную схему, совместимую с phpLogCon. createDB.sql):

    Использование начальной и конечной позиции позволяет выделять подстроку. Нумерация символов начинается с 1. Символ "$" означает конец строки. Если в качестве начальной позиции указать символ "R", то конечная позиция должна содержать регулярное выражение. В конце регулярного выражения необходимо дописать "--end". Имеются модификаторы типа регулярного выражения и что делать при отсутствии совпадения, подробности в документации (property_replacer.html). Если в качестве начальной позиции указать символ "F", то конечная позиция должна содержать номер требуемого поля (нумеруются с 1, разделителем по умолчанию является символ табуляции, можно изменить указав после символа "F" запятую и десятичное значение символя-разделителя. Тема UNICODE не раскрыта.

    Опции позволяеь форматировать результат обработки шаблона специальным образом (можно указать несколько опций, разделяя их запятыми):
    • uppercase - преобразование к строчным символам (?!)
    • lowercase - преобразование к прописным символам
    • drop-last-lf - удалить последний LF
    • date-mysql - преобразовть в формат даты MySQL
    • date-rfc3164 - преобразовать в формат даты RFC 3164
    • date-rfc3339 - преобразовать в формат даты RFC 3339
    • date-subseconds - выделить только доли секунды
    • escape-cc - заменить управляющие символы строками вида "#009"
    • space-cc - заменить управляющие символы пробелами
    • drop-cc - удалить управляющие символы

    Селектор состоит из двух частей, разделенных точкой: источник сообщения и уровень серьезности. Прописные и строчные буквы не различаются. Можно также использовать числа (см. /usr/include/rsyslog.h). В качестве источников, можно указывать фuth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, mark (регулярные временные метки), security (устаревший синоним для auth) и от local0 до local7. В качестве уровней серьезности можно использовать debug, info, notice, warning, warn (синоним для warning), err, error (синоним для err), crit, alert, emerg, panic (синоним для emerg). Сообщения с уровнем, равным или выше указанного в селекторе, и источником, равным указанному в селекторе, считается подходящим. Звездочка перед точкой соответствует любому источнику, после точки - любому уровню. Перед уровнем можно поставить знак равенства - селектору будут соответствовать только сообщения с указанным уровнем (но не с высшим); восклицательный знак - не будут соответствовать сообщения с уровнем равным или большим; восклицательный знак и равенство - не будут соответствовать сообщения с уровнем, равным указанному. Можно использовать слово none после точки - селектору не будут соответствовать сообщения никакого уровня для данного источника. Можно указывать несколько источников в одном селекторе (через запятую). В этом случае приоритет можно указать только для последнего источника. В одной строке можно указывать несколько селекторов через ';'. Семантика не ясна (не описана): если использовать позитивные селекторы, то выполняется логическое ИЛИ. если негативные (none и восклицательный знак), то логическое И.

    В качестве действия можно указывать:
    • имя обычного файла (полный путь от корня), минус перед именем отключает синхронизацию записи (ускорение на порядок и более!)
    • поименованные каналы - fifo (перед именем ставится вертикальная черта), сам канал д.б. создан перед запуском syslogd командой mkfifo
    • терминал или консоль (/dev/console)
    • @имя-хоста[:порт] (передать сообщений для удаленной журнализации с использовнием UDP)
    • @@[(модификаторы)]имя-хоста[:порт] (передать сообщений для удаленной журнализации с использовнием TCP; модификаторы:
      • zцифра (сжатие, каждое сообщение сжимается отдельно, так что пользы немного)
      • o (разделители между сообщениями в соответсвии с draft syslog-transport-tls-06)
    • список пользователей (через запятую), на терминалы которых будет послано сообщение (не e-mail!)
    • звездочка для посылки сообщения на все терминалы (wall)
    • :имя-модуля-вывода:параметры-модуля[;имя-шаблона] (описание возможностей конкретных модулей вывода описана выше; для модуля MySQL имеется устаревший формат ('>' в начале строки))
    • символ ' ' (сообщение будет удалено, т.е. не попадёт на вход следующему селектору)
    • $имя-канала (канал должен быть описан предварительно)
    • ^имя-программы;имя-шаблона (результат обработки сообщения по шаблону передаётся в качестве первого параметра; rsyslog дожидается завершения выполнения)
    Правила маршрутизации могут быть выделены в блоки, предварительно отфильтровывающие неподходящие сообщения на основе имени выдавшей сообщения программы и имени хоста, для этого в качестве селектора указывается ( мутно описано и реализовано, не советую использовать ):
    • !имя-программы (обрабатываются только сообщения, имеющие в тексте сообщения указанное имя программы; как это отличают от "!источник.уровень-серьёзности"? )
    • -имя-программы (обрабатываются только те сообщения, которые не имеют в тексте сообщения указанное имя программы)
    • !* (конец блока по имени программы)
    • +имя-хоста (обрабатываются только сообщения, полученные с указанного хоста; а proxy? )
    • -имя-хоста (обрабатываются только сообщения, полученные не с указанного хоста; как отличить от имени программы? )
    • +@ (обрабатываются только местные сообщения)
    • +* (конец блока по имени хоста)

    В качестве селектора можно использовать значения переменных (property) в следующем формате:

    Прописные и строчные буквы различаются. Обратная косая черта маскирует последующий символ (в текущей реализации - '"' и '\').

    В качестве селектора можно использовать выражения на бестиповом скриптовом языке RainerScript (Rainer - фамилия разработчика rsyslog) с использованием логических (not, and, or), арифметических (*, /, %, +, -) и строковых (contains, contains_i, startswith, startswith_i, &) операций, а также сравнений (==. =, <>, <, >, <=, >=) с учётом приоритетов и скобок в следующем формате:

    if выражение then действие

    Значения переменных извлекаются использованием символа '$', за которым указывается имя переменной.

    Специальный селектор '&' повторяет действие предыдущего селектора.

    Жаль, что авторы не уделили времени проектированию перед началом реализации, а исходили из списка пожеланий пользователей.