Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1377927
  • 博文数量: 198
  • 博客积分: 1629
  • 博客等级: 上尉
  • 技术积分: 2743
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 15:41
文章分类
文章存档

2023年(6)

2022年(20)

2021年(8)

2020年(3)

2018年(17)

2017年(3)

2016年(3)

2015年(9)

2014年(13)

2013年(17)

2012年(77)

2011年(22)

分类: C/C++

2021-09-17 15:44:13

#include //头文件

void openlog (char*ident, int option, int facility); 

void closelog(); 

void syslog(int priority, char*format,……);

 

priority参数的格式(severity level|facility code)

示例:

LOG_ERR|LOG_USER

 

severity level:

Priority Level               Description

LOG_EMERG                    An emergency situation

LOG_ALERT                    High-priority problem, such as database corruption

LOG_CRIT                     Critical error, such as hardware failure

LOG_ERR                      Errors

LOG_WARNING                  Warning

LOG_NOTICE                   Special conditions requiring attention

LOG_INFO                     Informational messages

LOG_DEBUG                    Debug messages 

 

facility value(转自syslog.h头文件):

 

#define LOG_KERN        (0<<3)  

#define LOG_USER        (1<<3)  

#define LOG_MAIL        (2<<3)  

#define LOG_DAEMON      (3<<3)  

#define LOG_AUTH        (4<<3)  

#define LOG_SYSLOG      (5<<3)  

#define LOG_LPR         (6<<3)  

#define LOG_NEWS        (7<<3)  

#define LOG_UUCP        (8<<3)  

#define LOG_CRON        (9<<3)  

#define LOG_AUTHPRIV    (10<<3)

#define LOG_FTP         (11<<3)

三、linux syslog配置

1)、syslog日志服务:

1、守护进程:syslog

2、端口:514

3、配置文件:/etc/syslog.conf

4、常见日志文件:

/var/log/dmesg      内核引导信息日志

/var/log/message    标准系统错误信息日志

/var/log/maillog    邮件系统信息日志

/var/log/cron       计划任务日志

/var/log/secure     安全信息日志

2)、 配置文件:

syslog配置文件如下

-----------------------------------------------------------------

[root@server ~]# vim /etc/syslog.conf

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.

# Don't log private authentication messages!

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.

authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.

mail.*                                                  -/var/log/maillog

# Log cron stuff

cron.*                                                  /var/log/cron

# Everybody gets emergency messages

*.emerg                                                 *

# Save news errors of level crit and higher in a special file.

uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log

local7.*     

-----------------------------------------------------------------

配置文件中每行表示一个项目,格式为:facility.level    action

由两个部分组成:

第一部分:选择条件(可以有一个或者多个条件),分为两个字段。

第二部分:操作动作;

    1、选择条件

    选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)隔开。

    常见facility:

kern                内核信息;

user                用户进程信息;

mail                电子邮件相关信息;

daemon          后台进程相关信息;

authpriv            包括特权信息如用户名在内的认证活动;

cron                计划任务信息;

syslog          系统日志信息

lpr             打印服务相关信息。

news            新闻组服务器信息

uucp                uucp 生成的信息

local0----local7        本地用户信息

    2、重要级:

重要级是选择条件的第二个字段,它代表消息的紧急程度。

按严重程度由低到高排序:

debug       不包含函数条件或问题的其他信息

info            提供信息的消息

none        没有重要级,通常用于排错

notice      具有重要性的普通条件

warning     预警信息

err         阻止工具或某些子系统部分功能实现的错误条件

crit            阻止某些工具或子系统功能实现的错误条件

alert           需要立即被修改的条件

emerg       该系统不可用

    不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是“warning”,它实际上将把“warning”、 “err”、“crit”、“alert”和“emerg”都包括在内。

    3、操作动作

日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。

syslog 主要支持以下活动:

file                    指定文件的绝对路径

terminal 或 prin        完全的串行或并行设备标志符

@host(@IP地址)    远程的日志服务器

 

3)、 搭建Linux日志服务器:

1、编辑/etc/sysconfig/syslog文件,让服务器能够接受客户端传来的数据:

在“SYSLOGD_OPTIONS”行上加“-r”选项以允许接受外来日志消息。

-----------------------------------------------------------------

[root@client ~]# vim /etc/sysconfig/syslog

# Options to syslogd

# -m 0 disables 'MARK' messages.

# -r enables logging from remote machines

# -x disables DNS lookups on messages recieved with -r

# See syslogd(8) for more details

SYSLOGD_OPTIONS="-r -m 0"

# Options to klogd

# -2 prints all kernel oops messages twice; once for klogd to decode, and

#    once for processing with 'ksymoops'

# -x disables all klogd processing of oops messages entirely

# See klogd(8) for more details

KLOGD_OPTIONS="-x"

#

SYSLOG_UMASK=077

# set this to a umask value to use for all log files as in umask(1).

# By default, all permissions are removed for "group" and "other".

-----------------------------------------------------------------

 2、重新启动syslog守护进程。 

-----------------------------------------------------------------

[root@client ~]# service syslog restart

关闭内核日志记录器:                                       [确定]

关闭系统日志记录器:                                       [确定]

启动系统日志记录器:                                       [确定]

启动内核日志记录器:                                       [确定]

[root@client ~]#

-----------------------------------------------------------------

 3、关闭iptables,也可以开启514端口。本例中我们关闭iptables。

          四、配置各客户端:

         1、配置/etc/syslog.conf

         修改客户机/etc/syslog.conf文件,在有关配置行的操作动作部分用一个“@”字符指向日志服务器

-----------------------------------------------------------------

[root@client ~]# vim /etc/syslog.conf

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console

*.*                                                     @10.64.165.210

# The authpriv file has restricted access.

authpriv.*                                              /var/log/secure

……下面省略

-----------------------------------------------------------------

 另外如果配置了DNS域名的话可以使用域名。

          2、重启客户端syslog使设置生效。

检测成果:

        下图是我们在客户端重启iptables服务后在服务端看到的日志情况:

-----------------------------------------------------------------

[root@client ~]# cat /var/log/messages |tail

Nov 30 16:44:29 10.64.165.200 kernel: klogd 1.4.1, log source = /proc/kmsg started.

Nov 30 16:44:33 10.64.165.200 kernel: Removing netfilter NETLINK layer.

Nov 30 16:44:33 10.64.165.200 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team

Nov 30 16:44:33 10.64.165.200 kernel: Netfilter messages via NETLINK v0.30.

Nov 30 16:44:33 10.64.165.200 kernel: ip_conntrack version 2.4 (4096 buckets, 32768 max) - 228 bytes per conntrack

阅读(897) | 评论(0) | 转发(0) |
0

上一篇:脚本计数

下一篇:ls 列出嵌套递归文件

给主人留下些什么吧!~~