linux日志机制syslogd总结
syslog之一:Linuxsyslog日志系统详解

syslog之⼀:Linuxsyslog⽇志系统详解# ⼀、syslog简介syslog是⼀种⼯业标准的协议,可⽤来记录设备的⽇志。
在UNIX系统,路由器、交换机等⽹络设备中,系统⽇志(System Log)记录系统中任何时间发⽣的⼤⼩事件。
管理者可以通过查看系统记录,随时掌握系统状况。
UNIX的系统⽇志是通过syslogd这个进程记录系统有关事件记录,也可以记录应⽤程序运作事件。
通过适当的配置,我们还可以实现运⾏syslog 协议的机器间通信,通过分析这些⽹络⾏为⽇志,藉以追踪掌握与设备和⽹络有关的状况。
功能:记录⾄系统记录。
# ⼆、syslog服务与配置2.1、安装syslog软件包软件包名称为:rsyslog-5.8.10-10.el6_6.x86_64我⽤的是centos系统,配置的有第三⽅的yum源,我直接yum install直接装就OK了装完后⽤ rpm -qa | grep syslog下看是否已安装2.2、syslog⽇志系统可以根据程序详细信息的不同定义不同的⽇志级别2.3、Linux上的⽇志系统分为:syslog和syslog-ng(syslog⽇志系统的升级版)2.4、syslog服务:syslog服务进程分两个,分别是:syslogd(系统,⾮内核产⽣的⽇志)和klogd(专门记录内核产⽣的⽇志)kernel-->物理终端(/dev/console)-->/var/log/dmesg 其中/var/log/dmesg⽂件可以使⽤dmesg命令和cat查看⽂件内容⽇志滚动(⽇志切割):所谓的滚动是指历史信息所保存的⽇志,如;messages⽂件⽇志会越来越⼤等到了某⼀段时间,会把messages⽂件重新命名为messages.1,系统并重新创建messages⽂件,所以叫做⽇志滚动/sbin/init/var/log/messages:系统标准错误⽇志信息;⾮内核产⽣的引导信息,各⼦系统产⽣的信息/vat/log/maillog:邮件系统产⽣的⽇志信息/vat/log/secure:安全相关log系统⾃带的⽇志切割程序logrotatelogrotate脚本配置⽂件[root@localhost cron.daily]# pwd/etc/cron.daily[root@localhost cron.daily]# vim logrotate滚动⽇志信息配置⽂件[root@localhost cron.daily]# pwd/etc/cron.daily[root@localhost cron.daily]# vim /etc/logrotate.conf# see "man logrotate"for details# rotate log files weeklyweekly #每周滚动⼀次# keep 4 weeks worth of backlogsrotate 4 #只保留4个切割版本⽂件,超过后清除# create new (empty) log files after rotating old onescreate #滚动完之后创建⼀个空的新的⽂件# use date as a suffix of the rotated filedateext# uncomment this if you want your log files compressed#compress# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d #包括/etc/logrotate.d 下的⽂件,⼿动添加可直接添加到此⽬录# no packages own wtmp and btmp -- we'll rotate them here/var/log/wtmp{monthly #按⽉,⾃⼰定义create 0664 root utmp #创建⽂件并0664权限minsize 1M #最新1Mrotate 1 #保留⼏个版本}/var/log/btmp{missingokmonthlycreate 0600 root utmprotate 1}# system-specific logs may be also be configured here.[root@localhost cron.daily]#syslog配置⽂件/etc/rsyslog.conf注:centos 6 的配置⽂件是/etc/rsyslog.conf,centos5的配置⽂件是/etc/syslog.conf2.5、配置⽂件定义格式为facility.priority actionfacility是指哪个facility来源产⽣的⽇志; priority是指拿个级别的⽇志;action是指产⽣⽇志怎么办是保存在⽂件中还是其他。
linux下syslog-ng日志集中管理服务部署记录

