日志文件内容的一般格式

一般来说,系统产生的信息经过syslogd记录下来的数据中,每条信息均记录下面的几个重要数据:

  • 事件发生的日期与时间;
  • 发生此事的主机名;
  • 启动此事件的服务名称(如 samba, xinetd等)或函数名称(如 libpam);
  • 该信息的实际数据内容;

当然,这些信息的详细度是可以修改的,下面是/var/log/secure所记录的信息:

 Dec  :: localhost sshd[]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Dec :: localhost sshd[]: Failed password for root from 122.225.103.103 port ssh2
Dec :: localhost sshd[]: fatal: Read from socket failed: Connection reset by peer [preauth]
Dec :: localhost sshd[]: Failed password for root from 122.225.103.103 port ssh2
Dec :: localhost sshd[]: fatal: Write failed: Connection reset by peer [preauth]
Dec :: localhost polkitd[]: Loading rules from directory /etc/polkit-/rules.d
Dec :: localhost polkitd[]: Loading rules from directory /usr/share/polkit-/rules.d
Dec :: localhost polkitd[]: Finished loading, compiling and executing rules
Dec :: localhost polkitd[]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
  |---日期/时间---|-------服务与函数-------|------------------------信息说明-----------------

对第一条进行解析:12月27日的1点04分51秒在本地主机的sshd(PID为5677)传来的消息,这个消息有pam_succeed模块提出,信息内容为requirement "uid >=1000" not met by user "root"。

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

/etc/syslog.conf这个文件规定了什么服务的什么等级信息以及需要被记录在什么文件或设备,语法为:

 服务名称[.=!]信息等级  信息记录的文件或设备或主机

 #下面以mail这个服务产生的info等级为例:

 mail.info  /var/log/maillog_info

 #这行说明:mail服务产生的大于等于info等级的信息都记录到/var/maillog_info文件中。

服务名称

syslogd本身有设置一些服务,主要有下面这些(可使用man 3 syslog查询到相关的信息)。

服务类型 说明
auth(authpriv) 主要与认证有关的机制,例如:login,ssh,su等需要帐号/密码
cron 就是例行性工作调度cron/at等生成信息日志的地方
daemon 与各个daemon有关的信息
kern 就是内核(kernel)产生信息的地方
lpr 即是打印相关的信息
mail 只要与邮件收发有关的信息记录都属于这个
news 与新闻组服务器有关的东西
syslog 就是syslogd这个程序本身生成的信息
user,uucp,local0~lcocal7 与Unix like机器本身有关的一些信息

以上都是syslog自行定制的服务名称,软件可通过调用上述的服务名称来记录它们产生的信息。如:sendmail与postfix及dovecot都是与邮件有关的软件,这些软件在设计日志记录时都会主动调用syslogd内的mail服务名称(LOG_MAIL),所以上述软件所产生的信息被syslogd记录在maillog文件中。

信息等级

同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息(information),有出现还不至于影响到正常运行的警告信息(warn),还有系统硬件发生严重错误时所产生的重大问题信息(error等);syslog将信息分为7个主要等级。

等级 等级名称 说明
1 info 仅是一些基本的信息说明
2 notice 除了info外还需要注意的一些信息内容
3 warning(warn) 警示的信息,可能有问题,但还不至于影响到某个daemon运行的信息;基本上,info,notice,warn这三个信息都是在告知一些基本信息而已,应该还不至于造成一些系统运行困扰
4 err(error) 一些重大的错误信息,例如配置文件的某些设置值造成该服务无法启动的信息说明,通常通过err的错误告知,应该可以了解到该服务无法启动的问题
5 crit 比err还要严重的错误信息,这个crit是临界点(critical)的缩写,这个错误已经很严重了
6 aiert 警告,已经很有问题,比crit还要严重
7 emerg(panic) “疼痛”等级,指系统几乎要死机的状态,很严重的错误信息。通常是硬件出问题导致整个内核无法顺利运行就会出现这样的信息

除了这些等级外还有两个特殊的等级,debug(错误检测等级)和none(不需等录等级)。当我们要做一些错误检测或忽略掉某些服务的信息时,可用这两个等级。

等级信息前[.=!]所代表的意思是:

“.”  代表比后面还要高的等级(含该等级)都被记录下来。

“=”  代表所需要的等级,就是后面接的等级。

“!”  代表不等于,即除了该等级外的其他等级都要记录。

信息记录的文件名或设备或主机

这个告诉syslogd将信息记录到什么地方,通常是记录文件,但也可以输出到设备,例如打印机之类的。也可以记录到不同的主机上。下面是一些常见的放置处:

  1. 文件的绝对路径:通常就是放在/var/log里
  2. 打印机或其他:例如/dev/lp0这个打印机设备。
  3. 用户名称:显示给用户。
  4. 远程主机:例如@www.vbird.tsai,当然,需要对方主机的支持。
  5. *:代表目前在线的所有人,类似wall这个命令。

日志文件的安全性设置

