设为首页 收藏本站
查看: 1032|回复: 0

[经验分享] SysLog简介和java操作实例

[复制链接]

尚未签到

发表于 2017-7-9 16:13:23 | 显示全部楼层 |阅读模式
版权声明:本文为博主原创文章,未经博主允许不得转载。

  目录(?)[-]

  • 什么是SysLog
  • SysLog的作用
  • Java如何连接开发SysLog应用

    • 安装一个syslog服务器syslogwatcher
    • 可以通过Listen和Stop控制是否开启监听
    • java客户端开发需要引入syslog4jjar包
    • 服务器记录信息如图

  这次为大家分享一项日志技术,syslog日志技术。微信公众分享号:lshaids6688
什么是SysLog

   syslog协议属于一种主从式协议:syslog发送端会传送出一个小的文字讯息(小于1024字节)到syslog接收端。接收端通常名为“syslogd”、“syslog daemon”或syslog服务器。系统日志讯息可以被以UDP协议及╱或TCP协议来传送。这些资料是以明码型态被传送。不过由于SSL加密外套(例如Stunnel、sslio或sslwrap等)并非syslog协议本身的一部分,因此可以被用来透过SSL/TLS方式提供一层加密。
syslog通常被用于资讯系统管理及资安稽核。虽然它有不少缺陷,但仍获得相当多的装置及各种平台的接收端支援。因此syslog能被用来将来自许多不同类型系统的日志记录整合到集中的储存库中。
syslog提供了一个便于管理员理解日志的机制,即以英文文本来记录系统消息。系统日志消息中有标准格式的消息(称为系统日志消息、系统错误消息或简单系统消息),也有从调试命令输出的消息。这些消息是在网络运作过程中生成的,旨在指明网络问题的类型和严重程度,或者帮助读者用户检测路由器的活动,比如配置的变更。
Cisco设备会根据网络事件导致的结果,来生成系统日志消息。每个syslog消息中都包含一个严重级别和一个特性。很多网络设备都支持syslog其中包括路由器、交换机、应用服务器、防火墙和其他网络设备。
Syslog 常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档讯息的标准。这个词汇常用来指实际的syslog 协议,或者那些送出syslog讯息的应用程式或数据库。
  通俗一点的讲,syslog就是日志发送和接受的一种协议,你可以使用syslog协议实现自己的应用,将日志通过syslog协议从日志生产者发送到日志消费者,消费者保存日志信息,提供日志查询和管理。

SysLog的作用
  首先和大家解释一下,为什么要使用syslog。或许大家有这样的疑问,我们平时做的每一个系统不都有自己的日志模块吗?我们登录自己的日志模块,可以很方便的查看自己的日志信息。那么为什么还要使用syslog呢?
  答案是这样的,如果只是针对一个系统,我们一般是没有必要使用syslog的,如果一个企业部署了很多系统,每个系统都有自己的日志模块,每个系统都是独立的。那么管理员要想通过日志获取到系统的运行信息或者审计日志,那么工作量是相当大的。这个时候,只有要求所有的系统都将日志传输到syslog服务器上,通过syslog服务器统一管理日志,就会方便很多。
  当然这些系统包括所有的硬件,软件系统,他们都会源源不断的发来信息,由syslog服务器将信息分类,分级别记录。
  
Java如何连接开发SysLog应用
  java开发syslog,一般都是开发客户端,服务器都是使用的第三方应用。它们已经给我们做好了syslog收集日志的部分,我们只需要安装就可以了。
  开发前准备工作:
安装一个syslog服务器:syslogwatcher
  下载地址:http://pan.baidu.com/s/1dDlEEvJ
  下载完成以后,直接运行exe就行。
  启动以后,托盘中就会有一个图标,单击进入syslogwatcher。第一次使用的时候,需要设置编码为utf-8。这样兼容中文日志。
   DSC0000.jpg

可以通过Listen和Stop控制是否开启监听
  
   DSC0001.jpg
  这样就开启了服务端,下面编写客户端程序:
java客户端开发需要引入:syslog4j.jar包。
  下载地址:http://pan.baidu.com/s/1qW6qYo0
  下载以后引入到项目中,编写代码实例如下:



[java] view plain copy

  • import java.net.URLDecoder;  
  • import java.util.Date;  
  •   
  • import org.productivity.java.syslog4j.Syslog;  
  • import org.productivity.java.syslog4j.SyslogIF;  
  •   
  • /**
  • * SysLog发送数据
  • * @author lish
  • * date 2014年8月1日 上午11:02:06
  • * class name SyslogTest2
  • */  
  • public class SyslogTest2 {  
  •   
  •     public static void main(String[] args){  
  •         try {  
  •             //获取syslog的操作类,使用udp协议。syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议  
  •             SyslogIF syslog = Syslog.getInstance("udp");   
  •             //设置syslog服务器端地址  
  •             syslog.getConfig().setHost("127.0.0.1");  
  •             //设置syslog接收端口,默认514  
  •             syslog.getConfig().setPort(514);  
  •             //拼接syslog日志,这个日志是自己定义的,通常我们定义成符合公司规范的格式就行,方便查询。例如 操作时间:2014年8月1日  操作者ID:张三 等。信息就是一个字符串。  
  •             StringBuffer buffer = new StringBuffer();  
  •             buffer.append("操作时间:" + new Date().toString().substring(4, 20) + ";");  
  •             buffer.append("操作者ID:" + "张三" + ";");  
  •             buffer.append("操作时间:" + new Date()+ ";");  
  •             buffer.append("日志类别:" + "22"+ ";");  
  •             buffer.append("执行动作:" + "动作" + ";");  
  •             buffer.append("备注:" + "备注");  
  •             /*  发送信息到服务器,2表示日志级别 范围为0~7的数字编码,表示了事件的严重程度。0最高,7最低
  •              *  syslog为每个事件赋予几个不同的优先级:
  •                 LOG_EMERG:紧急情况,需要立即通知技术人员。
  •                 LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失。
  •                 LOG_CRIT:重要情况,如硬盘错误,备用连接丢失。
  •                 LOG_ERR:错误,不是非常紧急,在一定时间内修复即可。
  •                 LOG_WARNING:警告信息,不是错误,比如系统磁盘使用了85%等。
  •                 LOG_NOTICE:不是错误情况,也不需要立即处理。
  •                 LOG_INFO:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。
  •                 LOG_DEBUG:包含详细的开发情报的信息,通常只在调试一个程序时使用。
  •              */  
  •             syslog.log(0, URLDecoder.decode(buffer.toString(),"utf-8"));  
  •         } catch (Exception e) {  
  •         }  
  •     }  
  • }  
服务器记录信息如图:
   DSC0002.jpg
  
  这样,只要要求所有的系统都向服务器发送日志信息,管理员就可以通过syslog服务器查询所有的日志信息。而且可以通过日志信息的级别来确定具体的应对措施。syslog服务器还可以制作一些报表,直观的查看日志信息
   DSC0003.jpg

   DSC0004.jpg

   DSC0005.jpg

   DSC0006.jpg

   DSC0007.jpg
  到这里,你就初步掌握了syslog的应用方法了,syslog还可以监控Linux,unix,window等服务器的日志信息,这样通过syslog还可以实时的得到服务器运行状况。如果有兴趣的还可以深入了解。总之,这么简单就能统一日志管理,何乐而不为呢?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-392074-1-1.html 上篇帖子: SDN前瞻 网络的前世今生 下篇帖子: 虚拟攻防系统 HoneyPot
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表