Linux中的日志分析和管理

日志文件对于诊断和解决系统中的问题非常有帮助,因为在Linux系统中运行的程序通常会将系统消息和错误消息写入相应的日志文件中,因此一旦系统出现问题,将在“被检查”。此外,当主机受到攻击时,日志文件还可以帮助查找攻击者留下的痕迹。

一、主日志文件

在Linux系统中,日志数据主要包括以下三种类型:

[内核和系统日志]

[用户日志]

[程序日志]

默认情况下,Linux系统本身和大多数服务器程序的日志文件位于目录“ / var / log”中。某些程序共享一个日志文件,而某些程序使用一个日志文件。但是,某些大型服务器程序具有多个日志文件,因此在“ / var / log”目录中创建了一个相应的子目录来存储日志文件,这可以保证日志文件目录的结构清晰,并且日志文件可以迅速定位。大部分日志文件只能由root用户读取,从而确保相关日志信息的安全性。

示例1:在“ / var / log”目录中列出各种日志文件和子目录。

linux 系统日志

对于Linux系统中的一些常用日志文件,有必要熟悉它们的相应用法,以便在需要时更快地发现问题并及时解决各种故障。常见的日志文件如下:

/ var / log / messages:记录各种应用程序的Linux内核消息和公共日志信息linux 系统日志,包括启动,IO错误,网络错误,程序错误等。对于不使用独立日志文件的应用程序或服务,您可以通常可以从日志文件中获取相关的事件记录信息。

/ var / log / cron:记录crond计划任务生成的事件信息。

/ var / log / dmesg:在引导过程中记录Linux系统的各种事件信息。

/ var / log / maillog:记录进入或发送系统的电子邮件活动。

/ var / log / lastlog:最近几次成功的登录事件和最后一次失败的登录事件。

/ var / log / rpmpkgs:记录系统中安装的rpm软件包的列表。

/ var / log / secure:在用户登录身份验证过程中记录事件信息。

/ var / log / wtmp:记录每个用户的登录,注销以及系统启动和关闭事件。

/ var / run / utmp:记录当前登录的每个用户的详细信息。

二、日志文件分析

分析日志文件的目的是通过浏览日志来查找关键信息,调试系统服务并确定故障原因。

对于大多数文本格式的日志文件,您可以使用文本处理工具(例如tail,more,less和cat)查看日志内容。对于某些二进制格式的日志文件,需要使用相应的查询命令。

1、内核和系统日志

内核和系统日志功能主要由

组成

提供了默认情况下安装的sysklogd- 1. 4. 1-3 9. 2软件包。该软件包安装了两个程序klogd和syslogd凤凰彩票平台 ,并由syslog服务控制。

用于记录系统内核消息和各种应用程序消息。 syslog服务使用的配置文件是“ /etc/syslog.conf”。

示例2:查看日志配置文件“ /etc/syslog.conf”中的内容。

linux 系统日志

从配置文件“ /etc/syslog.conf”中,您可以看到syslogd服务管理的日志文件是Linux系统中最重要的日志文件。它们记录内核,用户身份验证,电子邮件,最基本的系统消息(如计划任务)。在Linux内核中,日志消息根据其重要性分为不同的优先级级别(数字越小,优先级越高,则消息越重要)。

0EMERG(紧急情况):将导致主机系统不可用的情况。

1ALERT(警告):必须立即解决的问题。

2CRIT(严重):情况更为严重。

3ERR(错误):操作期间发生错误。

4警告:可能影响系统功能并需要提醒用户的重要事件。

5注意:此事件不会影响正常功能,但需要引起注意。

6INFO(信息):常规信息。

对于大多数由syslog服务统一管理的日志文件,使用的日志记录格式基本相同。下面以公共日志文件“ / var / log / messages”为例,简要介绍内核和系统日志记录的基本格式。

示例3:查看公共日志文件“ / var / log / messages”的最后3行。

日志文件中的每一行代表一条消息,每条消息均由四个字段的固定格式组成。

[时间标签]:发送消息的日期和时间。

[主机名]:生成消息的计算机的名称。

[子系统名称]:发送消息的应用程序的名称。

[消息]:消息的具体内容。

