美文网首页日志处理程序员
Syslog 服务搭建与功能实现

Syslog 服务搭建与功能实现

作者: 58bc06151329 | 来源:发表于2017-09-18 09:06 被阅读312次

    文前说明

    作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

    本文仅供学习交流使用,侵权必删。
    不用于商业目的,转载请注明出处。

    Syslog 常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档讯息的标准。syslog 协议属于一种主从式协议,系统日志讯息可以被以 UDP 协议或 TCP 协议来传送。

    Syslog 服务搭建

    搭建 Linux 系统 syslog 服务端。

    • 修改 syslog 配置文件,设置接收来自外部的基于 UDP 或者 TCP 协议的日志消息。
    vi /etc/rsyslog.conf
    

    注意:CentOS6 以前的版本配置文件为 /etc/syslog.conf

    # Provides UDP syslog reception
    #$ModLoad imudp
    #$UDPServerRun 514
    
    # Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    

    $ModLoad imudp$UDPServerRun 514 或者 $ModLoad imtcp$InputTCPServerRun 514 的注释标记去掉。

    • 重启 syslog 服务。
    service rsyslog restart
    
    • 关闭防火墙或者打开 514 端口。
    service iptables stop
    

    搭建 Linux 系统 syslog 客户端。

    • 修改 syslog 配置文件,设置日志上报服务端。
    #*.* @@remote-host:514
    

    去掉注释标记,修改 remote-host,为 syslog 服务端地址。

    • 重启 syslog 服务。
    service rsyslog restart
    
    • 关闭防火墙或者打开 514 端口。
    service iptables stop
    

    调试 syslog 日志上报。

    • 在服务端查看客户端上报的日志信息。
    tail -f /var/log/message
    

    Syslog 功能实现

    • 工程中引入 syslog 第三方包。
    <dependency>
      <groupId>org.syslog4j</groupId>
      <artifactId>syslog4j</artifactId>
      <version>0.9.46</version>
    </dependency>
    
    • 实例化 syslog 服务对象,并且设置使用的协议。
    private SyslogIF syslog;
    
    syslog = Syslog.getInstance("TCP");
    
    • 设置工程项目上报 syslog 服务端的地址和端口等配置信息。
    syslog.getConfig().setHost(ip);
    syslog.getConfig().setPort(port);
    syslog.getConfig().setCharSet(encoding);
    
    • 上报日志给服务端。
    syslog.log(level, message);
    

    Syslog 基本说明

    • syslog 的消息格式

    系统消息由一个百分号开始:%FACILITY-SUBFACILITY-SEVERITY-MNEMONIC:Message-text

    名称 说明 备注
    Facility 特性 由 2 个或 2 个以上大写字母组成的代码,用来表示硬件设备、协议或系统软件的型号。
    Severity 严重性 范围为 0~7 的数字编码,表示了事件的严重程度。
    Mnemonic 助记码 唯一标识出错误消息的代码。
    Message-text 消息文本 用于描述事件的文本串。消息中的这一部分有时会包含事件的细节信息,其中包括目的端口号、网络地址或系统内存地址空间中所对应的的地址。
    • syslog 为每个事件赋予几个不同的优先级。
    级别码 级别 说明
    0 LOG_EMERG 紧急情况,需要立即通知技术人员。
    1 LOG_ALERT 应该被立即改正的问题,如系统数据库被破坏,ISP 连接丢失。
    2 LOG_CRIT 重要情况,如硬盘错误,备用连接丢失。
    3 LOG_ERR 错误,不是非常紧急,在一定时间内修复即可。
    4 LOG_WARNING 警告信息,不是错误,比如系统磁盘使用了 85% 等。
    5 LOG_NOTICE 不是错误情况,也不需要立即处理。
    6 LOG_INFO 情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。
    7 LOG_DEBUG 包含详细的开发情报的信息,通常只在调试一个程序时使用。

    相关文章

      网友评论

        本文标题:Syslog 服务搭建与功能实现

        本文链接:https://www.haomeiwen.com/subject/vtuvsxtx.html