【ELK】ELK菜鸟手记 (一) 环境配置+log4j日志记录——转自Master HaKu

感谢Master HaKu的分享,博客园的账号忘了,文章里面有原文链接,尊重原创
ELK菜鸟手记 (一) 环境配置+log4j日志记录 - Master HaKu - 博客园
# Use a descriptive name for your cluster: # cluster.name: my- application # # ———————————— Node ———————————— # # Use a descriptive name for the node: # node.name: node- 1 # # Add custom attributes to the node: # #node.attr.rack: r1 # # ———————————– Paths ———————————— # # Path to directory where to store the data (separate multiple locations by comma): # path.data: /tmp/elasticsearch/ data # # Path to log files: # path.logs: /tmp/elasticsearch/ logs # ———————————- Network ———————————– # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: localhost # # Set a custom port for HTTP: # http.port: 9200

 

c) 启动Elasticsearch
./bin/elasticsearch

如果没有错误发生,可以进入到下一步的验证环节

d) 验证

可以使用cURL命令:

curl ‘http://localhost:9200/?pretty’

或者

直接用浏览器打开

http://localhost:9200

 

3-2) 安装Logstash

a) 解压安装包logstash-5.2.2.tar.gz

    完整路径如下:

    /usr/local/logstash-5.2.2

b) 编辑配置文件

   cd config

   新建配置文件log4j_es.conf

   vi log4j_es.conf

   内容如下:

input {
    log4j {
        host => "127.0.0.1"
        port => 4560
    }
}

output {
    stdout {
      codec => rubydebug
    }
    elasticsearch{
        hosts => ["localhost:9200"]
        index => "log4j-%{+YYYY.MM.dd}"
        document_type => "log4j_type"
    }
}

c) 启动Logstash

./bin/logstash -f config/log4j-es.conf

 

3-3) 安装Kibana

a) 解压安装包kibana-5.2.2.tar.gz
完整路径如下:
/usr/local/ kibana-5.2.2


b) 编辑配置文件
cd config
vi kibana.yml
内容如下:

# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

server.host: ”localhost”





# The URL of the Elasticsearch instance to use for all your queries. elasticsearch.url: ” http://localhost:9200 ” # Kibana uses an index in Elasticsearch to store saved searches, visualizations and # dashboards. Kibana creates a new index if the index doesn ’ t already exist. kibana.index: “ .kibana ”

c) 启动Kibana

./bin/kibana

 

d) 验证
打开网址:
http://localhost:5601/

见到如下Logo

 

4. Log4j记录日志到Logstash

4-1) 新建maven项目

pom中的关键dependency配置如下:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

4-2) log4j.properties(放在resources文件夹下)

### 设置###
log4j.rootLogger = debug,stdout,D,E,logstash





### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [ %-5p ] %d{yyyy-MM-dd HH:mm:ss, SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到= /Users/bee/Documents/elk/log4j/debug.log### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = /Users/KG/Documents/logs/elk/debug.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出ERROR 级别以上的日志到= /Users/bee/Documents/elk/log4j/error.log ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = /Users/KG/Documents/logs/elk/error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #输出日志到logstash log4j.appender.logstash= org.apache.log4j.net.SocketAppender log4j.appender.logstash.RemoteHost=127.0.0.1 log4j.appender.logstash.port=4560 log4j.appender.logstash.ReconnectionDelay=60000 log4j.appender.logstash.LocationInfo=true

4-3) Java代码(ElkLog4jTest.java):

package org.genesis.arena.elk;

import org.apache.log4j.Logger;

/**
 * Created by KG on 17/3/27.
 */
public class ElkLog4jTest {
    private static final Logger logger = Logger.getLogger(ElkLog4jTest.class);
    public static void main(String[] args) throws Exception {
        logger.debug("This is a debug message!");
        logger.info("This is info message!");
        logger.warn("This is a warn message!");
        logger.error("This is error message!");

        try{
            System.out.println(5/0);
        }catch(Exception e){
            logger.error(e);
        }
    }
}

4-4) 运行结果

[DEBUG] 2017-03-29 12:56:00,454 method:org.genesis.arena.elk.ElkLog4jTest.main(ElkLog4jTest.java:11)
This is a debug message!
[INFO ] 2017-03-29 12:56:00,529 method:org.genesis.arena.elk.ElkLog4jTest.main(ElkLog4jTest.java:12)
This is info message!
[WARN ] 2017-03-29 12:56:00,531 method:org.genesis.arena.elk.ElkLog4jTest.main(ElkLog4jTest.java:13)
This is a warn message!
[ERROR] 2017-03-29 12:56:00,533 method:org.genesis.arena.elk.ElkLog4jTest.main(ElkLog4jTest.java:14)
This is error message!
[ERROR] 2017-03-29 12:56:00,538 method:org.genesis.arena.elk.ElkLog4jTest.main(ElkLog4jTest.java:19)
java.lang.ArithmeticException: / by zero

然后会在Logstash控制台看到输出如下图:

 

5. 连通Kibana

5-1) 打开 http://localhost:5601/

5-2) 创建索引

   还记得我们之前在logstash配置文件中配置的索引吗?

   log4j-%{+YYYY.MM.dd}

  因此,我们应该创建索引为:log4j-*

5-3)验证

 

 

从这里可以看到自己刚才在Java代码中记录的日志。

好了,一切大功告成了!!!

是不是很有成就感啊?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值