欢迎访问华乐美文网

linux打印日志

日志2019-07-09 13:13书业网

篇一:Linux常见的日志文件及查看命令

Linux常见日志和常用命令

Linux 日志都以明文形式存储,所以我们不需要特殊的工具就可以搜索和阅读它们。Linux 日志存储在 /var/log 目录中,我们可以编写脚本,来扫描这些日志,并基于它们的内容去自动执行某些功能。

一、Linux常用的日志文件

# /var/log/boot.log

该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。

# /var/log/cron

该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。

# /var/log/maillog

该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。

# /var/log/messages

该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。

该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。但该文件可以由 /etc/syslog文件进行定制。由 /etc/syslog.conf 配置文件决定系统如何写入 /var/log/messages。

# /var/log/syslog

RedHat Linux默认不生成该日志文件,但可以配置 /etc/syslog.conf让系统生成该日志文件。它和 /etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog

# /var/log/secure

该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。

# lastlog

该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示

“**Never logged in**”。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似信息。

系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间,则说明该用户的账户已经泄密了。

# /var/log/wtmp

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录。

命令last有两个可选参数:

last -n 用户名 显示用户上次登录的情况。

last -t 天数 显示指定天数之前的用户登录情况。

# /var/run/utmp

该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。

每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。

# /var/log/xferlog

该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。

该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。

# /var/log/kernlog

Linux默认没有记录该日志文件。要启用该日志文件,必须在 /etc/syslog.conf 文件中添加一行:“kern.* /var/log/kernlog ”。这样就启用了向 /var/log/kernlog文件中记录所有内核消息的功能。该文件记录了系统启动时加载设备或使用设备的情况。一般是正常的操作,但如果记录了没有授权的用户进行的这些操作,就要注意,因为有可能这就是恶意用户的行为。

# /var/log/Xfree86.x.log

该日志文件记录了X-Window启动的情况。另外,除了/var/log/外,恶意用户也可能在别的地方留下痕迹,应该注意以下几个地方:root和其他账户的shell历史文件;用户的各种邮箱,如.sent、mbox,以及存放在/var/spool/mail/ 和 /var/spool/mqueue中的邮箱;临时文件/tmp、/usr/tmp、/var/tmp;隐藏的目录;其他恶意用户创建的文件,通常是以"."开头的具有隐藏属性的文件等。

二、Linux常用的命令

wtmp和utmp文件都是二进制文件,它们不能被诸如tail之类的命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac等命令来使用这两个文件包含的信息。

# who

who命令查询utmp文件并报告当前登录的每个用户,默认输出包括用户名、终端类型、登录日期及远程主机。例如,键入who命令,然后按回车键,将显示如下内容: # who

root :0 May 20 10:45

root pts/1 May 20 10:45 (:0.0)

root pts/2 May 20 10:55 (:0.0)

如果指明了wtmp文件名,则who命令查询所有以前的记录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。

# w

w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如,键入w命令,然后按回车键,将显示如下内容:

# w

13:00:53 up 2:20, 3 users, load average: 0.00, 0.00, 0.00

USERTTY FROM LOGIN@IDLEJCPUPCPU WHAT

root :0 -10:45 ?xdm?39.61s0.17s /usr/bin/gnome- root pts/1 :0.0 10:452:08m0.05s0.04s sqlplusas sy root pts/2 :0.0 10:550.00s 0.03s0.00s w

# users

users命令用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如,键入users命令,然后按回车键,将显示如下内容:

# users

root root root

# last

last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户,如果指明了用户,那么last只报告该用户的近期活动。

# last

wtmp begins Tue May 20 11:46:37 2014

# ac -d 显示每天的总的连接时间

# ac -p 显示每个用户的总的连接时

ac命令根据当前的 /var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。

# lastlog

lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示**Never logged**。

另外,可加一些参数,例如,

“last -u 102”命令将报告UID为102的用户;

“last -t 7”命令表示限制为上一周的报告。

三、Linux进程统计

UNIX可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程统计子系统可以告诉你。它还对跟踪一个侵入者有帮助。与连接时间日志不同,进程统计子系统默认不激活,它必须启动。在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。accton命令的形式为:accton file,file必须事先存在。先使用touch命令创建pacct文件:touch /var/log/pacct,然后运行accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令。

lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内记录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。

进程统计的一个问题是pacct文件可能增长得十分迅速。这时需要交互式地或经过cron机制运行sa命令来保证日志数据在系统控制内。sa命令报告、清理并维护进程统计文件。它能把 /var/log/pact 中的信息压缩到摘要文件 /var/log/savacct 和

/var/log/usracct 中。这些摘要包含按命令名和用户名分类的系统统计数据。在默认情况下sa先读它们,然后读pacct文件,使报告能包含所有的可用信息。sa的输出有下面一些标记项。

avio:每次执行的平均I/O操作次数。

cp:用户和系统时间总和,以分钟计。

cpu:和cp一样。

k:内核使用的平均CPU时间,以1k为单位。

k*sec:CPU存储完整性,以1k-core秒为单位。

re:实时时间,以分钟计。

s:系统时间,以分钟计。

tio:I/O操作的总数。

u:用户时间,以分钟计。

用户还可以根据用户而不是命令来提供一个摘要报告。例如,键入命令"sa -m",将显示如下内容:

# sa -m

sa: ERROR -- print_stats_nicely called with num_calls == 0

四、Linux syslog设备

syslog已被许多日志函数采纳,它用在许多保护措施中。任何程序都可以通过syslog 记录事件。syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。

篇二:Linux下重要日志文件

Linux下重要日志文件及查看方式

日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。本文主要介绍了Linux下重要日志文件和Linux日志输出查看方式。

1、Linux下重要日志文件介绍

/var/log/boot.log

该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示:

图1 /var/log/boot.log示意

/var/log/cron

该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。该文件的示意请见图2:

图2 /var/log/cron文件示意

/var/log/maillog

该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。图3所示是该日志文件的片段:

图3 /var/log/maillog文件示意

该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。但该文件可以由/etc/syslog

文件进行定制。由

/etc/syslog.conf配置文件决定系统如何写入/var/messages。

/var/log/syslog

默认Fedora不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示为"**Never logged in**"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似图4的信息:

图4 lastlog命令的运行结果

/var/log/wtmp

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。 /var/run/utmp

该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat

之类的命令直接查看这些文件,而是需要使用相关命令通过这

些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。

每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。

/var/log/xferlog

该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。

该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。图5是该文件的部分显示:

图5 /var/log/xferlog文件示意

2、Linux日志输出查看方式

Linux下面提供了许多文本工具来查看和处理日志文件,下面给读者提供一些比较常见和有用的工具。

dmesg

使用dmesg命令可以快速查看最后一次系统引导的引导日志。如图6所示:

图6 dmesg显示结果

如上所示,通常它的内容会很多,所以我们往往使用如下命令以分页的方式显示引导信息,如图7所示:

# dmesg | more

图7 dmesg|more命令显示结果

tail

tail命令设计用于显示文本文件的最后几行。使用-f开关,当日志增加新的内容时,tail将继续显示新的输出。如图8所示:

篇三:Linux日志管理篇

Linux日志管理篇 操作系统的日志主要具有审计与监测的功能,通过对日志信息的分析,可以检查错误发生的原因,监测追踪入侵者及受到攻击时留下的痕迹,甚至还能实时的进行系统状态的监控。有效利用日志信息并对其进行分析与实时的监控管理,对于系统的安全性具有极为重要的作用。

对于日志信息的管理通常采用两种方法,一种方法是不同服务器的日志信息都存放在各自系统内,系统管理员对各服务器进行分散管理。另一种方法则是使用日志主机系统,这是一个从其他主机收集日志,并将它们存放在同一个地方的系统,很容易使来自多个主机的日志条目关联起来,对其进行统一管理、分析,甚至配合自动化工具进行实时的监控,有效提高管理的效率。

第一种方法往往是大多数系统管理员的常用的方法,这种传统的管理方法在服务器数量较少时还能勉强应付,但在处理多主机状况时却并非一种有效的方法。本文主要讲述二种日志管理方法,探寻一种提高系统管理效率的途径。

一、日志主机系统的部署

日志主机系统包括日志主机及各主机系统两个部分,其中日志主机相当于服务器端,而各主机系统相当于客户端,将日志信息实时的传送到日志主机上来。

