【环境部署】ELK之Logstash7.8
前言:最近一直在全文搜索,ELK三件套使用了EK两个了,今天抽空玩了玩Logstash7.8,本篇文章基于centos7.x环境实体安装,基于docker版本的随后补上.
系统环境:CentOS Linux release 7.6.1810 (Core)
ELK环境:Elastic search 7.8.0,Kibana7.8.0 Java8/Java14 (es单独使用的openJDK14)
原则:ELK三件套大小版本号保持一致,避免一些不必要的麻烦.
贴一下历史版本地址,最新版已经到了7.13.x了.
https://www.elastic.co/cn/downloads/past-releases#logstash

安装步骤:
1.上传,解压,重命名,赋权
rz -y xxxx.gz (需要安装rz环境)
tar -zxvf xxxx.gz (如果是zip版本,使用unzip或者其他工具)
mv logstash.7.8 logstash (重命名)
chmod -R 777 logstash (es不能root启动,但是logstash是可以的,无需修改所属,但是需要授权下,避免无法读取一些日志文件)
2.使用自定义配置,我们这里复制一份 logstash-simple.conf
cp logstash-sample.conf logstash.conf (路径在logstash/conf)
3.步骤2的文件修改,把下边的demo贴进去(这里是系统日志和安全日志做测试,网上很多也是根据这个演示的)
input {
file {
path => "/var/log/messages"
type => "systemlog"
start_position => "beginning"
stat_interval => "3"
}
file {
path => "/var/log/secure"
type => "securelog"
start_position => "beginning"
stat_interval => "3"
}
}
output {
if [type] == "systemlog" {
elasticsearch {
hosts => ["localhost:9200"]
index => "system-log-%{+YYYY.MM.dd}"
}
}
if [type] == "securelog" {
elasticsearch {
hosts => ["localhost:9200"]
index => "secure-log-%{+YYYY.MM.dd}"
}
}
}
4.指定JDK路径(如果全局已经做了JDK环境,这个可以省略.注意7.8不能使用jdk14,不然无法启动,有些东西迭代掉了,这里不贴截图了,忘记截图了),下边演示下logstash自定义指定版本的JDK
1.修改 /bin/logstash
最后 fi下边添加(路径改成自己的)
export JAVA_HOME=/usr/local/xxx/jdk
2.修改 /bin/logstash.lob.sh
export JAVA_HOME=/usr/local/xxx/jdk
5.logstash的pipelines.yml修改下.路径config.

6.启动,执行命令参考如下:
这里使用非后台执行的方式,当然可以执行后台运行的方式.执行路径 logstash
./bin/logstash -f ./config/logstash.conf
7.Successfully started Logstash API endpoint {:port=>9600} 提示这个,启动成功.如果其实权限或者安全问题,demo中的两个日志文件无法访问的话,使用root用户启动logstash
8.kibana中展示效果如下:

总结:
1.如果需要ruby脚本,单独去安装下ruby环境.
2.如果需要mysql,7.x需要自己开启下. 进入logstash安装目录的bin目录下,输入:logstash-plugin.bat install logstash-input-jdbc