ElasticSearch6.5.4<一>单机部署以及简单尝试
ElasticSearch6.5.4<二>几个重要概念以及常用搜索
ElasticSearch6.5.4<三>中文以及拼音的操作
ElasticSearch6.5.4<四>java使用ES并实战搜索
ElasticSearch6.5.4<五>集群操作
ElasticSearch6.5.4<六>ELK和Logstash同步数据
ElasticSearch6.5.4<七>ES分布式原理以及工作原理
ElasticSearch6.5.4<八>ES常见问题
ELK简介
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
Logstash API
https://www.elastic.co/guide/en/logstash/6.5/index.html
Elasticsearch API
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/index.html
Kibana API
https://www.elastic.co/guide/en/kibana/6.5/index.html
ELK使用
这里用一个案例讲解下ELK,通过Logstash收集mysql数据,然后同步到ElasticSearch然后用Kibana展示,(着重讲解一个下Logstash,因为ElasticSearch和Kibana前面都有讲解)
准备
下载地址
https://www.elastic.co/cn/downloads/past-releases/logstash-6-5-4
解压
unzip logstash-6.5.4.zip
logstash工作流程
Input:logstash支持很多种输入方式,比如beats、log4j、udp、tcp、jdbc、redis、kafka等等
Filter:对Input进行过滤,比如对字段的添加、修改
Output:logstash也支持很多种输出方式,比如es
配置mysql.conf
网上找一个mysql-connector-java-5.1.38.jar
input {
stdin {
}
jdbc {
# 数据库
jdbc_connection_string => "jdbc:mysql://xxx/xxx"
# 用户名密码
jdbc_user => "xxx"
jdbc_password => "xxx"
# jar包的位置
jdbc_driver_library => "/elastic/logstash/config-mysql/mysql-connector-java-5.1.38.jar"
# mysql的Driver
jdbc_driver_class => "com.mysql.jdbc.Driver"
#是否分页,以及分页大小
jdbc_paging_enabled => "false"
#jdbc_page_size => "50000"
statement => "select * from xxx"
#执行时间
schedule => "* * * * *"
#字段
add_field => { "[@metadata][type]" => "content" }
}
}
filter {
mutate {
remove_field => ["@timestamp","@version"]
}
}
output {
if [@metadata][type] == "content"{
elasticsearch {
hosts => "127.0.0.1:9200"
#index名
index => "wechat"
#type
document_type => "content"
#id
document_id => "%{id}"
}
}
}
启动logstash并指定mysql.conf文件
/elastic/logstash/logstash-6.5.4/bin/logstash -f /elastic/logstash/config-mysql/mysql.conf
ps:在启动logstash之前确保启动了es和kibana
总结
ELK每部分的api都比较多,这里只能通过一个例子来说明一下,更多的功能还需要自己去研究