ELK( ElasticSearch+ Logstash+ Kibana)分布式日志系统部署文档

简介:

开始在公司实施的小应用,慢慢完善之~~~~~~~~文档制作 了好作运维同事之间的前期普及。。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

软件下载地址:

https://www.elastic.co/downloads

在实际部署中,根据服务器的性能配置,ELK可部署在同一个机器上,也可以分别安装在不同的机器上,只要能保证网络连通。但建议ElasticSearch和Kibana部署在同一个机器上,这样可以加快检索速度。

Shipper: 分布式部署在各应用服务器,收集并转发日志。

Broker:将日志集中收集、排队并转发。

Indexer:收集和转发数据至ElasticSearch。在ElasticSearch建立索引并存储日志数据。

Web interface:基于nginx的Kibana3 http访问接口,提供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/logstash agent -f logstash.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:ss Z" ]

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
 # these settings should match the output of the agent
 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查询语法遵循Lucene的语法规范

常用的有以下几种

1)逻辑查询

操作符:AND(&&), OR(||), NOT(!)
优先级:! > && > ||
默认情况下是或操作,如:field:(hello world)匹配field值为hello或world的事件

2)范围查询

支持类型:date,数值,字符串
闭区间:[min to max] 等价于 >=min && <= max
开区间:{min to max} 等价于 >min && <max
半开闭区间: [min to max} {min to max]
 
NOTE: 对于date和数值类型,min或max可以使用*

3)子查询

使用(),如: field:(hello world),(hello world)为一子查询

4)通配符

?:匹配一个字符
*: 匹配0个或多个字符
 
NOTE:通配符会导致使用大量内存,从而降低响应速度,要慎用

5)保留字符转义

保留字符有:+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
如果搜索条件中含有保留字符,使用\转义
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
602 122
基于docker搭建监控系统&日志收集
|
9月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
5月前
|
JSON Java API
(ELK)ElasticSearch8.7 搭配 SpringDataElasticSearch5.1 的使用
截至2023/7/11日,全网最全最直白的SpringDataElasticSearch5.1
366 3
|
6月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
781 2
|
8月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
6月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1146 64
搭建ELK日志收集,保姆级教程
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
877 90
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
存储 监控 安全

热门文章

最新文章