文章目录
14、LogStash介绍及安装
官网:
https://www.elastic.co/guide/en/logstash/current/index.html
1、介绍
logstash就是一个具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。是一个input | filter | output 的数据流。
2 、node01机器安装LogStash
下载logstache并上传到第一台服务器的/home/es路径下,然后进行解压
#下载安装包—可以直接将已经下载好的安装包上传到/home/es路径下即可
cd /home/es
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
#解压
tar -zxf logstash-6.7.0.tar.gz -C /export/servers/es/
3、Input插件
1、stdin标准输入和stdout标准输出
使用标准的输入与输出组件,实现将我们的数据从控制台输入,从控制台输出
cd /export/servers/es/logstash-6.7.0/
bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
{
"@version" => "1",
"host" => "node01",
"@timestamp" => 2018-10-13T08:33:13.126Z,
"message" => "hello"
}
2、监控日志文件变化
Logstash 使用一个名叫 FileWatch 的 Ruby Gem 库来监听文件变化。这个库支持 glob 展开文件路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 logstash 会漏过你的数据。
编写脚本
cd /export/servers/es/logstash-6.7.0/config
vim monitor_file.conf
#输入一下信息
input{
file{
path => "/export/servers/es/datas/tomcat.log"
type => "log"
start_position => "beginning"
}
}
output{
stdout{
codec=>rubydebug
}
}
检查配置文件是否可用
cd /export/servers/es/logstash-6.7.0/
bin/logstash -f /export/servers/es/logstash-6.7.0/config/monitor_file.conf -t
成功会出现一下信息:
Config Validation Result: OK. Exiting Logstash
启动服务
cd /export/servers/es/logstash-6.7.0
bin/logstash -f /export/servers/es/logstash-6.7.0/config/monitor_file.conf
发送数据
新开xshell窗口通过以下命令发送数据
mkdir -p /export/servers/es/datas
echo "hello logstash" >> /export/servers/es/datas/tomcat.log
其它参数说明
Path=>表示监控的文件路径
Type=>给类型打标记,用来区分不同的文件类型。
Start_postion=>从哪里开始记录文件,默认是从结尾开始标记,要是你从头导入一个文件就把改成”beginning”.
discover_interval=>多久去监听path下是否有文件,默认是15s
exclude=>排除什么文件
close_older=>一个已经监听中的文件,如果超过这个值的时间内没有更新内容,就关闭监听它的文件句柄。默认是3600秒,即一个小时。
sincedb_path=>监控库存放位置(默认的读取文件信息记录在哪个文件中)。默认在:/data/plugins/inputs/file。
sincedb_write_interval=> logstash 每隔多久写一次 sincedb 文件,默认是 15 秒。
stat_interval=>logstash 每隔多久检查一次被监听文件状态(是否有更新),默认是 1 秒。
3、jdbc插件
jdbc插件允许我们采集某张数据库表当中的数据到我们的logstashe当中来
第一步:编写脚本
开发脚本配置文件
cd /export/servers/es/logstash-6.7.0/config
vim jdbc.conf
input {
jdbc {
jdbc_driver_library => "/home/es/mysql-connector-java-5.1.38.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.31.82:3306/userdb"
jdbc_user => "root"
jdbc_password => "admin"
use_column_value => true
tracking_column => "create_time"
# parameters => { "favorite_artist" => "Beethoven" }
schedule => "* * * * *"
statement => "SELECT * from emp where create_time > :sql_last_value ;"
}
}
output{
stdout{
codec=>rubydebug
}
}
第二步:上传mysql连接驱动包到指定路劲
将我们mysql的连接驱动包上传到我们指定的/home/es/路径下
第三步:检查配置文件是否可用
cd /export/servers/es/logstash-6.7.0/
bin/logstash -f /export/servers/es/logstash-6.7.0/config/jdbc.conf -t
通过之后
Config Validation Result: OK. Exiting Logstash
第四步:启动服务
通过以下命令启动logstash
cd /export/servers/es/logstash-6.7.0
bin/logstash -f /export/servers/es/logstash-6.7.0/config/jdbc.conf
第五步:数据库当中添加数据
在我们的数据库当中手动随便插入数据,发现我们的logstash可以进行收集
4 systlog插件
syslog机制负责记录内核和应用程序产生的日志信息,管理员可以通过查看日志记录,来掌握系统状况
默认系统已经安装了rsyslog.直接启动即可
编写脚本
cd /export/servers/es/logstash-6.7.0/config
vim syslog.conf
input{
tcp