安装logstash

需要高版本的java
使用1.4版本的java会有报错
# Can't start up: not enough memory

查询java信息

rpm -qa | grep java

查询yum源内含有的所有java的安装包

yum -y list java*

选择需要的版本

yum install java-xxx-openjdk.x86_64

安装完成后,验证版本

java -verison

下载logstash

cd /opt/soft

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz

解压

tar zxvf logstash-6.3.2.tar.gz

cd logstash-6.3.2

若需要安装插件,可以通过logstash-plugin 来安装

查看可以安装的插件

./bin/logstash-plugin list

./bin/logstash-plugin install pkg_name

安装插件

https://github.com/logstash-plugins/logstash-patterns-core

需要安装gem

yum install -y rubygem #centos6.5

yum install -y gem #centos7

安装完成后,解压github上的插件然后进入目录执行

gem build *.gemspec

会产生一个新的*.gem文件

./bin/logstash-plugin install *.gem

然后就安装成功了

logstash的使用方式

在任意文件夹下创建一个conf文件(这里演示就直接创建在程序目录下了)

touch /opt/soft/logstash/bin/std.conf

vi /opt/soft/logstash
/bin/std.conf\

以下是一个实例

需要处理的日志格式:17-Jul-2018 10:54:06.822 client 127.0.0.1 18524: view default: kugou.xdwscache.ourwebpic.com IN A NOERROR + NS NE NT ND NC H 25 Response: kugou.xdwscache.ourwebpic.com 50 IN A 127.0.0.1;kugou.xdwscache.ourwebpic.com 50 IN A 127.0.0.1;

std.conf内容如下

#input  日志文件来源,还可以使用redis等等具体可查询官网的input选项
input {
file {
#指定路径
path => ["/home/dnslog/*.log"]
}
}
#格式处理
filter{
#判断message是否含有字符“Respose”
if "Response" in [message] {
#通过正则的方式来切割日志,并且赋予需要的数据变量。本文导入了模块logstash-patterns-core
#logstash-patterns-core此模块来自于github:https://github.com/logstash-plugins/logstash-patterns-core
grok{
match =>{
"message" => "%{BIND9_TIMESTAMP:timestamp} client %{IP:clientip} %{POSINT:clientport}: view %{DATA:view}\:\ %{DATA:query} IN %{DATA:aaa} %{DATA:status} \+ %{GREEDYDATA:res}"
}
}
#在此通过正则过滤
grok {
match => {
#这里的res由上面grok过滤获得
"res" => ".*?(%{HOSTNAME:query1} %{NONNEGINT:clientport1} IN A %{IP:resolution};)$.*?"
}
}
#if判断失败的就直接丢弃
}else {
drop {}
}
#geoip插件通过plugin install 安装,这个插件对移动的地址识别有异常。
geoip{
#由以上第二个正则grok过滤得到的resolution获取IP
source => "resolution"
target => "geoip"
#可以注释掉fields,那就是输出完成的geoip的数据。这边只取了需要的
fields => ["city_name","country_name","region_name"]
} #日期插件会替换原本自身的@timestamp项
date {
#将日期格式化为标准输出
match => ["timestamp", "dd-MMM-yyyy HH:mm:ss.SSS"]
locale => "en"
timezone => "+00:00" # target=>"@timestamp"
# timezone=>"Asia/Shanghai"
}
#格式化日志将服务器名称发送过去
mutate {
rename => { "[host][name]" => "host" }
}
#去除不需要的项
mutate {
remove_field => ["_type","_source","path","message", "@version","clientport","clientport1","res"]
}
}
#输出
output {
#输出到elasticsearch,并且定义index名字
elasticsearch{
index => "logstash_dns%{[host]}_%{+YYYY.MM.dd}"
hosts => "127.0.0.1:8200"
}
#输出到界面,以rubydebug的格式,还有json等等格式
stdout {codec => rubydebug}
}

这样一个DNS的日志格式就处理完成了

