热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ELK2–配置、实践

ELK中,主要关心logstash的配置,es只是作为存储容器。logstash2、rubydebug格式输出.binlogstash-einput{stdin{}}output

ELK中,主要关心logstash的配置,es只是作为存储容器。

logstash

2、rubydebug格式输出

./bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'  

image

3、配置文件 输出到elasticsearch

配置项

input、filter、output

命令

[elk@linux2 elasticsearch-2.3.5]$ ./bin/logstash agent -f my.conf

① my.conf 内容

input {

    file{
        path => "/export/servers/tomcat7/logs/ip.txt"
        start_position => "beginning"
    }
}

output {
    elasticsearch {
        hosts => "192.168.1.204:9200"
        }
    stdout{codec=>rubydebug}
}

#测试时,建议一直保留标准输出,这样可以直观看到变化

读取位置

start_position => "beginning"/"end"  每次从文件什么位置读取。默认为end。
beginning时,会把上次读取位置存在  /root/.sincedb_dbd93513aa1097729e1c1c9ac4b87310 这个文件中。要想每次从头读取,就要删除。

后台启动

 nohup ./bin/logstash agent -f my.conf & 

启动日志存在同级目录nohup.out这个文件里

 


实践一 elk互通

logstash的配置如①

es配置

path.data: /export/servers/elk/elasticsearch-2.3.5/data
path.logs: /export/servers/elk/elasticsearch-2.3.5/logs

network.host: 192.168.1.204
http.port: 9200

kibana配置

server.port: 5601
server.host: "192.168.1.204"

elasticsearch.url: http://192.168.1.204:9200

 

因为在logstash中配置了输出到es,所以要先启动es

ip.txt内容

image

202.99.198.174 - - [25/Aug/2016:14:22:26 +0800] "GET / HTTP/1.1" 200 11217
202.99.198.174 - - [25/Aug/2016:14:22:27 +0800] "GET /tomcat.css HTTP/1.1" 200 5576
202.99.198.174 - - [25/Aug/2016:14:22:27 +0800] "GET /tomcat.png HTTP/1.1" 200 5103

es启动图

上部分信息是启动信息,下面是收到日志信息

image

LS图

同时设置了标准输出,所以窗口也会实时显示日志

image

kibana

image


实践二 自定义字段

准备

1、删除/root/.sincedb_xxx 文件

logstash的配置

grok过滤,指定一些字段

作用:为kibana的图表展示准备字段

建议看官网示例:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

input {

    file{
        path => "/export/servers/tomcat7/logs/ip1.txt"
        start_position => "beginning"
    }
}

filter{

    grok {
        match=>{ "message"=>"%{IP:client} (%{USERNAME:ident}|-) (%{USERNAME:auth}|-) \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:request} (HTTP/%{NUMBER:http_version}|-)\" %{NUMBER:response} %{NUMBER:bytes}" }

    }
}

output {
    elasticsearch {
        hosts => "192.168.1.204:9200"
        }
      stdout{codec=>rubydebug}
}

grok的正则不匹配,就不会出现自定义的字段。kibana的各种图表就没法做了。

正则工具

官方:http://grokdebug.herokuapp.com/(不好访问)

工具:http://tool.lu/regex/

image

image


实践三 制作图表

改filter,其他配置同二。

filter{

    grok {
        match=>{ "message"=>"%{IP:client} (%{USERNAME:ident}|-) (%{USERNAME:auth}|-) \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:request} (HTTP/%{NUMBER:http_version}|-)\" %{NUMBER:response} %{NUMBER:bytes}" }
    }
    geoip {
        source => "client"
    }
}

运行elk,因为加了geoip,kibana首页左边会多很多字段。

image

在图表中生成地理位置信息图

具体操作,参考:

简要:http://my.oschina.net/itblog/blog/547250#OSC_h4_8

丰富:http://www.cnblogs.com/yincheng/p/logstash.html?utm_source=tuicool&utm_medium=referral

image

如果是自定义的index,可能无法制作tile map,参考:Kibana的图形化——Tile Map


实践四 tomcat/logs/project.log

以时间分割日志

2016-08-25 18:03:25
[INFO]-[com.asin.module.industry.member.web.RecommendController.initRecommender()]: 推荐人信息==null

2016-08-25 18:03:25
[ERROR]-[com.asin.module.marketing.bidsale.support.AUpBidSale.update()]: 商家录入数据异常!!!

logstash配置

input {

    stdin{
   
        codec => multiline {
            pattern => "%{DATE} %{TIME}"
            negate => true
            what => "previous"
        }
    }
}

对于日志文件,logstash不是认行,多行可能被放在一个msg里面,叫做一个事件,所以我猜这就是设置codec作用。


实践五 只收集ERROR

input {
   file {
    path => "/export/servers/tomcat7/logs/catalina.out"
    start_position => "beginning"
    codec => multiline {
       pattern => "^20"
       negate => true
       what => "previous"

       charset => "GBK"  #若需要,指定编码
    }
   }
}
filter {
    grok {
        patterns_dir => "/export/servers/elk/logstash-2.3.4/patterns/java"
        match => { "message" => "%{LOGTIME:errtime}\n\[%{LOGLEVEL:level}\]-%{JAVALOGMESSAGE:logmessage}"}
    }
    if [level] != "ERROR" {
          drop {}
    }
}

自定义正则:

LOGTIME 20%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND})


后台运行

elasticsearch: ./bin/elasticsearch –d

logstash: nohup ./bin/logstash agent –f my.conf &

kibana: nohup ./bin/kibana &  (退出ssh会话时,不要直接关闭,要输入  exit 命令)


推荐阅读
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 直播带货系统中的推流技术详解
    本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 1.tarzxfapache-activemq-5.12.0-bin.tar.gztarzxfapache-activemq-5.12.0-bin.tar.gz2.cdapac ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
author-avatar
W14154988
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有