elasticsearch Logstash Kibana简称elk
架构
工作机制
- 在需要收集日志的应用上安装filebeat
- 启动filebeat后,会收集该应用的日志推送给redis,
- 然后logstash从redis中收集日志推送到Elasticsearch
Logstash
主要是用来日志的搜集、分析、过滤日志的工具
tar -zxvf logstash...
mkdir sync
官网下载 http://www.elastic.co/cn/products/logstash
与数据库的同步需要使用连接jar包 下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java 选择与数据库版本一致的jar包上传到sync文件夹
修改配置文件
配置文件 | 文件作用 |
---|
jdbc.conf | logstash启动时加载的文件 | jdbc.sql | 执行的查询语句 | template.json | 输出到es中的数据类型的mapping |
input {
stdin {
}
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/tsdn"
jdbc_user => "root"
jdbc_password => "123456"
jdbc_driver_library => "/home/resources/mysql-connector-java-5.1.38-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "/home/resources/jdbc.sql"
schedule => "* * * * *"
type => "info_type"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => "192.168.168.101:9200"
index => "tsdn_info"
document_id => "%{id}"
template_overwrite => true
template =>"/home/software/logstash5.6.0/
#template模板文件,定义,输入到es中的数据类型的mapping
template/template.json"
}
stdout {
codec => json_lines
}
}
SELECT
i.id as itemId,
i.item_name as itemName,
i.sell_counts as sellCounts
i.updated_time as updated_time
FROM
items i
WHERE
ii.is_main = 1
AND
i.updated_time >= :sql_last_value
配置完成后,启动logstash同步查询
../bin/logstash -f logstash-db-sync.conf
参考 Logstash 安装与使用 (https://blog.csdn.net/HueyLong/article/details/119842817)
nohup ./logstash -f XXXX.conf &
Kibana
是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面
Elasticsearch是集群,只需某台Elasticsearc安装一个Kibana,
需要安装一个head插件。,提供给运维查看数据状态
kibana-5.5.2-linux-x86_64.tar.gz
tar -xvf kibana-5.5.2-linux-x86_64.tar.gz
修改内容
2 server.port: 5601
7 server.host: "192.168.168.101"
21 elasticsearch.url: "http://192.168.168.101:9200"
30 kibana.index: ".kibana"
设置完成后,切换到bin目录,输入./kibana启动kibana(要先启动es)
|