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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

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

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

软件下载地址:

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)保留字符转义

保留字符有:+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
如果搜索条件中含有保留字符,使用\转义
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1月前
|
Java 测试技术 Linux
jmeter-分布式部署之负载机的设置
jmeter-分布式部署之负载机的设置
46 1
|
2月前
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
228 0
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
2月前
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
235 1
|
2月前
|
JSON Prometheus Cloud Native
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
|
14天前
|
Docker 容器 关系型数据库
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
本期课程将于4月11日19:00开始直播,内容包括源码编译基础知识和实践操作,课程目标是使学员掌握源码编译部署技能,为未来发展奠定基础,期待大家在课程中取得丰富的学习成果!
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
|
2月前
|
SQL JSON API
ELK技术栈 - Elasticsearch 学习笔记(三)
ELK技术栈 - Elasticsearch 学习笔记(三)
38 0
|
3月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
150 0
|
5天前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
28 3
|
13天前
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
54543 60

热门文章

最新文章