经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
安装logstash及logstash的初步使用-处理DNS日志
来源:cnblogs  作者:进击的大佬  时间:2018/9/25 19:17:30  对本文有异议

安装logstash

  1. 需要高版本的java
  2. 使用1.4版本的java会有报错
  3. # 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

以下是一个实例

  1. 需要处理的日志格式: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内容如下

  1. #input  日志文件来源,还可以使用redis等等具体可查询官网的input选项
  2. input {
  3.     file {
  4.     #指定路径
  5.     path => ["/home/dnslog/*.log"]
  6.     }
  7. }
  8. #格式处理
  9. filter{
  10.     #判断message是否含有字符“Respose”
  11.     if "Response" in [message] {
  12.         #通过正则的方式来切割日志,并且赋予需要的数据变量。本文导入了模块logstash-patterns-core
  13.         #logstash-patterns-core此模块来自于github:https://github.com/logstash-plugins/logstash-patterns-core
  14.         grok{
  15.             match =>{
  16.         "message" => "%{BIND9_TIMESTAMP:timestamp} client %{IP:clientip} %{POSINT:clientport}: view %{DATA:view}\:\ %{DATA:query} IN %{DATA:aaa} %{DATA:status} \+ %{GREEDYDATA:res}"
  17.         }
  18.     }
  19.         #在此通过正则过滤
  20.         grok {
  21.         match => {
  22.         #这里的res由上面grok过滤获得
  23.         "res" => ".*?(%{HOSTNAME:query1} %{NONNEGINT:clientport1} IN A %{IP:resolution};)$.*?"
  24.         }   
  25.         }
  26.     #if判断失败的就直接丢弃
  27.     }else {
  28.         drop {}
  29.     }
  30.     #geoip插件通过plugin install 安装,这个插件对移动的地址识别有异常。
  31.     geoip{
  32.     #由以上第二个正则grok过滤得到的resolution获取IP
  33.     source => "resolution"
  34.     target => "geoip"
  35.     #可以注释掉fields,那就是输出完成的geoip的数据。这边只取了需要的
  36.     fields => ["city_name","country_name","region_name"]
  37.     }
  38.  
  39.     #日期插件会替换原本自身的@timestamp项
  40.     date {
  41.     #将日期格式化为标准输出
  42.     match => ["timestamp", "dd-MMM-yyyy HH:mm:ss.SSS"]
  43.     locale => "en"
  44.     timezone => "+00:00"
  45.  
  46. #   target=>"@timestamp"
  47. #   timezone=>"Asia/Shanghai"
  48.     }
  49.     #格式化日志将服务器名称发送过去
  50.     mutate {
  51.     rename => { "[host][name]" => "host" }
  52.     }
  53.     #去除不需要的项
  54.     mutate {
  55.     remove_field => ["_type","_source","path","message", "@version","clientport","clientport1","res"]
  56.     }
  57. }
  58. #输出
  59. output {
  60.     #输出到elasticsearch,并且定义index名字
  61.     elasticsearch{
  62.     index => "logstash_dns%{[host]}_%{+YYYY.MM.dd}"
  63.         hosts => "127.0.0.1:8200"
  64.     }
  65. #输出到界面,以rubydebug的格式,还有json等等格式
  66. stdout {codec => rubydebug} 
  67. }

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号