linux日志管理

简介:

1 常见的系统日志

/var/log/message     记录系统重要信息日志,非常重要

/var/log/cron     记录系统定时任务日志

/var/log/cups     记录打印信息日志

/var/log/dmesg    系统开机时内核自检信息,也可以使用dmesg命令直接查看内核自检信息    

/var/log/btmp     错误登陆信息日志,二进制文件,使用lastb命令查看

/var/log/lastlog       系统所有用户最后一次的登陆时间的日志,二进制文件,使用lastlog命令查看

     

/var/log/mailog     记录邮件信息的日志

/var/log/secure     记录验证和授权方面的信息,只要涉及账户和密码的授权都会记录,如,系统的登陆,ssh的登陆,su切换,sudo授权,甚至是添加用户和修改用户密码

/var/log/wtmp     永久记录所有用户的登陆,注销信息,同时记录系统的启动,重启,关机事件,二进制文件,使用last查看

/var/log/utmp     记录当前已经登陆的用户信息,这个文件随着用户的登录和注销而不断变化,只记录当前登录用户的信息,使用w,who,users等命令查看

2 查看日志服务和自启动状态

[root@Darren log]# ps aux |grep rsyslogd

[root@Darren log]# chkconfig --list|grep rsyslog

3 日志文件内容的一般格式

时间发生的日期和时间

发生此事件的服务器的主机名

启动此事件的服务名或程序名

事件的具体信息

如/var/llog/message日志:

[root@Darren log]# cat messages

Nov 14 11:34:05 Darren rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1282" x-info="http://www.rsyslog.com"] rsyslogd was HUPed

Nov 14 11:36:04 Darren dhclient[1178]: DHCPREQUEST on eth0 to 192.168.91.254 port 67 (xid=0x483caad7)

Nov 14 11:36:04 Darren dhclient[1178]: DHCPACK from 192.168.91.254 (xid=0x483caad7)

4 日志配置文件/etc/rsyslog.conf

[root@Darren log]# cat /etc/rsyslog.conf |grep -v '#'

#记录所有信息,但是忽略mail,authpri,cron的信息

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

authpriv.*                                              /var/log/secure

#mail产生的日志过多,-表示先存储内存中,批量刷盘

mail.*                                                  -/var/log/maillog

cron.*                                                  /var/log/cron

#当严重级别为emerg时,以广播的形式发个所有用户

*.emerg                                                 *

uucp,news.crit                                          /var/log/spooler

local7.*                                                /var/log/boot.log

/etc/rsyslog.conf的格式:

服务名称;连接符号;日志等级;日志记录位置

(1)服务名称

authpriv 主要与认证有关的机制,如login,ssh,su等需要账号/密码

cron 定时任务cron和at产生的日志

daemon和各个守护进程相关的日志

kern 内核产生的进程

lpr 打印产生的日志

mail 邮件收发信息

news 与新闻服务器相关的日志

user 用户等级类别的日志信息

syslog 就是rsyslogd服务产生的信息

local0-local7 本地使用预留的服务

uucp 子系统的日志信息

(2)连接符号

* 代表所有日志等级

mail.info 表示邮件信息大于等于info级别的信息

.=info表示等于info级别的信息

.!info表示不等于info等级的信息

(3)日志等级

none 忽略某些服务信息

debug 一般调试信息说明

info 基本的通知信息

warning 警告信息

err 错误信息,可能影响服务或系统运行

crit 临界点状况信息,比err严重

alert 警告状态信息,比crit严重

emerg 疼痛等级信息,系统已经无法使用

(4)日志记录位置

日志记录的文件位置

设置chattr +a 只能往日志例写数据,不能修改日志,防止root用户误操作

[root@Darren log]# chattr +a cron

[root@Darren log]# lsattr cron

-----a-------e- cron

例:自定义cron服务的日志

[root@Darren log]# vim /etc/rsyslog.conf

cron.*    /var/log/test.log    --添加cron服务的所有日志,并记录到/var/log/test.log文件中

[root@Darren log]# /etc/init.d/rsyslog restart   --重启rsyslog服务

做个定时任务,测试一下,最后生成日志文件:

[root@Darren log]# crontab -e           

*/2 * * * * echo "this is test!">>/tmp/root.txt

[root@Darren log]# ll /var/log/test.log

-rw------- 1 root root 2395 Nov 15 10:17 /var/log/test.log

5 搭建日志服务器

(1)环境

CentOS release 6.8 (Final)

client:192.168.91.5

server:192.168.91.3

client和server防火墙要关闭,并且要ping的通

[root@zhishutang log]#  /etc/init.d/iptables stop 

[root@Darren log]# /etc/init.d/iptables stop

 

(2)client配置

编辑客户端文件/etc/rsyslog.conf,指定写日志的主机IP:

[root@zhishutang log]# vim /etc/rsyslog.conf

添加:

*.* @@192.168.91.3:514 

重启rsyslog服务:

[root@zhishutang log]# /etc/init.d/rsyslog restart

(3)server配置

编辑服务端文件/etc/rsyslog.conf,开通tcp协议和端口:

[root@Darren log]# vim /etc/rsyslog.conf

$ModLoad imtcp

$InputTCPServerRun 514


重启rsyslog服务:

[root@zhishutang log]# /etc/init.d/rsyslog restart


查看514端口:

[root@Darren log]# netstat -nltup |grep 514

tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      13721/rsyslogd     

tcp        0      0 :::514                      :::*                        LISTEN      13721/rsyslogd   


(4)测试

client:

在客户端生成日志

[root@zhishutang log]# logger 'hello word!'       

[root@zhishutang log]# cat /var/log/messages|grep 'hello word!'

Nov 14 17:39:20 zhishutang root: hello word!

server:

客户端的日志成功的写入日志服务端

[root@Darren log]# cat /var/log/messages|grep 'hello word!'

Nov 14 17:39:20 zhishutang root: hello word!



6 日志文件轮替logrotate

(1)配置文件

/etc/logrotate.conf

/etc/logrotate.d/

[root@Darren log]# cat /etc/logrotate.conf

weekly 默认每周轮替一次

rotate 4  默认保留四个日志文件

create  新建一个空日志文件

dateext 以日期作为后罪名

#compress 旧日志是否被压缩,默认不压缩

#大括号中的设置可以取代默认设置生效:

/var/log/wtmp {            --指定日志文件

    monthly                 --每月轮替

    create 0664 root utmp   --权限0644,所有者root,所属组utmp

        minsize 1M            --大于1M才会轮替

    rotate 1                    --保留一个旧日志文件

}

/var/log/btmp {

    missingok

    monthly

    create 0600 root utmp

    rotate 1

}

/usr/local/apache2/logs/access_log {

        daily

        create

        rotate 30

}


目录下的文件:

[root@Darren logrotate.d]# ll /etc/logrotate.d/

-rw-rw-r-- 1 root root 135 1月  18 2016 ConsoleKit

-rw-r--r-- 1 root root  71 5月  11 2016 cups

-rw-r--r-- 1 root root 139 5月  12 2016 dracut

-rw-r--r-- 1 root root 185 7月  12 19:00 httpd

-rw-r--r-- 1 root root 329 7月  17 2012 psacct

-rw-r--r-- 1 root root 210 12月 10 2014 syslog

-rw-r--r-- 1 root root  87 7月  13 00:45 yum


[root@Darren logrotate.d]# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

    sharedscripts

    postrotate

        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}



(2)logrotate命令

-v 显示轮替运行过程

-f 强制轮替

[root@Darren /]# logrotate -v /etc/logrotate.conf  --显示轮替过程

[root@Darren /]# logrotate -vf /etc/logrotate.conf  --强制轮替

#查看日志发生了什么变化:

[root@Darren log]# ls

anaconda.ifcfg.log    btmp-20161115  dmesg.old               maillog-20161114   samba             spooler-20161115

anaconda.log          cluster        dracut.log              maillog-20161115   secure            tallylog

anaconda.program.log  ConsoleKit     dracut.log-20160920.gz  messages           secure-20161101   wtmp

anaconda.storage.log  cron           dracut.log-20161114     messages-20161101  secure-20161107   wtmp-20161115

anaconda.syslog       cron-20161101  httpd                   messages-20161107  secure-20161114   yum.log

anaconda.xlog         cron-20161107  lastlog                 messages-20161114  secure-20161115   yum.log-20160920

anaconda.yum.log      cron-20161114  mail                    messages-20161115  spooler           yum.log-20161114

audit                 cron-20161115  maillog                 ntpstats           spooler-20161101

boot.log              cups           maillog-20161101        prelink            spooler-20161107

btmp                  dmesg          maillog-20161107        sa                 spooler-20161114


可以发现这五种日志

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

原本是每周进行一次轮替,但是强制轮替后,及时生效。




本文转自 Darren_Chen 51CTO博客,原文链接:http://blog.51cto.com/darrenmemos/1872929,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
5月前
|
监控 Linux 应用服务中间件
linux查看日志文件tail -f用法
在 Linux 中,查看和监控日志文件是系统管理员和开发者常用的操作之一。tail 命令就是用来查看文件内容的,它默认显示文件的最后部分。tail -f 是 tail 命令的一个非常有用的选项,用于实时查看和跟踪日志文件的更新,尤其是在监控运行中的服务时非常有用。
772 0
|
9月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
299 7
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
419 1
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
303 7
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
436 3
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
351 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
204 0
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
193 0