LogStash实践日志分析二:收集数据、入库、数据分析和kibana展示

本文介绍了一种使用 Logstash 的数据收集方案,包括从原始数据源服务器读取并转换数据,然后存储到 Redis 中;接着从 Redis 拉取数据并进行处理后存入 Elasticsearch;最后通过 Kibana 进行数据展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、原始数据源服务器,从日志拉取数据,并转化为utf8编码,增加ip地址,保存到Redis中,上配置如下:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. input {  
  2.     file {  
  3.         path => "/tmp/123server.log"  
  4.         codec => json {  
  5.             charset => "GBK"  
  6.         }  
  7.         start_position => "beginning"  
  8.         sincedb_path => "/dev/null"  
  9.         type => "activitysun"  
  10.     }  
  11. }  
  12.   
  13. filter {  
  14.     date {  
  15.         match => ["timestamp", "UNIX"]  
  16.         remove_field => ["time"]  
  17.     }  
  18.     #ruby {  
  19.     #    code => "event.timestamp.time.localtime"  
  20.     #}  
  21.     mutate {  
  22.         #some pc no host  
  23.     replace => { "host" => "192.168.10.11" }     
  24.     }  
  25. }  
  26.   
  27. output {  
  28.     #stdout {  
  29.     #    codec => plain {  
  30.     #        charset => "UTF-8"  
  31.     #    }  
  32.     #}  
  33.     file {  
  34.         path => "/tmp/logstash.log"  
  35.         codec => json {  
  36.             charset => "UTF-8"  
  37.         }  
  38.     }  
  39.     redis {  
  40.         host => ["192.168.10.18"]  
  41.         port => 16378  
  42.         data_type => "list"  
  43.         key => "123server"  
  44.         codec => json {  
  45.             charset => "UTF-8"  
  46.         }  
  47.     }  
  48. }  

采用如下命令启动

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /data/logstash-2.3.4/bin/logstash -f activitylog.conf  

2、收集服务器,从redis拉取数据,放入elasticsearch,时间做一下处理,方便分析。配置如下:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. input {  
  2.   redis {  
  3.     host => ["192.168.10.18"]  
  4.     port => 26378  
  5.     data_type => "list"  
  6.     key => "123server"  
  7.     codec => json {  
  8.       charset => "UTF-8"  
  9.     }  
  10.     #type => "activitysun"  
  11.   }  
  12. }  
  13.   
  14. filter {  
  15.     ruby {  
  16.         code=>"event['daytag']=event.timestamp.time.localtime.strftime('%Y.%m.%d')"  
  17.     }  
  18. }  
  19.   
  20. output {  
  21.   elasticsearch {  
  22.     hosts => ["127.0.0.1:19200"]  
  23.     index => "%{type}-%{daytag}"  
  24.     #index => "%{type}-%{+yyyy.MM.dd}"  
  25.   }  
  26. }  
3、kibana展示




filebeat.yml



filebeat.prospectors:
- input_type: log
  paths:
    - /log/123.log
    #- /home/haoren/data/filebeat-5.0.2-linux-x86_64/test.log
  encoding: gbk
  symlinks: true
  include_lines: ['\[.*?统计\]','\[.*?结算\]']
  document_type: pchannelserver
  fields_under_root: true
  fields:
    host: 192.168.10.15


processors:
- drop_fields:
    #fields: ["beat.hostname", "beat.name", "beat.version", "input_type", "beat"]
    fields: ["input_type", "beat", "offset", "source"]


output.redis:
  enabled: true
  hosts: ["192.168.10.18"]
  password: "8841c09BAD52E63067C4DA"
  port: 15377
  datatype: list
  key: "filebeat"
  db: 0


output.file:
  enabled: true
  path: "/tmp/filebeat"


output.console:
  enabled: false
logs中就是为我们日常记录的日志文件,你要对起进行分析记录入表。 这些日志文件名都是有一定规则每小时生成一个。拿附件中的文件来说access_log.2009-04-30.17.log 表示2009年4月30日17时的数据。 记录到数据里对应的表为t_userviewlog 表结构如下: F_ID NUMBER(20) N 由名为SEQ_USERVIEWLOG_ID的SEQUENCES生成 F_PHONE VARCHAR2(20) Y 用户手机号 F_TIME VARCHAR2(14) N 访问时间 F_URL VARCHAR2(500) Y 访问的url F_STATECODE NUMBER(5) Y 页面返回状态 F_BYTE NUMBER(10) Y 流量 F_REFERURL VARCHAR2(500) Y 转向URL F_AGENTHEAD VARCHAR2(500) Y 用户手机UA信息 F_SSLMBM VARCHAR2(50) Y 栏目号 F_SSZYBM NUMBER(10) Y 炫铃编号 access_log.2009-04-30.17.log 的文件结构为 客户IP 访问时间 访问的方法、访问的URL、http协议 状态 流量 转向URL 用户UA 192.200.60.7 - - [30/Apr/2009:17:41:44 +0800] "GET /index?lanmu=00050001&PT=800:13115285540 HTTP/1.0" 200 8969 "-" "MAUI WAP Browser" 拿上面为例。是用户访问一个栏目的。访问的URL以/index开头。 要分析出参数名为lanmu值为00050001。这个是栏目号,另外到时这人URL里还会有phone=13115285540这个是代表手机号。也要分析出来。 192.200.60.7 - - [30/Apr/2009:17:41:29 +0800] "GET /um/rd.jsp?gameId=101&id=9009100083 HTTP/1.0" 200 1278 "-" "MAUI WAP Browser" 上面的是访问炫币的地址。以/um/rd.jsp开头 , 到时也会有phone参数要分析出来是用户手机号。参数id为炫铃的编号。也要记录下。 处理完文件后将文件拷贝到另一个目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值