linux下syslog-ng⽇志集中管理服务部署记录syslog是Linux系统默认的⽇志守护进程,默认的syslog配置⽂件是/etc/syslog.conf⽂件。
syslog守护进程是可配置的,它允许⼈们为每⼀种类型的系统信息精确地指定⼀个存放地点。
⽐较 syslog ,syslog-ng 具有众多⾼级的功能:更好的⽹络⽀持,更加⽅便的配置,集中式的⽹络⽇志存储,并且更具有弹性。
⽐如,使⽤syslogd时,所有的iptables⽇志与其他内核⽇志⼀起全部存储到了kern.log⽂件⾥。
Syslog-ng则可以让你有选择性的将iptables部分分出到另外的⽇志⽂件中。
Syslogd仅能使⽤UDP协议,Syslog-ng 可以使⽤UDP和TCP协议。
所以我们可以在加密的⽹络隧道中传输⽇志到集中⽇志服务器。
syslog-ng的⼀个设计原则就是建⽴更好的消息过滤粒度。
syslog-ng能够进⾏基于内容和优先权/facility的过滤。
另⼀个设计原则是更容易进⾏不同防⽕墙⽹段的信息转发,它⽀持主机链,即使⽇志消息经过了许多计算机的转发,也可以找出原发主机地址和整个转发链。
最后的⼀个设计原则就是尽量使配置⽂件强⼤和简洁。
syslog-ng作为syslog的替代⼯具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能。
之前介绍了,下⾯简单介绍下syslog-ng⽇志集中管理服务部署记录:下⾯部署实例⽬的:实现接收远程客户端服务⽇志(nginx、mysql、php、apache)保存在本地⼀台⽇志服务器上提供查看。
即远程客户机采⽤syslog-ng将其⽇志通过管道pipe传送到本地的⽇志服务器上进⾏查看。
⼀、syslog-ng安装(服务端和客户端都要安装)[root@syslog-ng ~]# wget /pub/epel/epel-release-latest-6.noarch.rpm[root@syslog-ng ~]# rpm -ivh epel-release-latest-6.noarch.rpm --force[root@syslog-ng ~]# yum install syslog-ng -y==============================================================================================温馨提⽰:由于⽇志集中管理服务syslog-ng采⽤的是C/S架构,所以客户端也需要安装syslog-ng。
linux下syslog使用说明

syslog系统日志应用1) 概述syslog是Linux系统默认的日志守护进程。
默认的syslog配置文件是/etc/syslog.conf文件。
程序,守护进程和内核提供了访问系统的日志信息。
因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。
几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。
意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。
通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。
/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。
2) etc/syslog.conf文件格式: facility.level actionfacility.level为选择条件本身分为两个字段,之间用一个小数点分隔。
action和facility.level之间使用TAB隔开。
前一字段是一项服务,后一字段是一个优先级。
选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。
在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。
action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。
要素分析:facility 指定 syslog 功能,主要包括以下这些:kern 内核信息,首先通过 klogd 传递;user 用户进程;mail 邮件;daemon 后台进程;authpriv 授权信息;syslog 系统日志;lpr 打印信息;news 新闻组信息;uucp 由uucp生成的信息cron 计划和任务信息。
Linux命令行下的系统日志和错误查看技巧