1.Linux系统中系统日志服务器的安装 对管理员来说,日志非常有用,但大量的日志又很麻烦。当一些事件运行错误时,日志可以对故障排除起到至关重要的作用,特别是在安全性相关问题上。但是如果攻击者危害到你的主机,日志将会告诉你,对于主机来说这很有用;你需要给数据中心发信息。保护日志非常重要,一个中央日志服务器会更容易管理、分析和查找它们。针对这一点,我将向你展示如何把多个主机的系统日志集中收集到一个主机上来管理,即Linux上的中央系统日志服务器。

首先,所有集中的系统日志服务器都应该建成一个安全和硬化的主机。在主机上没有一点关于保护和集中化你们日志方面。其次,你怎样能从你的主机上获得日志呢? 让我们开始安装中央系统日志服务器。我将举例说明如果使用rSyslog,实际的标准Linux系统日志。Ubuntu和红帽常使用它,并且通过文件/etc/rsyslog.conf进行管理。文件中包含许多指定的特殊系统日志:有的是控制台方面的,有的是文件方面或其它主机的。 首先,我们需要载入合适的TCP和UDP插件以支持接收系统日志。把下面的代码添加到rsyslog.conf的头部:

$modload imtcp

$modload imudp

$InputTCPServerRun 10514

$UDPServerRun 514

载入的这两个模块能支持监听TCP和UDP的端口,并且指定哪个端口来接受事件,在这种情况下,使用TCP的10514端口和UDP的514端口。你需要确认一下本地防火墙(在你的主机和中央系统日志服务器之间的防火墙)

下面我们需要指定一些规则来告诉rSyslog在哪放输入事件。如果你不添加任何规则,输入事件将按照本地的规则进行处理,并且与本地主机的事件交织在一起。我们需要在上面添加节之后和本地处理系统日志之前来正确的指定这个规则,例如:

if $fromhost-ip isequal '192.168.0.2' then /var/log/192.168.0.2.log

& ~

这里我们说的每一个来自于192.168.0.2的系统日志都应该保存在

/var/log/192.168.0.2.log文件中。&~这个符号是非常重要的,因为它告诉rSyslog将停止处理消息。如果你把它忘写了,消息将越过下一个规则,并且继续处理。在这一规则中还有其他的变量。例如:

if $fromhost-ip startswith '192.168.' then /var/log/192.168.log

& ~

这里我们用192.168.*替代了以这个为开始的所有IP地址,写入到

/var/log/192.168.log文件中。你还可以看到一些其它的过滤。

你将需要重启这个rsyslog服务来激活我们所做的新的配置:

$ sudo service rsyslog restart

现在,对于发送方的主机,我们还需要对文件rsyslog.conf进行一些更改,在文件的头部,添加下面这行:

*.* @@192.168.0.1:10514

这是发送的所有事件,来自于所有源代码和所有重要级别(用*.*),通过TCP协议传给IP地址为192.168.0.1的10514端口。你可是用你所在环境的地址来替换这个IP地址。要启用此配置,你将需要重启主机上的rSyslog。

你可以通过SSL/TLS更进一步地发送你的系统日志。如果你在互联网上或其它网络间传输系统日志,这也没什么坏处,你可能会发现这个的简单说明。

现在,如果给你的配置管理系统(如果不使用这个,你可以试一试Puppet或Cfengine工具)添加这个配置,然后,您可以用适当的系统日志来有效地配置每台主机,以确保你的日志将被发送到中央系统日志服务器。

2.日志主机的部署

日志主机采用一台RHEL 5的服务器(假设其主机名为loghost),日志收集软件采用Linux平台上的Syslog,Syslog一般都随Linux系统安装时已经安装,对于我们部署整个系统提供了极大的便利性,因此在此不对其安装步骤进行阐述,仅讲述其配置方法。

Syslog既可作为客户端,也可作为服务器端,并且支持远程的日志收集。其配置文件为/etc/sysconfig/syslog,要配置其作为服务器端,需对此配置文件相应部分改为如下所示: SYSLOGD_OPTIONS=“-r-m 0”,“-r”选项表示使syslog接收客户端的远程日志信息。 接下来重启Syslog服务器端使配置生效:

