====== Регистрация событий в Linux ======
===== Использование утилиты logger =====
* [[Средства программирования shell#Передача сообщений в syslog]] в shell скриптах
* [[Сервис MTA#Использование почтовых псевдонимов]]
* Сервис SNORT [[Сервис SNORT#Копирование alert_unified2 в syslog]]
$ logger -t postfix -p mail.info 'Message from postfix'
$ logger -t kernel -p kern.emerg 'Kernel Panic'
===== Сервис rsyslog =====
* [[http://mazday.wordpress.com/2008/12/20/rsyslog-удобный-способ-сбора-и-обработки-си/|RSyslog — удобный способ сбора и обработки системных логов]]
* [[http://mazday.wordpress.com/2008/12/29/настройка-rsyslog-на-запись-в-базу-данных-mysql-postgresql/|Настройка RSyslog на запись в базу данных MySQL]]
$ systemctl -a | grep syslog
$ less /etc/rsyslog.conf
$ man rsyslog.conf
==== Настройка на обработку сообщений типа local0 ====
root@server:~# cat /etc/rsyslog.d/30-cisco.conf
local0.* -/var/log/cisco.log
root@server:~# touch /var/log/cisco.log
debian# chown root:adm /var/log/cisco.log
ubuntu# chown syslog:adm /var/log/cisco.log
root@server:~# service rsyslog restart
root@server:~# tail -f /var/log/cisco.log
==== Регистрация сообщений, переданных по сети ====
=== Сервер ===
root@server:~# cat /etc/rsyslog.conf
...
module(load="imudp")
input(type="imudp" port="514")
...
root@server:~# service rsyslog restart
=== Клиент rsyslog ===
# cat /etc/rsyslog.conf
...
*.* @server.corp13.un
==== Передача сообщений на STDIN программы ====
root@server:~# cat /etc/rsyslog.conf
...
module(load="omprog")
local0.* action(type="omprog" binary="/etc/script.sh")
...
root@server:~# service rsyslog restart
===== Генератор отчетов logwatch =====
* [[http://ashep.org/2012/monitoring-sistemy-pri-pomoshhi-logwatch/|Мониторинг системы при помощи logwatch]]
* [[Сервис MTA#Использование почтовых псевдонимов]]
root@server:~# apt install logwatch
root@server:~# /etc/cron.daily/00logwatch
===== Systemd journald =====
* [[https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs|How To Use Journalctl to View and Manipulate Systemd Logs]]
==== Форматы вывода ====
# journalctl -ra
# journalctl --no-pager
# journalctl -o json
# journalctl -o verbose
# journalctl -f
client3:~# journalctl -f | grep ansible-pull
==== Фильтрация вывода ====
# journalctl -ra -u postfix
# journalctl -ra -p err
# man systemd.journal-fields
# journalctl SYSLOG_FACILITY=2
==== Управление ====
# man journald.conf
# journalctl --disk-usage
# journalctl --vacuum-size=1G
==== Регистрация сообщений, переданных по сети в journald ====
* [[http://unix.stackexchange.com/questions/83173/receiving-syslog-messages-with-a-systemd-arch-linux|Receiving Syslog messages with a systemd]]
==== journalctl SYSLOG_FACILITY ====
0 kernel messages
1 user-level messages
2 mail system
3 system daemons
4 security/authorization messages
5 messages generated internally by syslogd
6 line printer subsystem
7 network news subsystem
8 UUCP subsystem
9 clock daemon
10 security/authorization messages
11 FTP daemon
12 NTP subsystem
13 log audit
14 log alert
15 clock daemon (note 2)
16 local use 0 (local0)
17 local use 1 (local1)
18 local use 2 (local2)
19 local use 3 (local3)
20 local use 4 (local4)
21 local use 5 (local5)
22 local use 6 (local6)
23 local use 7 (local7)