前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置ELK技术栈来分析apache tomcat日志

配置ELK技术栈来分析apache tomcat日志

作者头像
字母哥博客
发布2020-09-23 11:32:45
8480
发布2020-09-23 11:32:45
举报
文章被收录于专栏:写字母的代码哥
  • 原作者使用9201端口,官方默认是9200,我做了修改
  • 原作者默认你已经安装了apache tomcat
  • 译者博客:http://www.zimug.com

翻译,原文地址:https://aggarwalarpit.wordpress.com/2015/12/03/configuring-elk-stack-to-analyse-apache-tomcat-logs/

配置ELK技术栈来分析apache tomcat日志

Posted on December 3, 2015 by Arpit Aggarwal

在这篇文章,我将安装ElasticSearch, Logstash and Kibana分析Apache Tomcat服务日志。在安装之前,对各个组件做个简介!

  • ElasticSearch 有强大的搜索功能的无模式数据库,可以简单的很想扩展,索引每一个字段,可以聚合分组数据。
  • Logstash 用Ruby编写的,我们可以使用管道输入和输出数据到任何位置。一个可以抓取,转换,存储事件到ElasticSearch的ETL管道。打包版本在JRuby上运行,并使用几十个线程进行并行的数据处理,利用了JVM的线程功能。
  • Kibana 基于web的数据分析,为ElasticSearch仪表板的工具。充分利用ElasticSearch的搜索功能,以秒为单位可视化数据。支持Lucene的查询字符串的语法和Elasticsearch的过滤功能。

下面,我将开始分别安装技术栈中的每一个组件,下面是步骤:

步骤 1:

下载并解压 ElasticSearch .tar.gz 到一个目录下, 我下载的是 elasticsearch-2.1.0.tar.gz 并且以elasticsearch为文件名解压到/Users/ArpitAggarwal/目录下面

步骤 2:

在bin目录下以./elasticsearch启动elasticsearch服务,如下:

代码语言:javascript
复制
$ cd /Users/ArpitAggarwal/elasticsearch/elasticsearch-2.1.0/bin
$ ./elasticsearch

上面的命令启动的elasticsearch可以通过 http://localhost:9200/ 访问,默认的索引访问地址 http://localhost:9200/_cat/indices?v

如果删除索引(所有),通过如下命令行:

代码语言:javascript
复制
curl -XDELETE 'http://localhost:9200/*/'

步骤 3:

下面,我们安装配置kibana,指向我们的ElasticSearch实例,同样需要下载并解压.tar.gz到目录下,我的是kibana-4.3.0-darwin-x64.tar.gz,以kibana为文件名解压到/Users/ArpitAggarwal/

步骤 4:

修改/Users/ArpitAggarwal/kibana/kibana-4.3.0-darwin-x64/config/kibana.yml配置,指向本地的ElasticSearch实例,替换elasticsearch.url的值为http://localhost:9200

步骤 5:

通过bin目录下的./kibana启动kibana,如下:

代码语言:javascript
复制
$ cd /Users/ArpitAggarwal/kibana/kibana-4.3.0-darwin-x64/bin
$ ./kibana

可以通过 http://localhost:5601/ 访问kibana

步骤 6:

下面,我们安装配置Nginx,指向我们的Kibana实例。同样需要下载并解压.tar.gz到目录下,我的是nginx-1.9.6.tar.gz,以nginx为文件名解压到/Users/ArpitAggarwal/,命令如下:

代码语言:javascript
复制
$ cd nginx-1.9.6
$ ./configure
$ make
$ make install

默认情况下,Nginx将被安装到/usr/local/nginx,但是Nginx提供了指定目录安装的方法,使用--prefix选项。如下:

代码语言:javascript
复制
./configure --prefix=/Users/ArpitAggarwal/nginx

Next, open the nginx configuration file at /Users/ArpitAggarwal/nginx/conf/nginx.conf and replace location block under server with below content: 下面,我们打开配置文件/Users/ArpitAggarwal/nginx/conf/nginx.conf,然后替换location段中的配置,内容如下:

代码语言:javascript
复制
location / {
    # 指向kiban本地实例
    proxy_pass http://localhost:5601;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

步骤 7:

启动 Nginx, 如下:

代码语言:javascript
复制
cd /Users/ArpitAggarwal/nginx/sbin
./nginx

可以通过 http://localhost 访问nginx

步骤 8:

下面,我们安装Logstash,执行如下命令:

代码语言:javascript
复制
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install logstash

上面的命令安装 Logstash 到 /usr/local/opt/。(译者注:此安装方法较特殊,建议参考官网方法)

步骤 9:

我们需要让Logstash将数据从tomcat server日志目录送到ElasticSearch。创建一个目录,我们将创建logstash配置文件,我将它放到/Users/ArpitAggarwal/下,如下:

代码语言:javascript
复制
cd /Users/ArpitAggarwal/
mkdir logstash patterns
cd logstash
touch logstash.conf
cd ../patterns
touch grok-patterns.txt

将如下内容复制到:logstash.conf:

代码语言:javascript
复制
input {
    file {
        path => "/Users/ArpitAggarwal/tomcat/logs/*.log*"
        start_position => beginning
        type=> "my_log"
    }
}
filter {
    multiline {
              patterns_dir => "/Users/ArpitAggarwal/logstash/patterns"
              pattern => "\[%{TOMCAT_DATESTAMP}"
              what => "previous"
    }
    if [type] == "my_log"  and "com.test.controller.log.LogController" in [message] {
        mutate {
                add_tag => [ "MY_LOG" ]
               }
        if "_grokparsefailure" in [tags] {
                  drop { }
              }
       date {
             match => [ "timestamp", "UNIX_MS" ]
             target => "@timestamp"
            }
        } else {
            drop { }
      }
}
output {
   stdout {
          codec => rubydebug
   }
   if [type] == "my_log"  {
                elasticsearch {
                           manage_template => false
                           host => localhost
                           protocol => http
                           port => "9201"
                 }
    }
}

下面,将https://github.com/elastic/logstash/blob/v1.2.2/patterns/grok-patterns的内容复制到 patterns/grok-patterns.txt

步骤10:

使用如下命令,检查logstash的配置

代码语言:javascript
复制
$ cd /usr/local/opt/
$ logstash -f /Users/ArpitAggarwal/logstash/logstash.conf --configtest --verbose —debug

步骤 11:

启动Logstash,使数据送到ElasticSearch

代码语言:javascript
复制
$ cd /usr/local/opt/
$ logstash -f /Users/ArpitAggarwal/logstash/logstash.conf

喜欢 (2)or分享 (0)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-24),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置ELK技术栈来分析apache tomcat日志
    • 步骤 1:
      • 步骤 2:
        • 步骤 3:
          • 步骤 4:
            • 步骤 5:
              • 步骤 6:
                • 步骤 7:
                  • 步骤 8:
                    • 步骤 9:
                    • 步骤10:
                    • 步骤 11:
                    相关产品与服务
                    Elasticsearch Service
                    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档