本文基于Ubuntu 16.04系统。
Graylog2 -具有报警选项的可插入日志和事件分析服务器。
Graylog2官网:https://www.graylog.org/
所需环境:
1. Java (>= 8) Ubuntu 16.04 配置JDK及环境变量
2. MongoDB (>= 2.4)
3. Elasticsearch (>= 2.x)
Graylog2官网安装教程:http://docs.graylog.org/en/2.3/pages/installation/operating_system_packages.html
具体的详细安装过程,我就不在详细写了,网上各种教程多的是,无非就是复制粘贴。
推荐这篇http://blog.topspeedsnail.com/archives/6670,非常详细易懂.
如果在浏览器输入:http://your_ip_or_doamin:9000 能看到Graylog页面,说明安装成功!
注意:
配置Graylog过程中的IP就是服务器公用IP或者域名,如果你没有服务器,可以直接填写127.0.0.1,即本机IP,监听本机的日志。此处我填写的就是127.0.0.1。
Ubuntu系统自带rsyslog服务无需安装,只需要配置一下即可。
1.浏览器打开Graylog页面,选择System—>inputs
2.Select input 选择最后一项 Syslog UDP,然后Launch new input
3.填写对于Title和Port项,然后save
注意:这里port虽然Syslog默认是514,但是由于Ubuntu权限问题,最好大于1024,我们这里填写为5140.
4.更改syslog配置文件
终端输入:sudo vim /etc/rsyslog.conf
添加:
*.* @127.0.0.1:5140;GRAYLOGRFC5424
注意修改为Graylog2中配置的IP加上面的端口号。
5.重启rsyslog服务
终端输入:sudo systemctl restart rsyslog
6.效果查看
浏览器的Graylog页面,在刚才的inputs界面,在刚刚创建的Inputs项上选择show received messages
如果看到如下图,则说明rsyslog配置成功!如果没有请注意检查ip与port是否与填写的一致。
此时Graylog正在检测本机系统的一些日志情况。
Java程序运行于IDEA。
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
要在java程序中使用log4j,首先要下载对应的的jar。
官方地址下载:http://logging.apache.org/log4j/1.2/download.html
新建一个IDEA Java程序,然后将jar导入该工程。
然后在src目录下新建文件log4j.properties,编辑内容为:
log4j.rootLogger=Debug,CONSOLE,syslog
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.SyslogHost=127.0.0.1
log4j.appender.syslog.Facility=local1
log4j.appender.syslog.header=true
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n
注意:log4j.appender.syslog.SyslogHost=127.0.0.1 这一项要修改为Graylog2对应的IP。
代码如下:
import org.apache.log4j.Logger;
public class Main {
private static final Logger logger = Logger.getLogger(Main.class);
public static void main(String[] args) {
logger.info("这是一个info");
logger.error("这是一个error");
logger.debug("这是一个debug");
logger.warn("这是一个warn");
System.out.println(123);
}
}
浏览器进入Graylog界面,点击Search,如下:
如能看到Java程序中输出的日志信息。则配置成功!
至此,你可以在浏览器使用Graylog查看系统(或者服务器)的日志文件,也可以查看Java程序相关的日志。
还可以使用对应功能筛选,管理日志信息。
可视化图形界面,方便舒爽!
参考:
如何在Ubuntu 16.04上使用Graylog 2管理日志
Graylog2+rsyslog+log4j 全过程日志管理环境搭建
Graylog2日志服务安装配置
IDEA下Log4j使用教程