安装logstash及logstash的初步使用-处理DNS日志
安装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日志的更多相关文章
- 如何在 Ubuntu 14.04 上安装 Elasticsearch,Logstash 和 Kibana
介绍 在本教程中,我们将去的 Elasticsearch 麋鹿堆栈安装 Ubuntu 14.04 — — 那就是,Elasticsearch 5.2.x,Logstash 2.2.x 和 Kibana ...
- Centos7安装elasticsearch、logstash、kibana、elasticsearch head
环境:Centos7, jdk1.8 安装logstash 1.下载logstash 地址:https://artifacts.elastic.co/downloads/logstash/logsta ...
- (转)如何在CentOS / RHEL 7上安装Elasticsearch,Logstash和Kibana(ELK)
原文:https://www.howtoing.com/install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-rhel-7 如果你 ...
- 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 ...
- 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)
前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...
- 【Docker】:docker安装ELK(logstash,elasticsearch,kibana)
一:安装logstash 1.拉取镜像 docker pull logstash:5.6.11 2.创建目录 mkdir /docker/logstash cd /docker/logstash 3. ...
- 第九章·Logstash深入-Logstash配合rsyslog收集haproxy日志
rsyslog介绍及安装配置 在centos 6及之前的版本叫做syslog,centos 7开始叫做rsyslog,根据官方的介绍,rsyslog(2013年版本)可以达到每秒转发百万条日志的级别, ...
- 第十章· Logstash深入-Logstash与Redis那点事
Logstash将日志写入Redis 为什么要使用Redis 在企业中,日志规模的量级远远超出我们的想象,这就是为什么会有一家公司日志易专门做日志收集,给大型金融公司收集日志,比如银行,因为你有可能看 ...
- CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)
第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...
随机推荐
- Software Engineer’s path to the best annual performance review
http://michaelscodingspot.com/2017/06/04/software-engineers-path-best-annual-performance-review/ How ...
- 【转】Java学习---Java的锁和Mysql的锁机制
[原文]https://www.toutiao.com/i6593861446428262916/ Java和数据库的锁机制 https://www.toutiao.com/i659386144642 ...
- jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器
jQuery 效果函数 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选元素的所有排队函数( ...
- SSL/TLS Diffie-Hellman Modulus <= 1024 位 (LogJam) 使用2048位或更高的Diffie-Hellman
1.http://slproweb.com/products/Win32OpenSSL.html 下载 SSL 并安装 2.设置环境变量,例如工具安装在C:\OpenSSL-Win64,则将C:\O ...
- Python在自动化运维时经常会用到的方法
得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录: ...
- 3675: [Apio2014]序列分割
Description 小H最近迷上了一个分隔序列的游戏.在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列.为了得到k+1个子序列,小H需要重复k次以下的步骤: 1.小H首 ...
- 天地图api地址
天地图地址 http://lbs.tianditu.com/api-new/examples.html 参考资料 http://lbs.tianditu.com/api-new/class.html
- P4279 [SHOI2008]小约翰的游戏
嘟嘟嘟 一道博弈论经典题,nim游戏. 只不过要考虑有奇数个石子为1的堆的时候,为Brother赢.剩下就是nim游戏了. 极简代码 #include<cstdio> using name ...
- 一个web项目web.xml的配置中<context-param>配置作用
<context-param>的作用: web.xml的配置中<context-param>配置作用 1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件 ...
- Python2.7-marshal
marshal模块,和 pickle 模块功能基本相同,也是序列化数据,只不过 marshal 都序列化成二进制数据,由于没有官方统一,不同版本 marshal 的结果也会不一样,所以不推荐使用.ma ...