在某些情况下,可以将syslog设置为将日志信息发送到打印机进行打印,同时将日志信息记录在文件中,这样,无论网络入侵者如何修改日志,都无法清除入侵痕迹。 syslog日志服务是经常受到攻击的主要目标。如果将其销毁,将使管理员难以发现入侵和入侵痕迹。因此,请特别注意监视其守护程序和配置文件。

2、用户日志

在wtmpyabo2020 ,utmp,lastlog等日志文件中,保存了有关系统用户登录和注销事件的事件消息。但是,这些文件是二进制数据文件,您无法直接使用文本查看工具(例如tail和less)来浏览它们。

您需要使用用户查询命令(例如who,w,users,last和ac)来获取日志信息。

[谁命令]

who命令用于查询utmp文件并报告当前登录的每个用户的信息。系统管理员可以使用此命令检查当前系统中存在哪些非法用户,以便对其进行审核和处理。 。谁的默认输出包括用户名,终端类型,登录日期和远程主机。

示例4:使用who命令查看终端,登录日期/时间/位置以及当前登录的每个用户的其他信息。

[w命令]

用于查询utmp文件并显示当前系统中每个用户的信息以及他们正在运行的进程。

示例5:使用w命令查看当前登录的每个用户的信息以及正在运行的进程。

linux 系统日志

[用户命令]

users命令在一行上打印出当前登录的用户,并且每个显示的用户名对应一个登录会话。如果用户具有多个登录会话,则其用户名将显示相同的次数。

示例6:使用users命令查看当前用户登录会话。

[最后命令]

The

最后一个命令用于查询wtmp文件,显示自文件创建以来已登录的所有用户记录,最近登录的用户记录将显示在顶部。

示例7:使用last命令查看系统中的最后五个用户登录记录。

linux 系统日志

[ac命令]

ac命令将查询wtmp文件中的用户登录和注销状态,并报告用户连接的总时间(小时)。使用用户名作为参数,结合“ -d”选项可以每天进行计数。如果未指定用户名,则“ -p”选项可用于单独的统计信息。

示例8:计算gzj用户的每日连接时间。

示例9:分别计算每个用户的总连接时间。

3、程序日志

在Linux系统中,有很多应用程序不使用syslog服务管理日志,而是由程序自己维护日志记录。例如,

http网站服务程序使用两个日志文件access_log和error_log,它们通常存储在“ / var / log / httpd /”目录中,分别记录客户访问事件和错误事件;

FTP服务程序可以在xferlog文件中记录与文件上载和下载事件有关的信息。由于不同应用程序的日志记录格式差异很大,并且不严格使用统一格式,因此在此不再详细介绍。

通常,作为合格的系统管理员,您应该保持警惕,始终注意各种可疑情况,并定期且随机地检查各种系统日志文件,包括常规信息日志,网络连接日志和文件传输。日志和用户登录日志记录等。检查这些日志时,请注意是否存在不合理的时间或操作记录。例如,以下不合理现象。

a。用户在非常规时间登录,或者用户登录的IP地址与以前的IP地址不同。

b。用户登录失败的日志记录,尤其是多次尝试输入失败的日志记录。

c。非法或不当使用超级用户权限。

d。无故或非法重启各种网络服务的记录。

e。异常的日志记录(例如不完整的日志)或日志文件(例如wtmp)无缘无故缺少中间记录文件。

此外,应提醒管理人员该日志并不完全可靠。入侵系统后,聪明的黑客经常清理现场。因此,有必要综合运用上述系统命令进行全面,全面的审查和测试,避免将其脱离上下文,否则可能会做出错误的判断。

三、日志管理策略

鉴于日志数据的重要性,有必要针对系统运行期间生成的各种日志文件采取针对性的管理策略,以确保日志数据的准确性linux 系统日志,安全性和真实性。一般来说,可以从以下几个方面考虑。

1、日志备份和存档

2、延长日志保留期

3、控制日志访问权限

4、日志的集中管理

一、检查系统的运行级别

不同的操作级别表示可以在系统的不同操作状态下运行的不同服务或程序。了解当前的操作级别将有助于管理员对某些应用程序进行故障排除。如果您不知道当前的运行级别,

您可以使用runlevel命令进行查询,并且输出结果分别包括切换前的级别和当前级别。

[示例1]:查看系统的运行级别状态。如果之前尚未切换操作级别,则第一列将显示“ N”。

