嵌入式系统中使用远程syslog进行调试与诊断

2019-07-12 23:22发布

Syslog机制是类unix系统中经常使用的一种日志记录方式。它能够以多种级别组合记录系统运行过程中各类日志信息。比如内核运行信息日志,程序运行输出的日志等。在为嵌入式系统做开发时,将程序运行时的一些重要信息写入日志中,对于程序的调试以及错误诊断帮助是非常大的。重要信息包括程序运行时的重要变量,函数运行结果,错误记录等等。对于嵌入式系统而言,由于系统资源有限,而且是交叉开发,调试及诊断及其不便。使用syslog机制,可大大简化这些工作。        并不是所有嵌入式系统都可以使用syslog。首先,系统使用类unix操作系统,常用的就是linux。其次,为了支持远程日志记录,系统中必须支持网络通信。所幸,目前大部分嵌入式系统都是基于linux,并且支持网络。以下论述具体实现。
       在编译busybox时,选择syslog应用程序,并将busybox加入到linux的文件系统中去。嵌入式系统启动后,就可以配置syslog的客户端。根据busybox版本,syslog的服务进程syslogd的配置有所不同。早期的syslogd忽略syslog.conf文件内的配置项,直接使用命令参数进行配置。新版本的syslogd支持使用syslog.conf文件进行配置。可以通过syslogd –h察看帮助信息,以确定当前的syslogd版本。
       当不支持syslog.conf配置时,直接使用命令参数,输入以下命令启动syslogd:
       syslogd -n -m 0 -L -R 192.190.1.88
       其中-n选项表示进程在前台运行。
-m选项指定循环间隔时间。
-L选项表示在进行远程日志记录的同时,本地也进行记录。如果不加该选项,则只进行远程日志记录。
-R表示进行远程日志记录,将syslog日志发送到目标服务器上。这里假定目标服务器为的IP地址为192.190.1.88。如果不指定端口,默认使用UDP端口514。所以要确保服务器上该端口没用被占用。
启动后,所有的日志信息都会发往服务器的UDP端口514。
 
当支持syslog.conf配置时,只需修改该配置文件即可。在文件中增加以下语句:
*.*    @192.190.1.88
以上配置表示将所有syslog的日志发往服务器192.190.1.88,使用默认的UDP端口。由于syslog.conf配置相对比较灵活,可以设置屏蔽一些不需要的信息,以及设置指定的端口等等。请参考syslog.conf的有关命令,自行研究。然后启动syslogd即可进行远程记录。
 
服务器端,可以使用各种操作系统。一般用户都使用windows为主,这就需要在windows上运行的syslog服务器程序。这里推荐两个软件:
Syslog watche 下载地址:http://www.greendown.cn/soft/15983.html
该软件为免费软件,无使用限制。
Kiwi SyslogServer 下载地址:
http://www.solarwinds.com/register/kiwi_registration.aspx?Program=876&c=70150000000Es8J
该软件为免费试用版,有功能限制以及30天试用限制。
这些软件使用非常简单,安装后,直接运行即可,除非使用自定义的UDP端口,否则不需要做其他额外设置。一旦客户端运行后,即可看到日志信息。