日志文件内容的一般格式

一般来说,系统产生的信息经过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. CircleProgressBar

    http://www.eoeandroid.com/thread-333984-1-1.html CircleProgressBar.rar

  2. python无私有成员变量

    python解释器将__init__函数里的__z变量转成 _classname__z了,明确规则后外部依旧能够通过实力对象来訪问. In [1]: class aa: ...: def __init ...

  3. WebView的应用 持续积累

    在我的项目中载入网页时我们会用到WebView这个控件,关于这个控件的相关的比較有用的API在这里记录一下. 第一 webview 设置javascript可用,  mWebView = (WebVi ...

  4. Yum本地Rpm库设置

    http://blog.csdn.net/dc_726/article/details/8497188   1 Yum对光盘的支持 查看/etc/yum.repos.d/CentOS-Media.re ...

  5. 给iOS 模拟器“安装”app文件

    前言 刚刚接触iOS的时候,我就一直很好奇,模拟器上面能不能直接安装app呢?如果可以,我们就直接在模拟器上面聊QQ和微信了.直到昨天和朋友们聊到了这个话题,没有想到还真的可以给模拟器“安装”app! ...

  6. Asp.Net 之 当前上下文中不存在名称" Server "

    在开发中经常用到应用程序的物理路径,在获取应用程序中文件的物理路径时最常用: string path = Server.MapPath("Document/example.doc" ...

  7. python--for循环

    1.循环输出1-10 for i in range(1,11): print(i) 1 2 3 4 5 6 7 8 9 10 2.break用法,break为跳出整个当前循环层,只跳一层.当i=5的时 ...

  8. 使用webView制作浏览器

    xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  9. BigInteger

    首先上模板(不断更新中...)(根据刘汝佳AOAPCII修改) #include <iostream> #include <sstream> #include <cstd ...

  10. try{return} finally

    今天去逛论坛 时发现了一个很有趣的问题: 谁能给我我解释一下这段程序的结果为什么是:2.而不是:3? 代码如下: class Test { public int aaa() { int x = 1; ...