Linux命令行下的系统日志和错误查看技巧在Linux命令行下,系统日志和错误查看是系统管理员和开发人员必备的技能之一。
系统日志记录了系统运行过程中的各种事件和错误信息,通过查看系统日志,可以追踪问题并解决系统故障。
本文将介绍一些常用的Linux命令行下的系统日志和错误查看技巧。
一、查看系统日志1. 查看系统日志文件Linux系统将系统日志保存在/var/log目录下的不同文件中。
常用的系统日志文件有:- /var/log/syslog:包含系统的整体运行状态和各个服务的日志信息。
- /var/log/messages:包含系统的整体状态信息和各种服务的消息。
- /var/log/auth.log:包含与系统身份验证和安全相关的日志信息。
- /var/log/kern.log:包含与内核相关的日志信息。
- /var/log/boot.log:包含系统启动过程的日志信息。
可以使用以下命令查看系统日志文件的内容:```tail /var/log/syslogtail /var/log/messagestail /var/log/auth.logtail /var/log/kern.logtail /var/log/boot.log```2. 实时查看系统日志如果需要实时查看系统日志的更新信息,可以使用以下命令:```tail -f /var/log/syslogtail -f /var/log/messagestail -f /var/log/auth.logtail -f /var/log/kern.logtail -f /var/log/boot.log```这样,当有新的日志信息写入日志文件时,命令行界面会即时显示出来。
二、查看错误日志在Linux系统中,错误日志保存在各个应用程序的日志文件中。
不同的应用程序有不同的错误日志文件。
以下是一些常见的错误日志文件及其使用方法:1. Apache错误日志Apache的错误日志文件一般位于/var/log/apache2/error.log或者/var/log/httpd/error.log,可以使用以下命令查看:```tail /var/log/apache2/error.logtail /var/log/httpd/error.log```2. MySQL错误日志MySQL的错误日志文件一般位于/var/log/mysql/error.log,可以使用以下命令查看:```tail /var/log/mysql/error.log```3. SSH错误日志SSH的错误日志文件一般位于/var/log/auth.log,可以使用以下命令查看:```tail /var/log/auth.log```4. Nginx错误日志Nginx的错误日志文件一般位于/var/log/nginx/error.log,可以使用以下命令查看:```tail /var/log/nginx/error.log```三、使用过滤器查找关键字在系统日志和错误日志中,常常需要查找包含特定关键字的日志信息。
linuxsyslog日志服务器的搭建

linuxsyslog⽇志服务器的搭建⾸先我们知道⽇志是什么,⽇志毫⽆疑问就跟我们写⽇记⼀样记录我们每天做的⼀些事情,那么⽇志对于⼀台服务器⽽⾔是⾄关重要的,⽐如说我们搭建服务的时候,服务起不来也没提⽰错误信息,那么这个时候就可以查看⽇志来排错了,还记录了服务器的运⾏情况已经⼊侵记录等等... ,那么我们知道⼀台服务器的⽇志默认是存放在本地的对于linux⽽⾔⽇志⼀般存放于/var/log/⽬录下,⽐如说某系统管理员管理着⼏⼗甚⾄上百台服务器的时候,默认⽇志放在每台服务器的本地,当我们每天要去看⽇志的时候⼀台⼀台的看⽇志是不是要郁闷死了. 没关系在linux系统上提供了⼀个syslogd这样的⼀个服务为我们提供⽇志服务器,他可以将多台主机和⽹络设备等等的⽇志存到⽇志服务器上,这样就⼤⼤减少了管理员的⼯作量,下⾯将在⼀台默认装有rhel5.x的系统上搭建⼀台⽇志服务器.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~系统环境:默认安装有rhel5.8的系统主机⾓⾊ IP地址server1 ⽇志服务器 10.0.0.1server2 10.0.0.2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~实际上⽇志服务器的配置⾮常之简单⼏条命令就搞定了⼀.配置⽇志服务器为⽹络中其他主机及其⽹络设备等等提供⽇志存储服务,也就是配置server11. 在server1上编辑/etc/sysconfig/syslog⽂件修改如下#vim /etc/sysconfig/syslog ## 只修改SYSLOGD_OPTINOS这项,如下SYSLOGD_OPTIONS="-m 0 -r"2 .重新启动syslog#service syslog restart3.配置防⽕墙,syslog传送⽇志的端⼝是UDP的514端⼝防⽕墙在默认的情况下是阻⽌所有的,这⾥就直接把防⽕墙关闭了,防⽕墙的配置就不介绍了#service iptables stop#chkconfig iptables offok!到这⾥服务器的配置基本就结束了.⼆.配置server2让其将⽇志发送到⽇志服务器上去,我们知道windows跟交换机路由器都是有⽇志产⽣的,它们的⽇志也是可以存储到⽇志服务器上去的,这⾥就只介绍linux主机的1.配置server2上的/etc/syslog.conf定义⽇志的类型以及⽇志的级别和⽇志存放的位置,这⾥就只简单的介绍下⼤体的配置思路,#vim /etc/syslog.conf*.* @10.0.0.1上⾯的配置表⽰所有的⽇志类型.所有的⽇志的级别的⽇志都将存放在10.0.0.1这台⽇志服务器上2,重启syslog#service syslog restart三.验证1.在server2上建⼀个redhat的⽤户,然后到server1上的/var/log/secure⽂件或者/var/log/messages⽂件查看⽇志#cat /var/log/secureJun 8 00:58:05 10.0.0.2 useradd[15463]: new group: name=redhat, GID=500Jun 8 00:58:05 10.0.0.2 useradd[15463]: new user: name=redhat, UID=500, GID=500, home=/home/redhat, shell=/bin/bash可以看到10.0.0.2这台主机new了⼀个redhat的⽤户。
Linux系统的日志服务器syslogd

