====== Регистрация событий в Linux ====== ===== Использование утилиты logger ===== * [[Средства программирования shell#Передача сообщений в syslog]] в shell скриптах * [[Сервис MTA#Использование почтовых псевдонимов]] $ 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)