#service syslogd restart

由于Syslog采用514端口监听来自各客户端的日志信息,因此需要在日志主机的防火墙上开放514端口,以iptables为例,对特定网段开放514端口: /sbin/iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/16 -dport 514 -syn -j ACCEPT

3.客户端的部署

3.1 Linux平台下客户端的部署

在Linux平台下依然选择syslog作为客户端进行部署,此时此配置文件为

/etc/syslog.conf,其默认配置为(仅以/var/log/message日志为例):

*.info;mail.none;authpriv.none;cron.none/var/log/messages /var/log/message即Sysolg存放系统日志的绝对路径,将此值替换为日志主机名即可。例子如下:*.info;mail.none;authpriv.none;cron.none @loghost

根据上述配置,当Syslog重启使用配置生效后,客户端服务器的日志信息将会实时的传送到日志主机的/var/log/message文件里,对各服务器的日志信息进行统一的管理。 使用如下命令重启Syslog服务使配置生效:

#service syslogd restart

依上述方法将其他系统日志信息(如/var/log/secure)导入到日志主机上。

笔者建议,采用添加配置而非修改的方法,同时在本地及日志主机上保存系统日志。

3.2 Windows平台下客户端的部署

在Windows平台下采用软件evtsys进行客户端的部署,其下载链接

为:http://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/evtsys_exe.zip解开后得到两个文件:evtsys.ext和evtsys.dll。

将这两个文件放到C:\WINDOWS\system32目录下,在命令行状态下运行如下命令进行安装: %systemroot%\system32\evtsys ?i-h loghost

当安装成功后,可查看服务列表看到相应的信息,如图1所示。

卸载evtsys的命令为:%systemroot%\system32\evtsys-u

更改日志主机名的命令为:

Net stop evtsys //停止 evtsys

evtsys-u//卸载 evtsys

evtsys-l-h newloghost //指定新的日志主机名

net start evtsys //启动 evtsys

二、日志主机的自动日志分析与监控

当整个系统部署好后,可以从日志主机里验证各服务器是否将日志信息发送到了日志主机上。以/var/log/message为例,打开此文件,当看到具有不同主机名字的日志信息标志着日志主机已经正常工作,节选部分日志如下:

Jan 9 08:39:38 dog crond(pam_unix)[4528]:ses-sion opened for user root by (uid=0) Jan 9 08:39:36 dog crond(pam_unix)[4528]:session closed for user root

Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion opened for user root by(uid=0) Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion closed for user root Jan 9 08:39:53 app last message repeated 8 times

Jan 9 08:40:11 (转载于:www.cSSyq.co m 书 业 网:linux打印日志)apple net-snmp[657]:Connection from udp:92.168.1.11:4298 Jan 9 08:40:11apple net-snmp[657]:Received SNMP packet(s) from

udp:159.226.2.144:42988

Jan 9 08:41:15orangesshd(pam_unix)[28389]:ses-sion opened for user tom by(uid=2011)

Jan 9 08:41:28 orange sshd(pam_unix)[28389]:ses-sion opened for user tom by (uid=2011)