Linux系统的⽇志服务器syslogd 系统⽇志是记录系统中硬件、软件和系统问题的信息,同时还可以监控系统中发⽣的事件。
⽤户可以通过它来检查错误发⽣的的原因,或者寻找受到攻击时攻击者留下的痕迹。
Windows的事件查看器就是⼀个⽇志系统。
Linux的⽇志系统则是通过安装sysklogd这个软件包形成了两个服务: /sbin/klogd 针对硬件(针对内核所产⽣的,很多和硬件相关) /sbin/syslogd 针对软件(系统的⽇志服务器) 查看硬件⽅⾯的⽇志: [root@localhost ~]# dmesg |grep -i cpu 查看CPU的相关信息 [root@localhost ~]# dmesg |grep -i mem 查看内存的相关信息 [root@localhost ~]# dmesg |grep -i eth0 查看eth0的相关信息 ⽹络设备:路由器、防⽕墙、交换机等都有⾃⼰的⽇志能⼒。
⽇志的作⽤是:让我们及时了解系统的变化,从⽽帮助我们做⼀些诊断。
⽇志的分类⽂件:/etc/syslog.conf 从man⼿册中可以看出,⽇志分类⽂件的第⼀列表⽰⽇志的类型以及⽇志的级别,第⼆列表⽰对第⼀列所指定的⽇志采取的动作。
通常采取的动作由三种: 1、将指定类型⽇志写到⽂件中(⽂件名) 2、将指定类型⽇志发给每个当前登录到系统的⽤户(*) 3、将指定类型⽇志发到别的⽇志服务器上(@地址) 在linux上实现⽇志服务器: 1、开启⽇志服务 系统默认已经开启。
2、编辑配置⽂件 添加-r选项,表⽰允许记录来⾃于别的主机的⽇志。
3、重启服务 ⾄此,⽇志服务器就配置完成了。
接下来打开另外⼀个linux虚拟机,作为应⽤服务器,也就是⽇志架构中的客户端,进⾏测试。
4、测试: 在客户端编辑 /etc/syslog.conf⽂件,修改动作列为:@⽇志服务器地址。
并重启⽇志服务。
在服务器上观察客户端发送的⽇志信息。
Linux系统日志管理工具介绍使用rsyslog和syslogng

