免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ syslog
最近访问板块 发新帖
查看: 2457 | 回复: 6
打印 上一主题 下一主题

[C] syslog [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-14 10:29 |只看该作者 |倒序浏览
貌似syslog只能写东西到"/var/log/message"?

我不想让自己写的程序日志和其它的程序日志缠到一起……

如果想写日志到其它的文件怎么做呢?

论坛徽章:
0
2 [报告]
发表于 2007-11-14 12:18 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2007-11-14 12:20 |只看该作者
你要配置/etc/syslog.conf

论坛徽章:
0
4 [报告]
发表于 2007-11-14 12:22 |只看该作者
配置你说的东东,那其它的程序不也就写到了我程序要写的文件里了?

论坛徽章:
0
5 [报告]
发表于 2007-11-14 12:29 |只看该作者
用fwrite也许满足你的需要,不过仅仅是当成普通文件处理

论坛徽章:
0
6 [报告]
发表于 2007-11-14 12:41 |只看该作者
:em11:

偶还是希望能用syslog 比自己用write 方便很多呢~

就是不知道能不能解决~而且,那些个配置我也看不懂~

论坛徽章:
0
7 [报告]
发表于 2007-11-14 12:53 |只看该作者
在网上找的

一.syslog基本介绍
本文作者:zcj

来源:http://www.unixren.com

本文可以任意转载,请保留作者和来源

日志文件由系统日志和内核日志监控程序syslogd与klogd控制,在/etc/syslog.conf文件中配置这两个监控程序默认活动。

日志文件按/etc/syslog.conf配置文件中的描述进行组织。下图是/etc/syslog.conf文件的内容:
[root@localhost ~]# cat /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.* /var/log/boot.log

syslog.conf行的基本语法是:

[消息类型][处理方案]

注意:中间的分隔符必须是Tab字符!

消息类型是由"消息来源"和"紧急程度"构成,中间用点号连接。例如上图中,news.crit表示来自news的“关键”状况。在这里,news是消息来源,crit代表关键状况。通配符*可以代表一切消息来源。

说明:

第一条语句*.info,将info级以上(notice,warning,err,crit,alert与emerg)的所有消息发送到相应日志文件。


日志文件类别(按重要程度分类)日志文件可以分成八大类,下面按重要性从大到下列出:emerg emergency,紧急alert 警报crit critical,关键errerror,错误warning 警告notice 通知info 信息debug 调试
简单列一下消息来源

auth    认证系统,如login或su,即询问用户名和口令
cron    系统执行定时任务时发出的信息
daemon   某些系统的守护程序的 syslog,如由in.ftpd产生的log
kern    内核的信息
lpr     打印机的信息
mail    处理邮件的守护进程发出的信息
mark    定时发送消息的时标程序
news    新闻组的守护进程的信息
user    本地用户的应用程序的信息
uucp    uucp子系统的信息
*     表示所有可能的信息来源


处理方案

"处理方案"选项可以对日志进行处理。可以把它存入硬盘,转发到另一台机器或显示在管理员的终端上。

处理方案一览:

文件名  写入某个文件,要注意绝对路径。

@主机名 转发给另外一台主机的syslogd程序。

@IP地址 同上,只是用IP地址标识而已。

/dev/console 发送到本地机器屏幕上。

* 发送到所有用户的终端上。

|程序 通过管道转发给某个程序。

例如:

kern.emerg

/dev/console(一旦发生内核的紧急状况,立刻把信息显示在控制台上)

说明:

如果想修改syslogd的记录文件,首先你必须杀掉syslogd进程,在修改完毕后再启动syslogd。攻击者进入系统后通常立刻修改系统日志,因此作为网管你应该用一台机器专门处理日志信息,其他机器的日志自动转发到它上面,这样日志信息一旦产生就立刻被转移,这样就可以正确记录攻击者的行为。

将日志文件记录到远程主机 。

说到这远程主机就是我们本文要配置的syslog服务器。

2.syslog服务器配置实践步骤


例如: 10.0.0.1为syslog服务器     10.0.0.2 为客户机
步骤: 1.服务端配置
vi /etc/sysconfig/syslog      
      sysLOGD_OPTIONS = “-r –m 0”   ## -r 意思是接受远程的日志

    重起syslog服务 /etc/rc.d/init.d/syslog   restart
    2.客户端配置
      vi /etc/syslog.conf
      在消息去向处添加 @10.0.0.1
例如:*.info;mail.none;authpriv.none;cron.none @10.0.0.1
      存盘退出重起服务
      /etc/rc.d/init.d/syslog restart

    (知识点:直接查看日志尾部:   tail   /var/log/messages或者tail /var/log/boot这样就可以看到syslog重起)


注意:日志服务使用的端口是:514/udp syslog服务器应该打开这个端口
syslog日志服务器端不能根据源地址过滤,为了防止外网向日志服务器写垃圾信息要在网络拓扑中解决,网关上做限制外网访问514端口。
如果服务器比较多的话,这样形成的日志比较大,要做好日志的分析

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP