Systemd-journald 收集的日志一般是内存的日志,重启后消失
可以收集来睡在内核,启动过程的早期阶段,标准输出,系统日志以及守护进程启动和运行期间的消息
Rsyslog 进程将日志写入到/var/log目录中
常用的系统日志:
/var/log/dmesg 核心启动日志
/var/log/message 系统报错日志
/var/log/maillog 邮件系统日志
/var/log/wtmp 用户登录记录last查看
/var/log/secure 安全信息,系统登录与网络连接的信息,sudo日志
/var/log/cron 与定期执行任务相关的日志文件 crond
/var/log/boot.log 与系统启动日志的消息记录
Rsyslogd 服务使用
[root@desktop0 ssh]# ps aux | grep rsyslogd
root 473 0.0 0.3 292028 3712 ? Ssl Jan14 0:01 /usr/sbin/rsyslogd -n
root 22328 0.0 0.0 112644 936 pts/1 S+ 18:53 0:00 grep --color=auto rsyslogd
配置文件
/etc/rsyslog.conf
/etc/rsyslog.d/ 中用户自定义*.conf文件中
查看生效和配置文件:
[root@foundation0rsyslog.d]# cat /etc/rsyslog.conf | grep -v "^#" | grep -v"^$"
$ModLoad imuxsock # provides support forlocal system logging (e.g. via logger command)
$ModLoad imjournal # provides access to thesystemd journal
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
进程名.严重级别 记录的文件位置
*:表示所有
Mail.none:不记录mail日志
Authpriv.none 不记录authpriv日志
Cron.none 不记录cron日志
Authpriv.* authpriv所有的日志都要记录到 /var/log/secure
Mail.* mail所有的日志都记录到/var/log/maillog - 表示异步
*.emerg :omusrmsg:* #登录到系统的所有用户都能看到这条日志
local7.* /var/log/boot.log 用户自定义的级别
*.* @172.25.0.10 #将系统的所有的日志发送到日志服务器上,本地服务器上也会记录
事件等级:
根据事件的严重性来划分:
0:emery :系统不可用
1:alert 必须立即采取措施
2:crit 严重状况
3:err 非常严重错误差误
4:warning 警告状态
5.:notice 正常但重要的事件 .=notice .!=notice
6:info 信息性事件 *.info 表示info以上所有的事件,包括0-5级别的事件
7:debug :调试级别信息
8:none
验证rsyslog日志配置是否正常:
logger命令可以发送消息到rsyslog服务
[root@desktop0 ~]# logger --help
Usage:
logger [options] [message]
Options:
-T,--tcp use TCP only
-d,--udp use UDP only
-i,--id log the process ID too
-f,--file <file> log the contentsof this file
-h,--help display this help textand exit
-n,--server <name> write to thisremote syslog server
-P,--port <number> use this UDP port
-p,--priority <prio> mark given message with this priority
-s,--stderr output message tostandard error as well
-t,--tag <tag> mark every linewith this tag
-u,--socket <socket> write to this Unix socket
-V,--version output versioninformation and exit
Vim/etc/rsyslog.conf
# Save boot messages also to boot.log
local7.* /var/log/boot.log
local2.* /var/log/test.log #将local2级别的日志写入到test.log文件中
测试:
[root@desktop0 ~]# logger -p local2.info"asdfasdf"
查看生成的日志:
[root@desktop0 log]# cat /var/log/test.log
Jan 20 19:13:28 desktop0 root: asdfasdf
统一日志管理:
将client的日志发送到server端:
在client端配置
Vim /etc/rsyslog.conf
Local2.* /var/log/test.log
*.* @172.25.0.11 #使用UDP
#*.* @@remote-host:514#使用TCP
[root@desktop0 ~]# systemctl restartrsyslog
在server端配置:
Vim /etc/rsyslog.conf
14 # Provides UDP syslog reception
15$ModLoad imudp
16$UDPServerRun 514
Local2.* /var/log/test.log
[root@desktop0 ~]# firewall-cmd --permanent--add-port=514/udp
[root@desktop0 ~]# systemctl restart rsyslog
Tail �Cf /var/log/test.log
测试:
Client端:
[root@desktop0 ~]# logger -p local2.info " log test"
Server端:
[root@server0 ~]# tail -f /var/log/test.log
Jan 20 19:27:00 server0 root: desktop0 log test
Jan 20 19:29:47 desktop0 root: desktop0 log test
Jan 20 19:29:51 desktop0 root: desktop0 log test
Jan 20 19:29:56 desktop0 root: log test
时间 远程主机 用户 事件
日志轮转:
Vim /etc/logrotate.conf #主配置文件
Vim /etc/logrotate.d #辅助配置文件
[root@server0 logrotate.d]# cat /etc/logrotate.d/samba
/var/log/samba/* {
Notifempty #如果是空文件,不转储
olddir /var/log/samba/old #旧的日志文件
missingok #
sharedscripts
copytruncate
}
logrotate -vf /etc/logrotate.conf #手动测试执行
systemd日志查看:
通过journalctl查看事件:
</s