Logstash 日志搜集处理框架 安装配置
0. 介绍
Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
http://kibana.logstash.es/content/logstash/
风来了.fox
1.下载和安装
下载地址
https://www.elastic.co/downloads/logstash
目前最新版 2.4.0
这里使用 TAR.GZ 源码安装,即方式一
方式一:TAR
wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz tar -zxvf logstash-2.4.0.tar.gz
方式二:deb
curl -L -O https://download.elastic.co/logstash/logstash/packages/debian/logstash-2.4.0_all.deb sudo dpkg -i logstash-2.4.0_all.deb
方式三:rpm
curl -L -O https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.4.0.noarch.rpm sudo rpm -vi logstash-2.4.0.noarch.rpm
这里是方式一后续操作
2.配置
创建配置目录
先进入 Logstash 根目录
mkdir -p etc vim etc/www.lanmps.com.conf
etc/test.conf 文件内容
input { file { type => "nginx-access" path => ["/www/wwwLogs/www.lanmps.com/*.log"] start_position => "beginning" } } filter { grok { "message"=>"%{IPORHOST:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\" (%{HOSTNAME:domain}|-) %{NUMBER:response} (?:%{NUMBER:bytes}|-) (%{QS:referrer}) %{QS:agent} \"(%{WORD:x_forword}|-)\" (%{URIHOST:upstream_host}|-) (%{NUMBER:upstream_response}|-) (%{WORD:upstream_cache_status}|-) %{QS:upstream_content_type} (%{USERNAME:upstream_response_time}) > (%{USERNAME:response_time})" #匹配模式 message是每段读进来的日志,IP、HTTPDATE、WORD、NOTSPACE、NUMBER都是patterns/grok-patterns中定义好的正则格式名称,对照上面的日志进行编写,冒号,(?:%{USER:ident}|-)这种形式是条件判断,相当于程序里面的二目运算。如果有双引号""或者[]号,需要在前面加\进行转义。 } kv { source => "request" field_split => "&?" value_split => "=" } #再单独将取得的URL、request字段取出来进行key-value值匹配,需要kv插件。提供字段分隔符"&?",值键分隔符"=",则会自动将字段和值采集出来。 urldecode { all_fields => true } #把所有字段进行urldecode(显示中文) } output { elasticsearch { hosts => ["10.1.5.66:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" document_type => "%{type}" } }
配置说明
http://kibana.logstash.es/content/logstash/plugins/input/file.html
2.2 Nginx 日志格式定义
log_format access '$remote_addr - $remote_user [$time_local] "$request" $http_host $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $upstream_addr $upstream_status $upstream_cache_status "$upstream_http_content_type" $upstream_response_time > $request_time';
3.启动和停止
3.1测试命令
测试logstash
bin/logstash -e 'input { stdin { } } output { stdout {codec=>rubydebug} }'
然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,然后看看会返回什么结果!
3.2 测试配置文件是否 正确
bin/logstash -t -f etc/
3.3 启动
加载 etc文件夹下所有 *.conf 的文本文件,然后在自己内存里拼接成一个完整的大配置文件
bin/logstash -f etc/
后台运行
nohup bin/logstash -f etc/ &
3.4停止
查找进程 ID
ps -ef |grep logstash
KILL 他
kill -9 id
4.高级配置
http://kibana.logstash.es/content/logstash/get_start/full_config.html
http://kibana.logstash.es/content/logstash/plugins/output/elasticsearch.html
插件安装
http://www.jianshu.com/p/4fe495639a9a
5.插件
5.1 grok,useragent,urldecode和kv插件功能
./bin/logstash-plugin install kv ./bin/logstash-plugin install urldecode ./bin/logstash-plugin install grok ./bin/logstash-plugin install useragent
使用方式
input { file { path => "/home/vovo/access.log" #指定日志目录或文件,也可以使用通配符*.log输入目录中的log文件。 start_position => "beginning" } } filter { grok { match => { "message"=>"%{IPORHOST:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\" (%{HOSTNAME:domain}|-) %{NUMBER:response} (?:%{NUMBER:bytes}|-) (%{QS:referrer}) %{QS:agent} \"(%{WORD:x_forword}|-)\" (%{URIHOST:upstream_host}|-) (%{NUMBER:upstream_response}|-) (%{WORD:upstream_cache_status}|-) %{QS:upstream_content_type} (%{USERNAME:upstream_response_time}) > (%{USERNAME:response_time})" } } kv { source => "request" field_split => "&?" value_split => "=" } #再单独将取得的URL、request字段取出来进行key-value值匹配,需要kv插件。提供字段分隔符"&?",值键分隔符"=",则会自动将字段和值采集出来。 urldecode { all_fields => true } #把所有字段进行urldecode(显示中文) }
x.报错
x.1 Pipeline aborted due to error {:exception=>”LogStash::ConfigurationError”,
原因:这类错误都是 参数不存在或参数写的不对造成,
例如 elasticsearch 新版host已改为hosts,port 已删除

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hive MetaStore同步方法
我们知道,Hive在方便的用SQL方式管理Hadoop的数据的时候,使用了MetaStore来保存所有表的信息,例如表名,字段名,类型,分隔符,序列化的方式等等。当我们使用OSS作为我们的数据存储的时候,我们会创建很多的外表,例如 CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User') COMMENT 'This is the page view table' PARTITIONED BY(dt STRING, country STRING) LOCATION 'OSS://buc
- 下一篇
Hadoop、MapReduce、YARN和Spark的区别与联系
Hadoop、MapReduce、YARN和Spark的区别与联系 转载:http://www.aichengxu.com/view/1103036 2015-03-17 16:37 本站整理 浏览(454) (1) Hadoop 1.0 第一代Hadoop,由分布式存储系统HDFS和分布式计算框架 MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个 TaskTracker组成,对应Hadoop版本为Hadoop 1.x和0.21.X,0.22.x。 (2) Hadoop 2.0 第 二代Hadoop,为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题而提出的。针对Hadoop 1.0中的单NameNode制约HDFS的扩展性问题,提出了HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展;针对Hadoop 1.0中的MapReduce在扩展性和多框架支持方面的不足,提出了全新的资源管理框架YARN(Yet Another Resour...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境