二、切换系统操作级别

当用户需要将系统转换为另一个运行级别时,只要使用与运行级别相对应的数字(0- 6)作为命令参数,则可以使用init程序命令)。

要在系统打开后设置默认运行级别,请编辑“ / etc / inittab”配置文件。

[示例2]:关闭当前系统。

[示例3]:重新启动当前系统。

三、设置不同运行级别的系统服务状态

Linux系统中有大量服务程序。切换运行级别时,这些服务程序将根据预设状态由rc脚本启动或终止。当然,某个系统服务是否以特定的运行级别运行可以由管理员完全确定。

当需要在不同的运行级别调整各种系统服务的自动启动状态时,可以使用chkconfig或ntsysv命令进行操作。

1、使用ntsysv配置工具

ntsysv工具可以在字符模式下运行,为用户提供一个交互式操作界面,该界面专门用于集中配置各种系统服务的启动状态。单独执行“ ntsysv”命令时,仅用于管理当前运行级别的服务。如果使用“ --level”选项,则可以管理指定运行级别的服务。例如凤凰体育 ,执行“ ntsysv--level35”命令后,将打开一个交互式程序界面,并且可以同时设置运行级别为3、 5的每个服务的启动状态。

linux 系统日志

在操作过程中,使用向上和向下箭头键选择不同的服务项目,按空格键切换启动状态,“ [*]”表示自动启动,“ []”表示不自动启动。按F1键获取服务的详细说明,以确定是否应加载该服务。

当您需要同时设置大量服务的启动状态时,选择ntsysv配置工具更为合适。

2、使用chkconfig配置工具

chkconfig配置工具的功能与ntsysv相似,但是不提供交互式操作界面。当需要在不同的运行级别上设置各个服务的启动状态时,选择使用chkconfig命令会更有效。

将chkconfig命令与“ --list”选项结合使用,可以在不同的运行级别查看特定服务的启动状态。如果未指定服务名称,则将显示所有服务的启动状态。

[示例4]:在每个运行级别查看网络服务的启动状态。

[示例5]:在每个运行级别查看系统中所有服务的启动状态。

linux 系统日志

将chkconfig命令与“ --level”选项一起使用,以指定的运行级别设置指定服务的启动状态。更常用的命令格式如下:

chkconfig--级别运行级别列表服务名称为开|关

[示例6]:将运行级别2、 4的网络服务的启动状态设置为关闭

[示例7]:将运行级别2-5中的网络服务的启动状态设置为on

缺少“ --level”选项时,有时可以在不同的运行级别上设置指定服务的状态,但是此方法的设置结果将受到服务脚本文件中的status参数的影响。 ,并且存在不确定性,因此不建议使用。

[示例8]:使用不带“ --level”选项的chkconfig命令将vncserver服务的启动状态设置为“关闭”。

1、初始化过程

Linux系统中的进程用数字标记,每个进程的标识号称为PID。

在引导Linux系统的过程中,“ / sbin / init”是内核加载的第一个程序,因此与init进程相对应的PID编号始终为“ 1”。

init进程运行后,它将连续执行系统中的其他程序,并不断生成新进程。这些进程称为init进程的子进程。反过来,初始化过程是这些过程的父过程。当然,这些子流程还可以进一步生成自己的子流程对,这些子流程又继续不断地相乘,最终形成叶茂盛的流程树,共同为用户提供服务。

init进程是维护整个Linux系统的所有进程的“始祖”,因此不允许轻易终止init进程。当需要在不同的系统操作状态之间切换时,可以将正确的执行参数分配给init程序,这由init本身完成。

2、 inittab配置文件

inittab文件位于“ / etc”目录中,并且是init程序的配置文件。初始化过程运行后,将根据文件中的配置内容依次启动需要在系统中运行的脚本和程序。

检查“ / etc / inittab”文件中的有效配置行:

linux 系统日志

在“ / etc / inittab”文件中甘肃快3 ,除了注释信息和以“#”开头的空行外,每行均被视为有效的配置记录。每个配置记录中的四个字段都用半角冒号“:”分隔。基本格式如下:

id:运行级别:操作:进程

含义如下:

标签:运行级别:操作类型:程序或脚本

每个字段的功能如下:

[id --- tag字段]

The