Linux系统日志管理工具介绍使用rsyslog和syslogngLinux系统日志管理工具介绍使用rsyslog和syslog-ngLinux系统日志对于系统管理和故障排除非常重要。
为了帮助管理员更有效地管理系统日志,Linux提供了多个日志管理工具。
本文将介绍两个主要的Linux系统日志管理工具:rsyslog和syslog-ng。
一、rsyslogrsyslog是Linux上的默认系统日志守护进程。
它是标准syslog守护进程的升级版本,提供了更强大的功能和灵活性。
以下是rsyslog的一些主要特点:1. 高度可配置:rsyslog提供了丰富的配置选项,允许管理员灵活地定义日志记录规则和目标。
2. 支持统一的远程日志管理:rsyslog可以将日志发送到远程服务器,方便集中管理和分析。
3. 强大的过滤功能:rsyslog提供了强大的过滤功能,可以根据不同的条件过滤日志条目,以便更好地跟踪和分析特定事件。
4. 可靠性和高性能:rsyslog被广泛用于生产环境中,具有良好的稳定性和高性能。
二、syslog-ngsyslog-ng是另一个流行的Linux系统日志管理工具。
它是syslog的替代品,提供了更多的功能和配置选项。
以下是syslog-ng的一些主要特点:1. 灵活的日志收集和路由:syslog-ng允许管理员从多个源收集日志,并根据配置规则将日志路由到指定的目标。
2. 多种日志格式支持:syslog-ng支持多种常见的日志格式,例如JSON、CSV等,方便管理员的日志分析和处理。
3. 可扩展性:syslog-ng提供了插件机制,可以扩展其功能,例如添加新的日志源或目标。
4. 多平台支持:syslog-ng支持多个操作系统平台,包括Linux、Unix和Windows。
在实际使用中,rsyslog和syslog-ng都可以满足大多数日志管理需求。
管理员可以根据自己的具体情况选择合适的工具。
linux日志转发给syslog

