安装环境
软件环境 | 版本 |
---|---|
操作系统 | Windows 10 prefessional |
容器工具 | Docker Desktop for Windows |
容器可视化工具 | Kitematic |
命令行工具 | PowerShell |
1.安装Logstash
搜索Logstash镜像
docker search logstash
下载镜像
docker pull elastic/logstash:6.8.2
logstash的版本最好与elastic保持一致
创建容器
docker run -it -d --name logstash -p 5044:5044 -p 9600:9600 -v /d/Share/Logstash/Config/:/usr/share/logstash/config/ elastic/logstash:6.8.2
-v 主机目录:容器目录 命令是将主机目录映射到容器目录下。上述代码中的/d/Share/Logstash/Config/代表主机Windows操作系统中的D:/Share/Logstash/Config/,/usr/share/logstash/config/代表容器Linux操作系统中的目录
2.配置Logstash
进入命令行交互界面
docker exec -it logstash /bin/bash
打开并浏览目录
#浏览根目录
ls
#打开config目录
cd config
#浏览config目录
ls
#打开编辑logstash.yml配置文件
vi logstash.yml
#打开编辑pipelines.yml配置文件
vi pipelines.yml
#返回上级目录
cd ../
#打开pipeline目录
cd pipeline
#浏览pipeline目录
ls
#打开编辑logstash.conf配置文件
vi logstash.conf
编辑logstash.yml配置文件
http.host: "0.0.0.0"
xpack.management.elasticsearch.hosts: ["https://127.0.0.1:9200"]
编辑pipelines.yml配置文件
#默认管道(管道标识、配置文件路径)
- pipeline.id: main
path.config: "/usr/share/logstash/pipeline/"
#自己添加的管道(支持多个管道)
- pipeline.id: mypipe
path.config: "/usr/share/logstash/config/logstash.conf"
编辑logstash.conf配置文件
#数据输入(支持http\数据库\消息队列等)
input {
beats {
port => 5044
}
}
#数据输出
output {
#数据输出至Elasticsearch
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
保存文件并退出编辑器。
退出命令行交互界面
exit
重启容器
docker restart logstash
3.数据库连接配置
logstash支持从http\tcp端口、数据库(MySQL\ORACLE\SQLServer)、消息队列(Kafka、RabbitMQ)等输入数据。下面以SQL Server数据库的连接为例说明。
以root权限进入命令行交互界面(后续操作中需要root权限)
docker exec -it --user root logstash /bin/bash
安装gem组件(用于后续安装数据库驱动插件)
yum install gems
修改gem数据源地址
#添加新的数据源地址,移除原有数据源地址
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
#查看当前数据源地址列表
gem sources -l
打开logstash的Gemfile文件
vi Gemfile
修改Gemfile首行数据源地址
source https://gems.ruby-china.com/
保存并退出编辑器。
打开logstash的bin目录,安装logstash-input-jdbc插件
#打开bin目录
cd bin
#浏览bin目录
ls
#安装jdbc插件
logstash-plugin install logstash-input-jdbc
下载sqljdbc驱动包,拷贝至主机共享文件目录。
下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=55539
打开并编辑logstash.conf配置文件,添加jdbc配置项
input {
jdbc {
#数据库驱动
jdbc_driver_library => "/usr/share/logstash/config/mssql-jdbc-7.0.0.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
#数据库连接字符串
jdbc_connection_string => "jdbc:sqlserver://192.168.199.203:1433;DatabaseName=BTPreservation;"
jdbc_user => "admin"
jdbc_password => "Admin123"
# schedule => 分 时 天 月 年
# schedule => * 22 * * * //will execute at 22:00 every day
schedule => "* * * * *"
jdbc_paging_enabled => true
jdbc_page_size => 1000
clean_run => false
use_column_value => true
#索引的类型
#type => "advancelist"
}
}
保存并退出编辑器。
退出命令行交互界面
exit
重启容器
docker restart logstash