标签字段可以包含1-4个字符,以区别于其他行的配置。 inittab文件中每个配置记录的id标记字段应该唯一。

[运行级别-运行级别字段]

在Linux系统中,各种系统服务程序被组合以形成不同的并置关系,以满足不同的系统要求。当系统运行时,采用的每个服务配置都称为“运行级别”。默认的系统操作级别包括七种类型,每个部门的功能和服务是相同的。

0:关闭状态,使用此级别时主机将关闭。

1:单用户模式,无需密码验证即可登录系统,密码验证主要用于系统维护。

2:具有字符界面的多用户模式(不支持网络)。

3:字符界面的完整多用户模式,大多数服务器主机都在此级别运行。

4:未分配用途。

5:图形界面的多用户模式提供了图形桌面操作环境。

6:重新启动,使用此级别的主机将重新启动。

[动作---动作类型字段]

操作类型字段描述与行配置相对应的操作类别,通常为固定值,更常用的类型如下:

initdefault:设置初始化系统后默认输入的运行级别。

sysinit:设置用于系统初始化的操作脚本。

wait:在继续执行其他操作之前,初始化进程将等待与该配置行相对应的脚本操作完成。

ctrlaltdel:在用户按下Ctrl + Alt + Delete组合键之后设置操作。

powerokwait:设置系统在收到恢复电源信号时采取的措施。

respawn:与线路配置相对应的过程终止后,重新启动过程。

[过程---程序或脚本字段]

此字段用于指定与线路配置相对应的实际操作,可以是特定的命令,脚本程序等。

3、 rc.sysinit脚本文件

rc.sysinit是由init进程调用的系统初始化脚本,位于“ /etc/rc.d/rc.sysinit”中,该文件也在inittab配置文件中设置。

rc.sysinit脚本主要完成一系列初始化任务,包括设置网络,主机名,加载文件系统和设置时钟。

4、 rc脚本文件

init进程也调用rc脚本,该文件位于“ /etc/rc.d/rc”中。

rc脚本通过指定不同的级别参数来加载和终止不同的系统服务,并输入相应的系统操作级别。

在“ /etc/rc.d/rc0.d”---///etc/rc.d/rc6.d”目录中,保存了一些特殊的符号链接文件。

rc脚本根据这些目录中的链接文件名以及链接到它们的系统服务脚本来启动或终止相关的服务程序。

“ / etc / rc.d / rcX.d”目录中的链接文件有一个通用规则:文件名以K或S开头,中间是数字序列号,最后一个是服务脚本系统中的名称;原始服务脚本文件位于“ /etc/rc.d/init.d”目录中,

以S开头的文件表示启动相应的服务,以K开头的文件表示终止相应的服务,中间的数字表示启动或终止服务时的执行顺序。

位于“ /etc/rc.d/init.d”目录中的各种系统服务脚本基本上可以直接执行脚本文件或通过“服务”服务控制工具进行管理,例如,添加“ start”,“ “停止”,“重新启动”,“状态”等参数完成相应服务的启动,终止,重启,查询状态等操作。对于系统服务程序,通常建议使用此方法启动或终止而不是终止进程。对于实际工作环境中的服务器程序,建议使用“ reload”参数重新加载配置,而不是使用“重新启动”以重新启动服务,以避免中断客户端访问和不必要的损失。

5、 rc.local脚本文件

rc.local脚本是位于“ /etc/rc.d/rc.local”中的附加启动控制文件。 rc.local脚本通常由rc脚本最后加载,其功能是为管理员提供一种自行设置启动命令的方式。可以将一些在重新启动计算机后需要自动执行的命令操作添加到文件中。

老王
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83586660、0755-83583158 传真:0755-81780330
邮箱:info@qbt8.com
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83174789 传真:0755-83170936
邮箱:info@qbt8.com
地址:天河区棠安路288号天盈建博汇创意园2楼2082
电话:020-82071951、020-82070761 传真:020-82071976
邮箱:info@qbt8.com
地址:重庆南岸区上海城嘉德中心二号1001
电话:023-62625616、023-62625617 传真:023-62625618
邮箱:info@qbt8.com
地址:贵阳市金阳新区国家高新技术开发区国家数字内容产业园5楼A区508
电话:0851-84114330、0851-84114080 传真:0851-84113779
邮箱:info@qbt8.com