`

SysLog 学习的一点思路

 
阅读更多

【Syslog是什么?】

Syslog protocol是一种工业标准的协议,Syslog是一个简单协议,常用来管理计算机系统和安全审计。虽然存在大量不足,Syslog获得了大量设备和接收者跨越多个平台和操作系统的支持。因此,Syslog可用来将日志数据从多种不同类型的系统整合到一个存贮中心。 由于每个进程、应用程序和操作系统都或多或少地被独立完成,在syslog信息内容会有一些不一致的地方。因此,协议中并没有任何关于信息的格式或内容的假设。这个协议就是简单地被设计用来传送事件信息。在所有情况下,都有一个产生这个信息的设备,其中的syslog 程序可以发送信息到接收者,但是事件已经被接收到不会被通知。

Syslog 采用用户数据报协议(UDP)作为其底层传输层机制。被分配syslog的端口是514端口。数据通常是以简明文本的形式发送的,但诸如Stunnel, sslio或sslwrap的SSL wrapper会被用来通过SSL/TLS提供层加密。

Syslog 协议和进程最基本原则就是其简便性,在协议的发送者和接收者之间不要求有严格的相互协调。事实上,syslog 信息的传递可以在接收器没有被配置甚至没有接收器的情况下开始。反过来,在没有被清晰配置或者定义的情况下,接收器也很可能接收到信息。这个简单原则很好地促进了syslog 的认可和开展。

<以上部分摘自网络,我认为总结比较好的部分。>我们可以简单理解Syslog就是Unix下的一个组件,可以实现把系统中某些日志信息写到一个文件,或者用UDP包发送到某台服务器,也就是一台服务器A可以将域内不同服务器上的日志信息,通过配置汇总到A,A就成为域中SysLog日志服务器

【Syslog服务器实现简单思路】

1、开启局域网中Unix系统syslog服务

2、配置Syslog信息发送到一台主机A

3、配置A接收不同主机信息

4、具体项目中有时需要对A日志信息进行具体分析

这里抽取一个最简单模型为例来说明:

主机A:192.168.1.62

主机B:192.168.1.85

用A作为Syslog服务器,A上用一个简单Java类采集B主机发送过来的信息,打印出来。

配置192.168.1.62的Syslog配置文件:

1)修改/etc/sysconfig/syslog文件:,设置SYSLOGD_OPTIONS的值为"-rxm 60",其中60为syslog记录时间戳标记消息(–MARK–)的频率(单位为秒)-r标示允许远程访问。设置结果如下:

  1. [root@KMC-DBlog]#vi/etc/sysconfig/syslog
  2. #Optionstosyslogd
  3. #-m0disables‘MARK’messages.
  4. #-renablesloggingfromremotemachines
  5. #-xdisablesDNSlookupsonmessagesrecievedwith-r
  6. #Seesyslogd(8)formoredetails
  7. SYSLOGD_OPTIONS="-rxm60"
  8. #SYSLOGD_OPTIONS="-m0"

配置192.168.1.85的Syslog配置文件:

2)/etc/syslog.conf文件,添加*.*@192.168.1.62 #发送到远端主机

  1. *.*@192.168.1.62#发送到远端主机

表示所有信息发送到192.168.1.62服务器。

重启两台服务器:

  1. #servicesyslogrestart

我们也可以在62上写一小段Java代码测试

测试代码例子如下<来源互联网>:

[c-sharp] view plaincopy
  1. importjava.net.*;
  2. importjava.io.*;
  3. /**
  4. *Implementsabasicsyslogserverreceivingdataonport514andloggingitto
  5. *afilecalledsyslog.log
  6. */
  7. publicclassJavalogServer{
  8. publicstaticvoidmain(Stringargs[])throwsException{
  9. //Createthebuffertostorethedataasitcomesin
  10. byte[]log_buffer=newbyte[2048];
  11. intreceived_messages=0;
  12. //Openthefileforwritingthelogmessages
  13. Fileout_file=newFile("syslog.log");
  14. //Createtheoutputstreamsowecandumpthedata
  15. FileOutputStreamsyslog_file=newFileOutputStream(out_file);
  16. //CreateaDatagramPackettoreceivetheincominglogdata
  17. DatagramPacketpacket=newDatagramPacket(log_buffer,
  18. log_buffer.length);
  19. //Createasocketthatlistensonthenet
  20. DatagramSocketsocket=newDatagramSocket(514);
  21. while(received_messages<5){
  22. //Waituntilsomedataarrives.Aren’tthreadsgreat?
  23. socket.receive(packet);
  24. //Incrementthemessagecount
  25. received_messages++;
  26. //Buildastringofthepacketdata
  27. Stringpacket_string=newString(log_buffer,0,0,packet
  28. .getLength());
  29. //Putthepacketdataafterabitofheadersowecanseewhereit
  30. //comes
  31. //from
  32. Stringout_string="<syslogfrom"
  33. +packet.getAddress().getHostName()+">"+packet_string
  34. +"/n";
  35. //Printthemessagetothestandardoutwindow
  36. System.out.println(out_string);
  37. //Convertthemessagetoanarrayofbytessoitcanbesenttothe
  38. //file
  39. intmsg_len=out_string.length();
  40. byte[]out_buffer=newbyte[msg_len];
  41. out_string.getBytes(0,out_string.length(),out_buffer,0);
  42. //Writethenameofthehostwherethedatacamefromtothefile
  43. syslog_file.write(out_buffer,0,out_string.length());
  44. }
  45. socket.close();
  46. }
  47. }

打印信息:

<syslog from 192.168.1.85><6>kernel: Kernel logging (proc) stopped.


<syslog from 192.168.1.85><6>kernel: Kernel log daemon terminating.


<syslog from 192.168.1.85><46>exiting on signal 15


<syslog from 192.168.1.85><46>syslogd 1.4.1: restart (remote reception).


<syslog from 192.168.1.85><6>kernel: klogd 1.4.1, log source = /proc/kmsg started.

分享到:
评论

相关推荐

    syslog receiver syslog接收测试工具

    syslog receiver syslog接收测试工具 MegaLogSyslogTestReceiverV2.zip

    MT_Syslog.exe中文版 MT_Syslog中文版

    网上找了好久也没有找到个中文版的,很是郁闷,最后干脆我自己做个汉化要点分不好意思啊,花了我半天的时间翻译,编译的,一点辛苦,有的地方,不一定通顺,但能看的懂了,谢谢了! MT_Syslog MT_Syslog.exe MT_...

    syslog工具(win10可以用)

    syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10...

    kiwi syslog server 9.5

    Kiwi Syslog Server安装教程: 1. 运行Kiwi_Syslog_Server_9.5.0.setup.exe安装程序 2. 安装完成退出程序 3. 拷贝SolarWinds.Licensing.Framework.dll和ufmod.dll两个文件到软件安装目录,选择覆盖目的文件 4. 运行...

    kiwisyslog 免费版

    kiwisyslog server 免费版本,可收集展示syslog日志统计报表

    SysLog日志工具1

    SysLog日志工具术语SYSLOG:系统日志协议SYSLOG功能功能启/停用参数配置,包括使用协议、服务器地址、服务器端口、字符编码SYSLOG预置数据使用已

    SyslogWatcher

    Syslog Watcher is a Windows-based syslog server for corporate networks. The syslog server collects, stores, parses, displays and explains syslog information to both new and professional network ...

    windows syslog server测试工具

    windows syslog测试工具

    SYSLOG日志数据采集实现

    syslog 使用UDP 作为传输协议,通过目的端口514(也可以是其他定义的端口 号),将所有安全设备的日志管理配置发送到安装了syslog 软件系统的日志服务器,syslog 日志服务器自动接收日志数据并写到日志文件中。

    redhat syslog 配置 笔记

    redhat syslog 配置 笔记 介绍syslog.conf的配置文件格式和配置实例

    安全设备的Syslog发送测试软件

    软件用易语言编写,整理了主流安全厂商的syslog格式,可模拟发送安全厂商的syslog到指定的syslog服务器,服务器支持自定义端口与IP,编码格式为UTF-8

    syslog_win32.lib

    windows系统下,按照syslog协议,将客户端日志上传到服务器 步骤: 1..准备工作,从syslog-win32网站上下载源代码压缩包(syslog-win32-0.3.tar.bz2)。解压缩后,把客户端所使用的两个文件添加到使用syslog的项目中...

    syslog syslog4j syslogd linuxsyslog4j

    syslog syslog4j syslogd linuxsyslog4j

    Syslog Watcher 2.zip

    syslog协议是各种网络设备、服务器支持的网络日志记录标准。Syslog消息提供有关网络事件和错误的信息。系统管理员使用Syslog进行网络管理和安全审核。 通过专用的syslog服务器和syslog协议将来自整个网络的事件记录...

    syslog-ng安装包及安装步骤

    syslog-ng安装包及安装步骤(syslog-ng_3.3.5.tar.gz,eventlog_0.2.12.tar.gz,syslog-ng安装步骤.txt)

    Kiwi Syslog Server 9.6.2官方免费版本

    软件介绍: Kiwi Syslog Server 9.6.2官方免费版本,有使用限制,只能免费管理5台设备。Kiwi-Syslog-Server是一款应用于WINDOWS系统的系统日志守护进程,能够接收并记录系统日志,各种设备的SYSLOG消息,内置丰富的...

    syslog工具

    在Unix类操作系统上,syslog广泛应用于系统日志。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的...

    java发送syslog日志,支持多目的ip

    SysLogTest.7z为NetBeans下做的 java发送syslog日志,支持多目的ip的程序。根目录下的bat文件可直接运行。 Syslog Watcher.zip为Syslog服务器软件。

    syslog 详解

    syslog 详解

    syslog分析

    syslog分析

Global site tag (gtag.js) - Google Analytics