Logstash
Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集 起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
Docker安装Logstash.
1:查找镜像:docker search Logstash.
docker search Logstash
2:下载镜像:
docker pull logstash:5.6
注意:要想查看镜像的版本好TAG,需要在docker hub查看地址如下:https://hub.docker.com进入之后,在页面左上角搜索框搜索
3:查看我们下载好的镜像:docker images
4:运行
参考:https://blog.csdn.net/qq_33547169/article/details/86629261
创建文件夹 (用于容器文件的挂载)
mkdir /usr/local/logstash/config
创建相关配置文件
logstash.yml (空文件就行)
log4j2.properties
logger.elasticsearchoutput.name = logstash.outputs.elasticsearch
logger.elasticsearchoutput.level = debug
pipelines.yml(那个小杠杠很重要)
- pipeline.id: my-logstash
path.config: "/usr/share/logstash/config/*.conf"
pipeline.workers: 3
*.conf 文件
input {
jdbc {
# mysql jdbc connection string to our backup databse 后面的test 对应mysql中的test数据库
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/tensquare_article?characterEncoding=UTF8"
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => "123456"
# the path to our downloaded jdbc driver
jdbc_driver_library => "D:/logstash‐5.6.8/mysqletc/mysqlconnector‐java‐5.1.46.jar"
# the name of the driver class for mysql
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#以下对应着要执行的sql的绝对路径。
statement => "select id,title,content from tb_article"
#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为 每分钟都更新
schedule => "* * * * *"
}
}
output {
elasticsearch {
#ESIP地址与端口
hosts => "localhost:9200"
#ES索引名称(自己定义的)
index => "tensquare"
#自增ID编号
document_id => "%{id}"
document_type => "article"
}
stdout {
#以JSON格式输出
codec => json_lines
}
}
启动运行:
docker run -d -p 5044:5044 -p 9600:9600 -it -v /usr/local/logstash/config/:/usr/share/logstash/config/ logstash:5.6