关闭

syslog使用介绍

88人阅读 评论(0) 收藏 举报
分类:

Syslog在网络管理中的应用

Syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。

Ubuntu下安装syslog  apt-get install inetutils-syslogd

这里面的三个函数openlog, syslog, closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。
通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上显示,而警告消息则可记录到一个文件中。该机制提供了 syslog函数,其调用格式如下
#include <syslog.h>
void openlog (char*ident,int option ,int facility);
void syslog(int priority,char*format,……)
void closelog();

调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。调用openlog 使我们可以指定一个ident,以后, 此ident 将被加至每则记录消息中。ident 一般是程序的名称(例如 ,cron ,ine 等)

程序的用法示例代码如下:

#include <syslog.h>
int main(int argc, char **argv)
{
openlog("MyMsgMARK", LOG_CONS | LOG_PID, 0);
syslog(LOG_DEBUG,
"This is a syslog test message generated by program '%s'\n",
argv[0]);
closelog();
return 0;
}

编译生成可执行程序后,运行一次程序将向/var/log /message文件添加一行信息如下:
Feb 12 08:48:38 localhost MyMsgMARK[7085]: This is a syslog test message generated by program './a.out'

syslog函数及参数
syslog函数用于把日志消息发给系统程序syslogd去记录,此函数原型是:
void syslog(int priority, const char *format, ...);
第一个参数是消息的紧急级别,第二个参数是消息的格式,之后是格式对应的参数。就是printf函数一样使用。

如果我们的程序要使用系统日志功能,只需要在程序启动时使用openlog函数来连接 syslogd程序,后面随时用syslog函数写日志就行了。

下面介绍在RedHat和ubuntu中如何配置它:

Ubuntu和红帽常使用它,并且通过文件/etc/rsyslog.conf进行管理。文件中包含许多指定的特殊系统日志:有的是控制台方面的,有的是文件方面或其它主机的。

  首先,我们需要载入合适的TCP和UDP插件以支持接收系统日志。把下面的代码添加到rsyslog.conf的头部:

  $modload imtcp

  $modload imudp

  $InputTCPServerRun 10514

  $UDPServerRun 514

  载入的这两个模块能支持监听TCP和UDP的端口,并且指定哪个端口来接受事件,在这种情况下,使用TCP的10514端口和UDP的514端口。你需要确认一下本地防火墙(在你的主机和中央系统日志服务器之间的防火墙)

  下面我们需要指定一些规则来告诉rSyslog在哪放输入事件。如果你不添加任何规则,输入事件将按照本地的规则进行处理,并且与本地主机的事件交织在一起。我们需要在上面添加节之后和本地处理系统日志之前来正确的指定这个规则,例如:

  if $fromhost-ip isequal '192.168.0.2' then /var/log/192.168.0.2.log

  & ~

  这里我们说的每一个来自于192.168.0.2的系统日志都应该保存在/var/log/192.168.0.2.log文件中。&~这个符号是非常重要的,因为它告诉rSyslog将停止处理消息。如果你把它忘写了,消息将越过下一个规则,并且继续处理。在这一规则中还有其他的变量。例如:

  if $fromhost-ip startswith '192.168.' then /var/log/192.168.log

  & ~

  这里我们用192.168.*替代了以这个为开始的所有IP地址,写入到/var/log/192.168.log文件中。你还可以看到一些其它的过滤。

  你将需要重启这个rsyslog服务来激活我们所做的新的配置:

  $ sudo service rsyslog restart

  现在,对于发送方的主机,我们还需要对文件rsyslog.conf进行一些更改,在文件的头部,添加下面这行:

  *.* @@192.168.0.1:10514

  这是发送的所有事件,来自于所有源代码和所有重要级别(用*.*),通过TCP协议传给IP地址为192.168.0.1的10514端口。你可是用你所在环境的地址来替换这个IP地址。要启用此配置,你将需要重启主机上的rSyslog。

  你可以通过SSL/TLS更进一步地发送你的系统日志。如果你在互联网上或其它网络间传输系统日志,这也没什么坏处,你可能会发现这个的简单说明。

  现在,如果给你的配置管理系统(如果不使用这个,你可以试一试Puppet或Cfengine工具)添加这个配置,然后,您可以用适当的系统日志来有效地配置每台主机,以确保你的日志将被发送到中央系统日志服务器。


0
0
查看评论

syslog的使用

syslog是libc中自带的一套记录系统日志的接口,如果徒方便省事儿,不想借助其他额外的库来记日志,可以使用这一套接口。
  • Toormi
  • Toormi
  • 2016-03-15 21:41
  • 2076

syslog的使用方法个人小结

1.在/etc/syslog.conf下加入一行localN.*  pathname  例  local5.*    /root/Desktop/test.log 2.重新启动syslog /etc/init.d/syslog...
  • chenjian723122704
  • chenjian723122704
  • 2011-12-13 12:24
  • 10160

开发板上syslog使用方法小结

1.在/etc/syslog.conf下加入一行localN.*  pathname  例  local5.*    /root/Desktop/test.log 2.重新启动syslog /etc/init.d/sy...
  • yangxuan12580
  • yangxuan12580
  • 2016-05-25 11:27
  • 4316

syslog使用详解

1. 前言   syslog是UNIX系统中提供的一种日志记录方法(RFC3164),syslog本身是一个服务器,程序中凡是使用syslog记录的信息都会发送到该服务器,服务器根据配置决定此信息是否记录,是记录到磁盘文件还是其他地方,这样使系统内所有应用程序都能以统一的方式记录日志,...
  • trx_love_c
  • trx_love_c
  • 2012-06-19 20:44
  • 928

Syslog配置及使用简介

  • 2012-12-25 14:41
  • 72KB
  • 下载

利用syslog函数,将日志写入自己指定的文件

Centos7 配置文件 vim /etc/rsyslog.conf #如要写到自己的文件debug里面这么加, 路径自己定义,我这里定义为/var/log/debug user.debug /var/log/debug #通过local0 到 local7 设置自己定义...
  • jun2016425
  • jun2016425
  • 2018-01-11 16:19
  • 55

Linux下syslog日志函数使用

本文转载自--》》  http://blog.chinaunix.net/uid-26611973-id-3084012.html 许多应用程序需要记录它们的活动。系统程序经常需要向控制台或日志文件写消息。这些消息可能指示错误、警告或是与系统状态有关的一般信息。例如,su程序会把某个用...
  • qq_33348709
  • qq_33348709
  • 2016-11-07 18:49
  • 500

Linux syslog介绍

一、syslog日志简介 在Unix类操作系统上,syslog广泛应用于系统日志。 syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常...
  • midion9
  • midion9
  • 2016-04-12 10:11
  • 432

linux - syslog详解

简介 syslog机制负责记录内核和应用程序产生的日志信息,管理员可以通过查看日志记录,来掌握系统状况。日志格式 规定syslog消息的UDP报文不能超过1024字节,并且全部由可打印的字符组成。完整的syslog消息由3部分组成,分别是PRI、HEADER和MSG。大部分syslog都包含PR...
  • myloveqingmu
  • myloveqingmu
  • 2016-12-07 09:59
  • 1365

syslog使用介绍

Syslog在网络管理中的应用 Syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统...
  • liuyuehui110
  • liuyuehui110
  • 2014-12-26 14:12
  • 1278
    个人资料
    • 访问:264220次
    • 积分:3446
    • 等级:
    • 排名:第11557名
    • 原创:15篇
    • 转载:346篇
    • 译文:0篇
    • 评论:16条
    文章分类
    最新评论