安装logstash及logstash的初步使用-处理DNS日志的更多相关文章

  1. 如何在 Ubuntu 14.04 上安装 Elasticsearch,Logstash 和 Kibana

    介绍 在本教程中,我们将去的 Elasticsearch 麋鹿堆栈安装 Ubuntu 14.04 — — 那就是,Elasticsearch 5.2.x,Logstash 2.2.x 和 Kibana ...

  2. Centos7安装elasticsearch、logstash、kibana、elasticsearch head

    环境:Centos7, jdk1.8 安装logstash 1.下载logstash 地址:https://artifacts.elastic.co/downloads/logstash/logsta ...

  3. (转)如何在CentOS / RHEL 7上安装Elasticsearch,Logstash和Kibana(ELK)

    原文:https://www.howtoing.com/install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-rhel-7 如果你 ...

  4. Ubuntu 16.04安装Elasticsearch,Logstash和Kibana(ELK)Filebeat

    https://www.howtoing.com/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-16-04 ...

  5. 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...

  6. 【Docker】:docker安装ELK(logstash,elasticsearch,kibana)

    一:安装logstash 1.拉取镜像 docker pull logstash:5.6.11 2.创建目录 mkdir /docker/logstash cd /docker/logstash 3. ...

  7. 第九章·Logstash深入-Logstash配合rsyslog收集haproxy日志

    rsyslog介绍及安装配置 在centos 6及之前的版本叫做syslog,centos 7开始叫做rsyslog,根据官方的介绍,rsyslog(2013年版本)可以达到每秒转发百万条日志的级别, ...

  8. 第十章· Logstash深入-Logstash与Redis那点事

    Logstash将日志写入Redis 为什么要使用Redis 在企业中,日志规模的量级远远超出我们的想象,这就是为什么会有一家公司日志易专门做日志收集,给大型金融公司收集日志,比如银行,因为你有可能看 ...

  9. CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

    第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...

随机推荐

  1. 【爬坑】运行 Hadoop 的 MapReduce 示例卡住了

    1. 问题说明 在以伪分布式模式运行 Hadoop 自带的 MapReduce 示例,卡在了 Running job ,如图所示 2. 解决过程 查看日志没得到有用的信息 再次确认配置信息没有错误信息 ...

  2. System.IO.Path文件路径类

    Path类的静态属性和方法,此类操作不影响物料文件. 属性 char a = System.IO.Path.VolumeSeparatorChar;//: char b = System.IO.Pat ...

  3. JS控制div跳转到指定的位置的几种解决方案总结

    原文:http://www.jb51.net/article/96574.htm 这篇文章主要介绍了JS控制div跳转到指定的位置的几种解决方案总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考 ...

  4. python第三十二课——栈

    栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹 [注意] 对于栈结构而言:python中没有为其封装特定的函数,我们可以使用list(列表)来模拟栈的特点 使用list对象来模拟栈结构 ...

  5. 面向对象的JavaScript --- 动态类型语言

    面向对象的JavaScript --- 动态类型语言 动态类型语言与面向接口编程 JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承. Jav ...

  6. Spring Boot 扩展点应用之工厂加载机制

    Spring 工厂加载机制,即 Spring Factories Loader,核心逻辑是使用 SpringFactoriesLoader 加载由用户实现的类,并配置在约定好的META-INF/spr ...

  7. 【2018暑假集训模拟一】Day2题解

    T1 园艺工人的求助 [题目描述]终于,在一段繁忙的训练之后,到了NOIP 的举办的时候.同学们坐上了大巴车,享受着沿途的风光,讨论着未解决的问题,憧憬着NOIP 赛场上切题的样子.很快,大巴车到了大 ...

  8. 【转】PHP解析带CDATA的XML方法

    XML文件,如下 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName& ...

  9. MP实战系列(十八)之XML文件热加载

    你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...

  10. JS仿QQ空间鼠标停在长图片时候图片自动上下滚动效果

    JS仿QQ空间鼠标停在长图片时候图片自动上下滚动效果 今天是2014年第一篇博客是关于类似于我们的qq空间长图片展示效果,因为一张很长的图片不可能全部把他展示出来,所以外层用了一个容器给他一个高度,超 ...