步骤:1. 服务端配置
vi /etc/sysconfig/syslog
sysLOGD_OPTIONS = “-r –m 0” ## -r意思是接受远程的日志
重起syslog 服务/etc/rc.d/init.d/syslog restart
步骤:2. 客户端配置
busybox中的System Logging Utilities
[*] syslogd
[*] Rotate message files
[*] Remote P
选上。
开启板子,敲入指令:syslogd -R 10.0.0.175 //将日志信息发送到服务端IP 10.0.0.175
测试例子:
/*
testsyslog.c
*/
#include <syslog.h>
int main(int argc, char **argv)
{
// syslog(LOG_ERR|LOG_USER,"test - %m/n");
openlog("SyslogTest", LOG_CONS | LOG_PID, LOG_LOCAL1);
syslog(LOG_DEBUG,"This is a syslog test message generated by program '%s'/n",argv[0]);
closelog();
return 0;
}
交叉编译完后,在板子里运行./testsyslog,本地/var/log/messages会有一些日志信息,服务端/var/log/syslog也会有日志信息。
板子:
# syslogd -R 10.0.0.175
# ./testsyslog
# cat /var/log/messages
Apr 24 18:30:54 SIP-IAD syslog.info syslogd started: BusyBox v1.12.1
服务端:
$ tail -f /var/log/syslog
Apr 24 03:29:50 ubuntu mountd[1428]: authenticated mount request from 10.0.0.132:989 for /home/chencx/work/voip/nfsroot (/home/chencx/work/voip/nfsroot)
【参考】:
1、http://hi.baidu.com/neutblue/blog/item/20268b22dd8e4442ac34de28.html linux 远程日志的配置 syslog.conf配置
2、http://blog.csdn.net/needle2/article/details/6826523 syslog与syslog服务器的配置
转自:http://hi.baidu.com/ccx360/item/80b2590ac79947e135990233
===================================================================================================================================
转自:http://blog.csdn.net/yihui8/article/details/6976972
==================================================================================================================================
在嵌入式系统中,因为存储空间等资源有限,不可能像在PC机上一样记录所有的系统运行日志。在嵌入式上syslog日志的目标只是记录相关程序的运行错误信息或由用户设置日志显示级别而查看相关的日志,以及调试程序时查看日志信息。在具体选择时,可以用一些syslogd项目提供的源代码,另外就是移植busybox中的syslogd程序。下面主要介绍从busybox中移植出syslogd.c的方法和步骤,然后再介绍syslog-ng包的编译和使用。
<!--[if !supportLists]-->1.1 <!--[endif]-->从Busybox移植syslogd
Busybox的根目录下有一个sysklogd目录,里面就是提供给busybox命令syslogd的程序代码,syslogd.c文件就是我们要分解出来的主文件。
<!--[if !supportLists]-->1.1.1 <!--[endif]-->编译syslogd步骤
其实方法很简单,只需把syslogd.c文件单独拷贝出来,单独编译:
#gcc –o syslogd syslogd.c
这过程中会有很多错误,根据错误原因在目录sysklogd和include下的查看相关的文件,把所需要的宏、结构定义、相关的函数原型等都拷贝到syslogd.c文件中,这样反复编译,直到编译成功,那么syslogd可执行程序就是我们需要的。
要注意的是,需要根据busybox-1.2.0/sysklogd/config.in文件中的解释,打开syslogd.c文件中的相关的宏定义,在我的程序中我打开了所有的宏定义。
附件中是我分离好的qsyslogd.c文件,已经编译通过并实验可以使用,
附件:qsyslogd
<!--[if !supportLists]-->1.1.2 <!--[endif]-->运行qsyslogd及验证
Qsyslogd有两个主要的选项:
<!--[if !supportLists]-->l <!--[endif]-->qsyslogd –R 192.168.21.49 表示把syslog信息通过网络传到192.168.21.49的机器上
<!--[if !supportLists]-->l <!--[endif]-->qsyslogd –L 表示在终端界面上显示syslog信息
建立文件mylog.c,并编译运行,
#include <syslog.h>
#include <stdio.h>
int main()
{
syslog(LOG_USER|LOG_INFO, "hello world, test logger ^_^\n");
return 0;
}
#gcc –o mylog mylog.c
#./mylog
查看文件/var/log/messages文件就可以看到我们输出的syslog日志信息了。
<!--[if !supportLists]-->1.2 <!--[endif]-->syslog-ng的编译和使用
syslog-ng是BalaBit公司开发和维护的,遵循GNU。意指下一代日志系统,www.britepic.org它建立了更好的消息过滤粒度。可以下载syslog-ng-1.6.9.tar.gz版本。编译只需configure make即可,编译后再src目录下生成bin文件syslog-ng,下一步运行syslog-ng即可。Syslog-ng运行时需要syslog-ng.conf配置文件。在运行时指定特定的配置文件就可以了,比如:
#syslog-ng –f /home/qibing/syslog-ng.conf
在目录sample下有各个系统配置文件的原型,可以在这些配置文件原型上做相应的修改,一般只需修改dmsg字段。要查看日志信息到dmsg字段指定的文件查看即可。
建立文件test.c并编译运行,
#include <syslog.h>
#include <stdio.h>
int main()
{
syslog(LOG_USER|LOG_INFO, "hello world, test logger ^_^\n");
return 0;
}
则到dmsg字段指定的文件中即可查看输出的日志信息。
转自: http://www.linuxidc.com/Linux/2009-05/19757.htm