ELK( ElasticSearch+ Logstash+ Kibana)分布式日志系统部署文档
2015-03-25 19:33
731 查看
开始在公司实施的小应用,慢慢完善之~~~~~~~~文档制作了好作运维同事之间的前期普及。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
软件下载地址:
https://www.elastic.co/downloads
在实际部署中,根据服务器的性能配置,ELK可部署在同一个机器上,也可以分别安装在不同的机器上,只要能保证网络连通。但建议ElasticSearch和Kibana部署在同一个机器上,这样可以加快检索速度。
Shipper:分布式部署在各应用服务器,收集并转发日志。
Broker:将日志集中收集、排队并转发。
Indexer:收集和转发数据至ElasticSearch。在ElasticSearch建立索引并存储日志数据。
Webinterface:基于nginx的Kibana3http访问接口,提供UI搜索ElasticSearch的数据。
一,ElasticSearch
1,解压elasticsearch-1.4.4.tar.gz
2,启动命令bin/elasticsearch
3,通过http://ip:9200/验证
二,Logstash
1,解压logstash-1.4.2.tar.gz
2.a作为indexer文件的logstash.conf(样例,从REDIS里获取数据)
input{
redis{
host=>'10.x.x.x'(REDIS的地址)
data_type=>'list'
port=>"6379"
key=>'logstash:redis'
type=>'redis-input'
}
}
output{
elasticsearch{
host=>"10.x.x.x"(elasticsearch的地址)
}
}
2.b作为shipper的logstash.conf配置(样例,将日志注入REDIS,可作过滤)
input{
file{
type=>"app_ip_java_debug"
path=>"/var/logs/tomcat/*.out"
}
}
#filter{
#grep{
#match=>["@message","freshclam"]
#}
#}
output{
redis{
host=>'10.x.x.x'(送出到REDIS的地址)
data_type=>'list'
key=>'logstash:redis'
}
}
3,启动命令bin/logstashagent-flogstash.conf
三,Redis
1,下载redis-2.8.18.tar.gz
2,安装参考http://blog.csdn.net/testcs_dn/article/details/39756477
四,Kibana
1,解压kibana-4.0.0-linux-x64.tar.gz
2,编辑conf/kibana.yml文件(将elasticseach服务地址定位)
elasticsearch_url:"http://localhost:9200"
3,启动命令bin/kibana
4,通过http://ip:5601/验证
五,附录(网上其它类似配置和搜索条件)
以nginx访问日志为例,配置如下:
1)Shipper.conf
input{
file{
type=>"nginx"
path=>["/nginx/path/logs/access.log"]
start_position=>"beginning"
sincedb_path=>"/some/place/sincedb_nginx"
}
}
filter{
grok{
match=>["message","%{IP:client}(%{USER:indent}|-)(%{USER:auth}|-)\[%{HTTPDATE:local_time}\]\"%{WORD:method}(?<request_url>%{URIPATH})(?<request_params>%{URIPARAM})HTTP/%{NUMBER:protocol}\"%{NUMBER:status}%{NUMBER:bytes_sent}%{QS:http_referer}%{QS:user_agent}"]
}
date{
locale=>"en"
match=>["local_time","dd/MMM/YYYY:HH:mm:ssZ"]
timezone=>"Asia/Shanghai"
}
}
output{
redis{
host=>"192.168.1.130"
port=>6379
data_type=>"list"
key=>"nginx"
}
}
2)Indexer.conf
Lucene的语法规范
常用的有以下几种
1)逻辑查询
2)范围查询
3)子查询
4)通配符
5)保留字符转义
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
软件下载地址:
在实际部署中,根据服务器的性能配置,ELK可部署在同一个机器上,也可以分别安装在不同的机器上,只要能保证网络连通。但建议ElasticSearch和Kibana部署在同一个机器上,这样可以加快检索速度。
Shipper:分布式部署在各应用服务器,收集并转发日志。
Broker:将日志集中收集、排队并转发。
Indexer:收集和转发数据至ElasticSearch。在ElasticSearch建立索引并存储日志数据。
Webinterface:基于nginx的Kibana3http访问接口,提供UI搜索ElasticSearch的数据。
一,ElasticSearch
1,解压elasticsearch-1.4.4.tar.gz
2,启动命令bin/elasticsearch
3,通过
二,Logstash
1,解压logstash-1.4.2.tar.gz
2.a作为indexer文件的logstash.conf(样例,从REDIS里获取数据)
input{
redis{
host=>'10.x.x.x'(REDIS的地址)
data_type=>'list'
port=>"6379"
key=>'logstash:redis'
type=>'redis-input'
}
}
output{
elasticsearch{
host=>"10.x.x.x"(elasticsearch的地址)
}
}
2.b作为shipper的logstash.conf配置(样例,将日志注入REDIS,可作过滤)
input{
file{
type=>"app_ip_java_debug"
path=>"/var/logs/tomcat/*.out"
}
}
#filter{
#grep{
#match=>["@message","freshclam"]
#}
#}
output{
redis{
host=>'10.x.x.x'(送出到REDIS的地址)
data_type=>'list'
key=>'logstash:redis'
}
}
3,启动命令bin/logstashagent-flogstash.conf
三,Redis
1,下载redis-2.8.18.tar.gz
2,安装参考http://blog.csdn.net/testcs_dn/article/details/39756477
四,Kibana
1,解压kibana-4.0.0-linux-x64.tar.gz
2,编辑conf/kibana.yml文件(将elasticseach服务地址定位)
elasticsearch_url:"http://localhost:9200"
3,启动命令bin/kibana
4,通过
五,附录(网上其它类似配置和搜索条件)
以nginx访问日志为例,配置如下:
1)Shipper.conf
input{
file{
type=>"nginx"
path=>["/nginx/path/logs/access.log"]
start_position=>"beginning"
sincedb_path=>"/some/place/sincedb_nginx"
}
}
filter{
grok{
match=>["message","%{IP:client}(%{USER:indent}|-)(%{USER:auth}|-)\[%{HTTPDATE:local_time}\]\"%{WORD:method}(?<request_url>%{URIPATH})(?<request_params>%{URIPARAM})HTTP/%{NUMBER:protocol}\"%{NUMBER:status}%{NUMBER:bytes_sent}%{QS:http_referer}%{QS:user_agent}"]
}
date{
locale=>"en"
match=>["local_time","dd/MMM/YYYY:HH:mm:ssZ"]
timezone=>"Asia/Shanghai"
}
}
output{
redis{
host=>"192.168.1.130"
port=>6379
data_type=>"list"
key=>"nginx"
}
}
2)Indexer.conf
input{
redis{
host=>"192.168.1.130"
port=>6379
#thesesettingsshouldmatchtheoutputoftheagent
data_type=>"list"
key=>"nginx"
codec=>json
}
}
output{
elasticsearch_http{
host=>"192.168.1.130"
index=>"%{type}-%{+YYYY.MM.dd}"
index_type=>"%{type}"
flush_size=>1000
}
}
Kibana查询介绍
Kibana查询语法遵循常用的有以下几种
1)逻辑查询
操作符:AND(&&),OR(||),NOT(!)
优先级:!>&&>||
默认情况下是或操作,如:field:(helloworld)匹配field值为hello或world的事件
2)范围查询
支持类型:date,数值,字符串
闭区间:[mintomax]等价于>=min&&<=max
开区间:{mintomax}等价于>min&&<max
半开闭区间:[mintomax}{mintomax]
NOTE:对于date和数值类型,min或max可以使用*
3)子查询
使用(),如:field:(helloworld),(helloworld)为一子查询
4)通配符
?:匹配一个字符
*:匹配0个或多个字符
NOTE:通配符会导致使用大量内存,从而降低响应速度,要慎用
5)保留字符转义
保留字符有:+-&&||!(){}[]^"~*?:\/
如果搜索条件中含有保留字符,使用\转义
相关文章推荐
- 部署 elk 日志系统 elasticsearch、logstash、 kibana
- Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
- ELK(ElasticSearch, Logstash, Kibana)实现分布式日志
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(七) elasticsearch.yml配置文件详细说明
- ELK(elasticsearch+logstash+kibana)实现Java分布式系统日志分析架构
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(八) elasticsearch配置外网访问及常见错误处理
- ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用
- ELK(ElasticSearch, Logstash, Kibana)实时日志分析平台部署
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- ELK(ElasticSearch+Logstash+Kibana)+redis日志收集分析系统
- 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统
- Elasticsearch、Logstash、Kibana实施日志监控部署
- [置顶] ELK(ElasticSearch5.1, Logstash5.1, Kibana5.1)搭建实时日志分析平台
- filebeat -> logstash -> elasticsearch -> kibana ELK 日志收集搭建
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十) elasticsearch集群部署
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台 推荐
- ELK (elasticsearch, logstash, kibana) 日志分析平台搭建
- 用Kibana+Logstash+Elasticsearch快速搭建实时日志查询、收集与分析系统