天天看点

Linux-日志采集与查看

Linux系统中,拥有非常强大的日志功能,可以保存几乎所有的记录,我们可以从中检索出我们所需要的信息。

一般日志存放的目录:/var/log/

系统常见日志:

/var/log/wtmp                ##系统登陆日志

/var/log/messages      ##所有日志级别的常规信息(不包含邮件,服务认证,定时任务)

/var/log/maillog            ##系统邮件服务日志

/var/log/secure             ##系统认证日志

/var/log/crom                ##系统定时任务日志

rsyslog:用于日志采集的服务

配置文件:

/etc/rsyslog.conf

日志的类型:

auth                ##安全授权信息

authpriv         ##服务认证信息

cron                ##定时任务信息

ftp                   ##FTP进程信息

kern               ##内核日志

lpr                   ##打印机日志

mail                ##邮件日志

news              ##新闻

local0-7         ##本地自定义日志

日志级别(递减)

emerg                ##系统崩溃

alert                    ##必须立刻处理的问题

crit                      ##报错(高级别)

err                      ##报错(低级别)

warning              ##警告信息

notice                 ##重大信息

info                     ##常规信息

debug                ##调试信息

测试:

新增一个日志文件,收集所有日志信息

[[email protected] ~]# vim /etc/rsyslog.conf             ##编辑配置文件
 52 # Log anything (except mail) of level info or higher.
 53 # Don't log private authentication messages!
 54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages
 55 *.*                                                     /tmp/jinx        ##新增保存所有级别所有日志信息到/tmp/jinx

[[email protected] ~]# systemctl restart rsyslog.service     ##重启服务
[[email protected] ~]# systemctl restart sshd.service        ##重启一个服务生成日志
[[email protected] ~]# cat /tmp/jinx                         ##查看系统日志是否生成
Apr 20 09:08:26 desktop rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="3904" x-info="http://www.rsyslog.com"] start
Apr 20 09:08:26 desktop rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Apr 20 09:08:26 desktop systemd: Stopping System Logging Service...
Apr 20 09:08:26 desktop systemd: Starting System Logging Service...
Apr 20 09:08:26 desktop systemd: Started System Logging Service.
Apr 20 09:08:38 desktop systemd: Stopping OpenSSH server daemon...
Apr 20 09:08:38 desktop sshd[1243]: Received signal 15; terminating.
Apr 20 09:08:38 desktop systemd: Starting OpenSSH server daemon...
Apr 20 09:08:38 desktop systemd: Started OpenSSH server daemon.
Apr 20 09:08:38 desktop sshd[3922]: Server listening on 0.0.0.0 port 22.
Apr 20 09:08:38 desktop sshd[3922]: Server listening on :: port 22.
           

远程记录日志信息

[[email protected] ~]# vim /etc/rsyslog.conf                     ##编辑配置文件
 52 # Log anything (except mail) of level info or higher.
 53 # Don't log private authentication messages!
 54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages
 55 *.*                                                     @172.25.80.100
## 55  *.* 所有日志所有级别    @172.25.80.100  通过udp协议发送至172.25.80.100      @通过udp传输,@@通过tcp传输
[[email protected] ~]# systemctl restart rsyslog.service         ##重启服务

日志接收端
[[email protected] ~]# vim /etc/rsyslog.conf                      ##编辑配置文件
 14 # Provides UDP syslog reception
 15 $ModLoad imudp                                          ##删除#符,开启udp系统日志接收
 16 $UDPServerRun 514                                       ##使用端口:514
 17 
 18 # Provides TCP syslog reception
 19 #$ModLoad imtcp                                         ##这里设置开启tcp系统日志接收
 20 #$InputTCPServerRun 514
[[email protected] ~]# systemctl restart rsyslog.service          ##重启rsyslog服务
[[email protected] ~]# systemctl stop firewalld.service           ##关闭防火墙,防止防火墙拦截日志信息
[[email protected] ~]# systemctl disable firewalld.service        ##禁止防火墙自动启动
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
[[email protected] ~]# > /var/log/messages                        ##清空日志,以便查看新日志
[[email protected] ~]# cat /var/log/messages                      ##查看日志
Apr 20 09:37:30 localhost rc.local: /etc/rc.d/rc.local: connect: No route to host
Apr 20 09:37:30 localhost rc.local: /etc/rc.d/rc.local: line 18: /dev/tcp/content.example.com/80: No route to host
[[email protected] ~]# > /etc/rc.d/rc.local                   ##rc.local有自动运行脚本,清空
[[email protected] ~]# reboot                                        
[[email protected] ~]# > /var/log/messages                        ##清空日志
[[email protected] ~]# cat /vat/log/messages               
           
[[email protected] ~]# vim /etc/rsyslog.conf
 51 $template jinx,"%timegenerated% %FORMHOST-IP% %syslogtag% %msg%\n"    ##新建格式
 52 # Log anything (except mail) of level info or higher.
 53 # Don't log private authentication messages!
 54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages;jinx    ##日志选用格式
[[email protected] ~]# systemctl restart rsyslog.service
           

       ##查看是否清空

日志发送端

[[email protected] ~]# systemctl restart sshd                    ##重启服务产生日志

日志接收端

[[email protected] ~]# cat /var/log/messages                      ##查看生成的日志

Apr 20 10:13:07 desktop systemd: Stopping OpenSSH server daemon...

Apr 20 10:13:07 desktop systemd: Starting OpenSSH server daemon...

Apr 20 10:13:07 desktop systemd: Started OpenSSH server daemon.

自定义日志采集格式

$template 格式名称,"日志采集格式"

%timegenerated%		##日志生成时间
%FORMHOST-IP%		##日志来源主机的IP
%syslogtag%		##日志生成的程序
%msg%			##日志内容
\n			##换行

           

journalctl    ##用于日志查看(内存中的),rhel7以后的版本新增

-f		##监控
-n 10		##十条
-p err		##报错	emerg\alert\crit\err\warning\notice\info\debug
--since 时间	##开始时间
--until	时间	##结束时间
-o verbose	##详细信息  
verbose		##查看详细信息相关日志
           

journalctl默认只负责对日志进行查看而不对日志进行保存和采集

让systemd-journald保存日志到硬盘中
[[email protected] ~]# mkdir /var/log/journal                        ##创建日志保存目录
[[email protected] ~]# chown root.systemd-journal /var/log/journal   ##设置目录所属族
[[email protected] ~]# chmod g+s /var/log/journal                    ##目录中新建文件所属族继承父目录
[[email protected] ~]# killall -1 systemd-journald                   ##重新家在journald服务
           

继续阅读