linux日志转发给syslog摘要:1.Linux 日志简介2.syslog 的作用和原理3.配置Linux 日志转发到syslog4.总结正文:Linux 日志简介Linux 系统日志是记录系统运行过程中发生的事件和错误的工具,可以帮助管理员快速定位问题,了解系统运行状况。
日志信息按照不同类型存储在不同的文件中,例如,系统日志信息通常存储在/var/log/目录下。
syslog 的作用和原理syslog 是一个Linux 系统中的日志管理工具,它可以接收、存储和转发各种类型的日志信息。
syslog 通过使用日志消息协议(syslog protocol)与其他系统进行通信,从而实现日志信息的集中管理和分析。
配置Linux 日志转发到syslog要将Linux 日志转发给syslog,需要进行以下步骤:1.安装syslog:在Debian 和Ubuntu 系统中,可以使用以下命令安装syslog:```sudo apt-get install syslog```在RHEL 和CentOS 系统中,可以使用以下命令安装syslog:```sudo yum install syslog```2.配置syslog:编辑syslog 配置文件,通常位于/etc/syslog.conf。
在此文件中,可以设置syslog 接收日志的IP 地址和端口,以及其他相关配置。
以下是一个示例配置,将日志转发到本地的1234 端口:```# /etc/syslog.confsyslog {source s_local {ip(0.0.0.0) udp(1234);};};```3.配置Linux 系统日志:在Linux 系统日志配置文件中,需要添加以下内容,以指定syslog 服务器。
例如,以下配置将系统日志转发到syslog 服务器(192.168.1.100)的1234 端口:```# /etc/rsyslog.conf$SystemLogFile /dev/null$WorkDirectory /var/log$DefaultLogLevel notice$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat*.* @192.168.1.100```4.重启syslog 服务:保存配置文件后,需要重启syslog 服务以使更改生效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1linux日志机制syslogd总结3.int main(int argc, char **argv)4.{5. syslog(LOG_ERR|LOG_USER,"test - %m/n");6. openlog("SyslogTest", LOG_CONS | LOG_PID, 0);7. syslog(LOG_DEBUG,"This is a syslog test message generated by program '%s'/n",argv[0]);8. closelog();9. return 0;10.}执行结果:#cat /var/log/syslog1. BSD syslogd的组成结构:从上图可以看到相关的日志文件主要来源于三种途径:(1) 内核:许多内核例程调用log函数产生log消息,另外klogd守护进程能够监听并得到内核消息,并发送给syslogd进程。
(2) 许多用户进程直接调用syslog函数产生日志消息。
(3) 来自于TCP/IP网络连接的日志消息。
该消息可能来自于自身的某个用户进程或者其它网络主机上的一个用户进程。
端口是514.我们主要讨论第二种情况下产生的日志消息。
跟syslog相关的主要以下三个函数:openlog:ident主要被用于加在日志消息中,一般是用某个程序名来代替。
如cron, inetd等。
option则是许多选项的位屏蔽,常见的选项见下表:facility参数设置的目的是可以通过配置文件对不同设施的消息将以不同的方式进行处理。
常见的facility见下表:openlog(“dhcp6c”, LOG_NDELAY|LOG_PID, LOG_DAEMON);syslog:priority参数可以是facility与level的组合,其中level可取的值如下表:syslog(LOG_ERR, “open error for %s:%m”, filename)syslog(LOG_ERR|LOG_LPR, “open error for %s:%m”, filename)format则是格式化的出错消息字符串。
setlogmask: 用来设置记录日志的优先级,即只记录指定优先级的日志消息。
setlogmask(LOG_ERR) ----- 仅仅记录ERR级别的日志消息setlogmask(LOG_UPTO(LOG_ERR))----- 记录ERR以及之前的所有日志消息syslogd配置文件:(/etc/syslog.conf)主要用来控制如何处理facility|priority的log消息,如存放到某个指定的文件中,或者发送到指定的log服务器,2. 内核消息日志的显示以及printk函数的日志级别:从前面的图2-1中可以看到,函数printk先将消息打印到环形缓冲区_logbuf中,并将消息传给控制台进行显示,控制台驱动程序然后根据控制台的日志级别显示日志消息。
常见的日志级别如下表:(数字越低,代表级别越高!)跟日志级别相关的几个常量:#defineconsole_loglevel (console_printk[0]) 控制台的日志级别,凡是优先级高于这个值的消息将在控制台上显示。
它的初始值是default_console_loglevel,这个值可以通过klogd –cn(n为设置的级别)进行修改,不过要注意的是在修改之前,必须先杀掉klogd进程。
#define default_message_loglevel (console_printk[1]) 默认消息日志级别,当printk没定义优先级时使用这个值 #define minimum_console_loglevel (console_printk[2]) 最小控制台日志级别,控制台日志级别可被设置的最小值 #define default_console_loglevel (console_printk[3]) 默认的控制台日志级别,这个值可以通过sys_syslog系统调用进行修改。
Ps:这四个常量值可以通过/proc/sys/kernel/printk文件进行查看和修改。
可以通过以下方式修改当前的日志级别echo 8 > /proc/sys/kernel/printkSysklogd 日志记录器是由两个守护进程(klogd、syslogd)和一个配置文件(syslog.conf)组成。
Klogd不使用配置文件,它负责截获内核消息,既可以独立使用也可以作为syslogd的客户端运行。
Syslogd默认使用/etc/syslog.conf作为配置文件,它负责截获应用程序消息,还可以截获klogd向其转发的内核消息。
支持internet/unix domain sockets 的特性使得这两个工具可以用于记录本地和远程的日志。
printk 函数可根据不同的日志级别对消息进行分类显示。
我们通常用宏定义来指示日志级别,例如:KERN_INFO,它可被添加到一些打印语句的前面,是一个可以使用的消息日志级别。
表示日志级别的宏会展开为一个字符串,在编译时由预处理器将它和消息文本拼接在一起。
在头文件<linux/kerne l.h>中定义了八个可用的日志级别字符串,下面以严重程度的降序来列出这些级别:KERN_EMERG:用于紧急事件消息,它们一般是系统崩溃之前提示的消息KERN_ALERT:用于需要立即采取动作的情况KERN_CRIT:临界状态,通常涉及严重的硬件或软件操作失败KERN_ERR:用于报告错误状态。
设备驱动程序会经常使用KERN_ERR 来报告来自硬件的问题。
KERN_W ARNING:对可能出现问题的情况进行警告,但这类情况通常不会对系统造成严重问题。
KERN_NOTICE:有必要进行提示的正常情形。
许多与安全相关的状况用这个级别进行汇报KERN_INFO:提示性信息,很多驱动程序在启动的时候已这个级别来打印出他们找到的硬件信息KERN_DEBUG:用于调试信息每个字符串(以宏的形式展开)表示一个尖括号中的整数,整数值的范围为0~7,数值越小,优先级就越高。
未指定优先级的printk语句采用的默认级别是DEFAULT_MESSAGE_LOGLEVEL,这个宏在kernel/printk.c中被指定为一个整数。
根据日志级别,内核可能会把消息打印到当前控制台上,这个控制台可以使一个字符模式的终端、一个串口打印机或一个并口打印机。
当优先级小于console_loglevel这个整数变量的值,消息才会显示出来,而且每次输出一行。
如果系统同时运行了klogd、syslogd,则无论console_loglevel为何值,内核消息都会最佳到/var/log/messages中。
如果klogd没有运行,则消息不会传递到用户空间,这种情况下只能查看/proc/kmsg文件(使用dmesg命令即可轻松做到)。
Console_loglevel 的初始值是DEFAULT_CONSOLE_LOGLEVEL,而且可以通过sys_syslog系统调用进行修改。
调用klogd 时可以指定–c 开关项来修改这个变量(klogd –c 8)。
注意,要修改当前值,必须首先杀掉klogd,然后用新的-c选项重新启动它。
(ps –ef 可查看所有进程;kill (pid)杀掉指定PID的进程)。
我们也可以通过对文本文件/proc/sys/kernel/printk的访问来读取和修改控制台的日志级别。
这个文件包含了4个整数,分别是:当前的日志级别,未明确指定日志级别时的默认消息级别;最小允许的日志级别;引导时的默认日志级别。
向该文件中写入单个整数,将会把当前日志级别修改为这个值。
如:echo 8 > /proc/sys/kernel/printksyslog.conf是syslogd守护进程的主要配置文件,该文件定义了记录消息的规则。
Syslog.conf 行的基本语法是:[ 消息类型] [处理方案]消息类型由“消息来源”和“紧急程度”构成,中间用点号相连。
举例(*.info 是将info级以上的所有消息发送给相应的日志文件)紧急程度分为:emerg、alert、crit、err、warning、notice、info、debug等几种。
下面简单列一下消息来源:Auth:认证系统,如login 或su,即询问用户名和口令Cron:系统执行定时任务时发出的信息Daemon:某些系统的守护程序的syslog,如由in.ftpd产生的logKern:内核的信息Lpr:打印机的信息Mail:处理邮件的守护进程发出的消息Mark:定时发送消息的时标程序News:新闻组的守护进程的信息User:本地用户的应用程序的信息Uucp:uucp子系统的信息Local0~local7:系统预留* :表示所有可能的信息来源处理方案选项可以对日志进行处理,可以把它存入硬盘,转发到另一台机器或显示在管理员的终端上:处理方式一览:文件名:写入某个文件,要注意绝对路径@主机名,转发到另外一台主机的syslogd程序@IP地址:同上/dev/console:发送到本地机器屏幕上* 发送到所有用户的终端上| 程序:通过管道转发给某个程序作总结如下:Klogd运行时会读取内核消息(日志级别由-c选项决定)并将它们分发给syslogd,syslogd 随后查看/etc/syslog.conf,找到处理这些数据的方法。