Chinaunix首页 | 论坛 | 博客
  • 博客访问: 514884
  • 博文数量: 106
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-21 09:35
文章分类

全部博文(106)

文章存档

2010年(3)

2009年(14)

2008年(55)

2007年(34)

我的朋友

分类: LINUX

2008-09-17 13:50:09

syslog机制负责发送、记录系统内核及工具所产生的信息,由syslog()调用、syslogd守护进程和配置文件 /etc/syslog.conf组成。当系统内核及工具产生信息时,通过调用syslog(),把信息送往syslogd,syslogd再根据 /etc/syslog.conf中的配置要求,将这些信息分别作如下处理:
  1.记录到系统日志中;
  2.输出到系统控制台上;
  3.转发给指定的用户;
  4.通过网络转发给其它主机上的syslogd。
  通过syslog.conf的配置,我们可以灵活地对信息的发送和保存进行控制。

klogd主要纪录一些系统内核的动作,对攻击者最受影响的是syslogd这个进程.它可以接收访问系统的日志信息并且根据/etc/syslog.conf配置文件中的指令处理
因此,任何希望生成日志信息的程序都可向syslog接口呼叫来生成改信息。/etc/syslog.conf的主要是如下语句形式:
facility.level  action
facility 代表各种服务,level代表syslog的认证级别,action代表的是针对前面信息的处理。大家可以注意action字段,有时候会把信息发送到另外一台机器而不是熟悉的/var/adm/messages的。
syslogd -r 接受来至远程系统信息

etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进行分隔。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔
保留字段中的“类型”代表信息产生的源头,可以是:
  kern 由kernel产生的信息;
  user 由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”;
  mail 邮件系统产生的信息;
  daemon 系统守护进程的信息,如ftpd、telnetd;
  auth 由login, su, getty等进行身份认证时产生的信息;
  syslog 由syslogd自己内部产生的信息;
  lpr 行打印spooling系统的信息;
  news USENET 网络新闻系统的信息;
  uucp UUCP系统信息;
  cron cron和at工具信息;
  local0-7 保留为local使用;
  mark syslogd内部产生的时间戳信息;
  * 除mark之外的所有其它类型(此符号不可用以代表所有级别)。

  保留字段中的“级别”代表信息的重要性,可以是:
  emerg 紧急,处于Panic状态。通常应广播到所有用户;
  alert 告警,当前状态必须立即进行纠正。例如,系统数据库崩溃;
  crit 关键状态的警告。例如,硬件故障;
  err 其它错误;
  warning 警告;
  notice 注意;非错误状态的报告,但应特别处理;
  info 通报信息;
  debug 调试程序时的信息;
  none 通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。

  “动作”域指示信息发送的目的地。可以是:
  /filename 日志文件。由绝对路径指出的文件名,此文件必须事先建立;
  @host 远程主机;
  user1, user2 指定用户。如果指定用户已登录,那么他们将收到信息;
  * 所有用户。所有已登录的用户都将收到信息。


syslog 由以下三部份組成:
syslogd - 負責執行記錄的 daemon
logger - 讓使用者傳送訊息給 syslogd 的指令
log libraries - 提供程式設計師傳送訊息給 syslogd

使用 logger 傳送測試用訊息給 syslogd 可用來確定syslog.conf是否正確
例如,在 syslog.conf 設定了
Local1.warn  /tmp/test.log
可以用以下指令測試
#logger –p Local1.warn “Test Message”

將要進行logrotate的紀錄檔名加入logrotate.d 
实例:
cat /etc/logrotate.d
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
設定logrotate.conf(可設定預設值),例如:
# cat /etc/syslog.conf

-----syslog.conf配置处理规则------logrotate.d对服务日志做轮循设定

阅读(910) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~