可以通过chattr设置a这个属性来增加日志文件的隐藏属性,让日志文件只能增加不能被删除。不过在进行日志文件轮替时将无法移动该日志文件的文件名,需要通过使用logrotate的配置文件来解决。

 [root@www ~]# chattr +a /var/log/messages

 #将messages文件添加隐藏属性

 [root@www ~]# chattr -a /var/log/messages

 #删除隐藏属性

附:

日志文件无法记录信息:

导致日志文件无法记录信息的原因有很多,其中有一个就是在打开日志文件时对文件进行了编辑,如用vim打开日志文件后在离开时使用了“:wq”,这就会导致日志文件无法继续记录信息。因为syslog的日志文件只要“被编辑过”就无法继续记录,这才导致无法记录。只要重新启动syslog即可。

鸟哥笔记:syslogd:记录日志文件的服务的更多相关文章

  1. 鸟哥笔记:linux系统日志文件介绍

    简单的说日志文件就是记录系统活动信息的几个文件,例如:何时.何地(来源ip).何人(什么服务名称).做了什么操作.换句话说就是:记录系统在什么时候由哪个进程做了什么样的行为时,发生了什么事件等. 日志 ...

  2. PHP学习笔记——上传文件到服务端的文件夹下

    环境 开发包:appserv-win32-2.5.10 服务器:Apache2.2 数据库:phpMyAdmin 语言:php5,java 平台:windows 10 需求 编写一个PHP脚本页面,可 ...

  3. 鸟哥笔记:postfix的一些重要配置文件

    postfix的一些主要配置文件都放在/etc/postfix/目录下,其中几个重要的配置文件有main.cf.master.cgf.access和aliases文件. /etc/postfic/ma ...

  4. 《鸟哥的Linux私房菜》读书笔记

    第五章  初次使用Linux man.info的使用 组合键:切换登录环境.Tab.Ctrl+c.Ctrl+d 正确关机的方法 开机过程的问题排解:文件系统错误.忘记root密码 第六章  文件权限& ...

  5. 《鸟哥的Linux私房菜》Chapter11 20180726~20180806

    目录 1.认识Bash这个shell 1.1.硬件.核心与shell 1.2.系统的合法shell和/etc/shells功能 1.3.Bash shell的功能 1.3.1.命令修编功能 1.3.2 ...

  6. linux学习书籍推荐《鸟哥的Linux私房菜》下载

    下载地址:点我 <鸟哥的Linux私房菜:基础学习篇>是具有知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>的最新版,全面而详细地介绍了Linux操作系统.< ...

  7. 第十章:鸟哥的Linux私房菜

    第十章.vim程式编辑器 1. vi与vim 1.1 为何要学vim2. vi的使用 2.1 简易执行范例 2.2 按键说明 2.3 一个案例的练习 2.4 vim的暂存档.救援回复与开启时的警告讯息 ...

  8. 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)

    上一篇文章主要从理论上分析了Linux的Ext2文件系统.这一篇主要解说怎样查看Linux的文件系统的容量以及解说Linux文件系统中的连接文件. 能够通过df和du命令来查看磁盘与文件夹的容量.df ...

  9. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

随机推荐

  1. 从零开始学android-一行两个按钮居中 布局

    方法一: <RelativeLayout android:id="@+id/relativeTop" android:layout_width="fill_pare ...

  2. ZOJ 3827 Information Entropy 水题

    Information Entropy Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/sh ...

  3. 图像的稀疏表示——ScSPM和LLC的总结

    前言 上一篇提到了SPM.这篇博客打算把ScSPM和LLC一起总结了.ScSPM和LLC其实都是对SPM的改进.这些技术,都是对特征的描述.它们既没有创造出新的特征(都是提取SIFT,HOG, RGB ...

  4. Liunx下Tomcat+MYSQL+Nginx配置

    环境:centos6.4 min #安装编译库及依赖模块 yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib z ...

  5. JavaScript学习总结-技巧、有用函数、简洁方法、编程细节

    整理JavaScript方面的一些技巧.比較有用的函数,常见功能实现方法,仅作參考 变量转换 //edit http://www.lai18.com var myVar = "3.14159 ...

  6. C# 指针(unsafe与fixed的使用)

    c#在默认情况下生成的都是安全代码,即进行了代码托管(.NET的CLR机制好处之一是,进行代码托管,适时的释放内存,程序员便不必考虑资源的回收问题),而此时,指针不能出现在安全代码的编译条件下. 一. ...

  7. Jquery的$命名冲突

    在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法.然而,当我们引入多个js库后,在另外一个js库中 ...

  8. java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER,调用XWPFTemplate动态合并生成一个新的docx文档时报错

    在使用 org.apache.poi 对office文件  根据表单内容和已上次的附件 动态合并成一个新的文档时,本地调试完全ok 但是发布倒Linux环境上就老是报这个错误java.lang.NoS ...

  9. mysql show commands

    a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称b. show databases; -- 显示mysql中所有数据库的 ...

  10. C语言创建并使用dll

    利用C语言创建 利用 C++使用: 参见前面  利用C语言创建并使用lib 如法炮制创建 showDll Dll代码 __declspec(dllexport) double myDivision(i ...