日志处理程序员

Syslog 服务搭建与功能实现

2017-09-18  本文已影响312人  58bc06151329

文前说明

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

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

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

Syslog 服务搭建

搭建 Linux 系统 syslog 服务端。

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 的注释标记去掉。

service rsyslog restart
service iptables stop

搭建 Linux 系统 syslog 客户端。

#*.* @@remote-host:514

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

service rsyslog restart
service iptables stop

调试 syslog 日志上报。

tail -f /var/log/message

Syslog 功能实现

<dependency>
  <groupId>org.syslog4j</groupId>
  <artifactId>syslog4j</artifactId>
  <version>0.9.46</version>
</dependency>
private SyslogIF syslog;

syslog = Syslog.getInstance("TCP");
syslog.getConfig().setHost(ip);
syslog.getConfig().setPort(port);
syslog.getConfig().setCharSet(encoding);
syslog.log(level, message);

Syslog 基本说明

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

名称 说明 备注
Facility 特性 由 2 个或 2 个以上大写字母组成的代码,用来表示硬件设备、协议或系统软件的型号。
Severity 严重性 范围为 0~7 的数字编码,表示了事件的严重程度。
Mnemonic 助记码 唯一标识出错误消息的代码。
Message-text 消息文本 用于描述事件的文本串。消息中的这一部分有时会包含事件的细节信息,其中包括目的端口号、网络地址或系统内存地址空间中所对应的的地址。
级别码 级别 说明
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 包含详细的开发情报的信息,通常只在调试一个程序时使用。
上一篇 下一篇

猜你喜欢

热点阅读