Jan 9 08:41:28 orange 1月9 08:41:28 su` (pam_unix)[28425]:session opened for user root by tom (uid=2011)

对于如此庞大的日志信息,大部分并没多大的用处,但在跟踪某一具体问题或者安全漏洞时却可能很有用。那么我们如何对其进行有效地分析与监测,发挥其真正作用呢?在此推荐两款比较常用的日志分析与监控软件,对这些日志信息进行自动地分析与监控。

1.利用Logwatch 进行日志监控 在Linux系统中,已经默认安装了Logwatch,配合Sendmail的邮件发送功能,向系统管理员发送前一天的日志分析结果邮件。其配置文件为/etc/log.d/logwatch.conf,下面是省略注释后的配置文件,一般只需将MailTo部分改为系统管理员邮箱地址即可,更多的配置细节可参考其官方

Pnnt=No

Range=yesterday

Detail=High

Service=All

2.利用Swatch进行日志的实时监控 Swatch从字面上可以简单理解为Watcher(守护者). 其它的日志分析软件定期地扫描日志文件, 向你报告系统已经发生的问题或者状况. Swatch程序不仅能够做这些, 而且它能够像Syslogd守护程序那样主动的扫描日志文件并对特定的日志消息采取修复行动.

一. 准备

1. 下载和解压缩最新的Swatch软件包.建议从Swatch的官方网站获得可靠的Swatch软件包.

下载网址: http://sourceforge.net/projects/swatch/

1) 创建Swatch软件包存放的目录.

#mkdir -p /usr/local/src/log

2) 解压缩源代码包, 在log目录下会生成一个新的目录apache_1.3.33

篇四:Linux log 日志查看

Linux log 日志查看

其实,可以说成是监控系统的记录,系统一举一动基本会记录下来。这样由于信息非常全面很重要,通常只有 root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误讯息与再配合登录文件的错误信息,几乎就可以解决大部分的 Linux 问题! 所以日志文件异常重要,作为一个合格的linux 系统工程师,日志文件是必要熟练掌握的部分。

常见的几个登录文件有:

/var/log/secure:记录登入系统存取数据的文件,例如 pop3, ssh, telnet, ftp 等都会被记录;

/var/log/wtmp:记录登入者的讯息数据,由于本文件已经被编码过,所以必须使用 last指令来取出文件的内容;

/var/log/messages:尤为重要,几乎发生的错误讯息(或是重要信息)都会被记录在此;

/var/log/boot.log:记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息; /var/log/maillog 或 /var/log/mail/*:纪录邮件存取或往来( sendmail 与 pop3 )的使用者记录;

/var/log/cron:记录 crontab 这个例行性服务的内容的。

/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba,

/var/log/procmail.log:分别是几个不同的网络服务的记录文件!

登录文件的纪录程序之一: syslogd

通常经过 syslog 而记录下来的数据主要有:

事件发生的日期与时间;

发生此事件的主机名称;

启动此事件的服务名称 (如 samba, xinetd 等) 或函式名称 (如 libpam ..); 该讯息数据内容

syslogd的daemon配置文件:/etc/syslog.conf

内容语法是这样的:

服务名称[.=!]讯息等级 讯息记录的文件名或装置或主机

# 例如底下:

mail.info /var/log/maillog_info

服务名称:该服务产生的讯息会被纪录的意思。syslog 认识的服务主要有底下这些: auth, authpriv:主要与认证有关的机制,例如telnet, login, ssh 等需要认证的服务都是使用此一机制;

cron:例行性命令 cron/at 等产生讯息记录的地方;

daemon:与各个 daemon 有关的讯息;

kern:核心 (kernel) 产生讯息的地方;

lpr:打印相关的讯息!

mail:只要与邮件收发有关的讯息纪录都属于这个;

news:与新闻群组服务器有关的东西;

syslog:syslogd 这支程序本身产生的信息啊!

user, uucp, local0 ~ local7:与 Unix like 机器本身有关的一些讯息。

讯息等级

系统将讯息分为七个主要的等级,依序是由不重要排列到重要讯息等级:

info:仅是一些基本的讯息说明而已;

notice:比 info 还需要被注意到的一些信息内容;

warning 或 warn:警示讯息,可能有问题,但是还不至于影响到某个 daemon 运作。 err 或 error :一些重大的错误讯息,这就要去找原因了。

crit:比 error 还要严重的错误信息,crit 是临界点 (critical) 的缩写,已经很严重了!

alert:警告警告,已经很有问题的等级,比 crit 还要严重!

emerg 或 panic:疼痛等级,意指系统已经几乎要当机的状态! 很严重的错误信息了。

除了这些有等级的讯息外,还有两个特殊的等级,那就是 debug(错误侦测等级) 与 none (不需登录等级) 两个,当要作一些错误侦测,或者是忽略掉某些服务的信息时,就用这俩!

在讯息等级之前还有 [.=!] 的连结符号!他代表的意思是:

. :代表比后面还要高的等级(含该等级)都被记录下来的意思, 例如:mail.info 代表只要是 mail 的信息,而且该信息等级高于 info (含info )时,就会被记录下来。

.=:代表所需要的等级就是后面接的等级而已!

.!:代表不等于。

日志文件记录的文件名或装置或主机常见的放置处:

文件的绝对路径:通常就是放在 /var/log 里头的文件!

打印机或其它:例如 /dev/lp0 这个打印机装置 (即使被黑客可以删除掉日志文件,但是最终删除不了打印出来的日志信息)

使用者名称:显示给使用者!

远程主机:例如 @test.adsldns.org,要对方主机也能支持才行!

*:代表目前在线的所有人,类似 wall 这个指令的意义!

看看在尚未开启网络服务的情况下来自 Fedora Core Release 4 的相关资料

[root@linux ~]# vi /etc/syslog.conf

#kern.* /dev/console

# 只要是 kernel 产生的讯息,全部都送到 console 去!默认是关闭的。

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

# 在已知各服务的讯息中,不要记录到这个文件中,把已知的服务记录到单独的日志文件中去,方便日后查询,否则messages这个文件就太混乱了。这个文件非常重要,所有未知的信息都会被记录在这个文件中,所以有问题,找这个文件就八九不离十了。

authpriv.* /var/log/secure

# 这个就是经过一些身份确认的行为之后,需要记录身份的文件。

mail.* -/var/log/maillog

# 只要跟 mail 有关的(不论是 pop3 还是 sendmail )都会被纪录到这个文件! cron.* /var/log/cron

#例行性命令相关的。

*.emerg *

# 任何时候发生的警告讯息都会显示给在线的所有人!那个 * 就是目前在线的所有人。

uucp,news.crit /var/log/spooler

# 记录新闻错误高于 crit 的等级的信息,写入 spooler 当中!

local7.* /var/log/boot.log

# 将开机的当中的讯息写入 /var/log/boot.log 中!

每个版本的 syslog.conf 差异是很大的,所以,每个登录文件记录的数据其实不很固定。

例:让所有的信息都额外写入到 /var/log/admin.log!

[root@linux ~]# vi /etc/syslog.conf

*.info /var/log/admin.log 》》如果服务器硬盘容量够大,这么做也不失为一个良策。

[root@linux ~]# /etc/init.d/syslog restart

[root@linux ~]# ll /var/log/admin.log

-rw------- 1 root root 122 Oct 23 22:21 /var/log/admin.log 》》注意权限 一台主机管理多台主机登录文件

# 1. 先取得 port number 的信息!

[root@linux ~]# grep 514 /etc/services

syslog 514/udp 》》syslog的固定端口

# 注意,/etc/services 里面必须要存在这一行才行,否则自行手写!

# 2. 修改 syslogd 的启动配置文件

[root@linux ~]# vi /etc/sysconfig/syslog

#SYSLOGD_OPTIONS="-m 0" 改成底下这样子

SYSLOGD_OPTIONS="-m 0 -r"

# 3. 重新启动与观察 syslogd !

[root@linux ~]# /etc/init.d/syslog restart

[root@linux ~]# netstat -tlunp

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 24314/syslogd

Linux 主机已经可以接收来自其它主机的登录信息了!client 端的设定就简单了!只要指定某个信息传送到这部主机即可!比如,登录文件主机 IP 为 192.168.1.100 ,而 client 端希望所有的数据都送给主机,可以在 /etc/syslog.conf 里面新增这样的一行:

[root@linux ~]# vi /etc/syslog.conf

*.* @192.168.1.100

未来主机上面的登录文件当中,每一行的主机名称就会显示来自不同主机的信息了。 登录文件服务程序之二,轮滚 (logrotate):

所谓的 logrotate ,就是将旧的 log 文件更名,然后建立一个空的 log 文件,如此一来,新的 log 文件将从零开始记录,然后只要将旧的 log 文件留下一段时间! 旧的纪录 保存了一段时间没有问题,那么就可以让系统自动的将他删掉,否则占用硬盘空间。如图比如规定了message 日志文件轮滚3次:

最初的日志文件 message

轮滚一次后 message message1

轮滚二次后 message message1 message2

轮滚三次后 message message1 message2 message3 》》删除(如果再次轮滚,message3就会被删除,而message2就会变成message3,且系统会新建立一个message)

注意,相同颜色的mssage表示的是一个内容的文件,只不过每次轮滚他的名字后面会改一次数字。

logrotate 的配置文件

Copyright @ 2012-2024华乐美文网 All Rights Reserved. 版权所有