简介:Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
集群logstash部署在哪台服务呢?
答:logstash是用来抽取日志到es的,所以logstash需要和日志服务放到同一台服务器上,有多台日志服务,每台日志服务器都需要安装logstash。
1、环境要求:
JDK:jdk
ES:logstash-7.9.3
2、安装&下载
jdk安装请参考:https://www.toutiao.com/i6892997105107862027
logstash下载:https://www.elastic.co/cn/downloads/logstash
wget命令下载:
#进入opt 目录
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.3.tar.gz
解压文件:
[root@prod-dms-0930 opt]$ tar-zxvf logstash-7.9.3.tar.gz
3、参数配置
修改参数配置
[root@prod-dms-0930 ~]$ vim /etc/security/limits.conf
# 最下方添加以下参数
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
# 保存退出>
[root@prod-dms-0930 config]$ :wq
# 生效文件
[root@prod-dms-0930 ~]$ sysctl -p
# 进入config目录下 修改jvm.options文件
[root@prod-dms-0930 config]$ vim jvm.options
# 修改以下配置
-Xms512m
-Xmx512m
# 保存退出>
[root@prod-dms-0930 config]$ :wq
#继续修改logstash-sample.conf文件
[root@prod-dms-0930 config]$ vim logstash-sample.conf
# path :根据自己的业务日志路径修改
# file:多个业务日志,可配置多个
# elasticsearch: 最下边配置指向es集群
input{
file{
path => ["/opt/dmscloud/logs/vehicle/logs.log"]
add_field => {"service"=>"vehicle"}
codec => multiline {
pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
negate => true
what => "previous"
}
}
file{
path => ["/opt/dmscloud/logs/service/logs.log"]
add_field => {"service"=>"service"}
codec => multiline {
pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
negate => true
what => "previous"
}
}
}
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:logDate}\s*\|\-%{NOTSPACE:level}\s*userId:%{DATA:userId}\s*\[%{DATA:thread-id}\]\s*%{GREEDYDATA:msginfo}" ]
}
date {
match => ["logDate", "yyyy-MM-dd HH:mm:ss.SSS"]
}
}
output{
elasticsearch{
hosts => ["127.18.9.30:9200","127.18.9.31:9200","127.18.9.32:9200"]
index => "logstash-ops-log-%{+YYYY.MM}"
template_overwrite => true
}
}
4、创建用户(用来启动logstash)
logstash默认不允许使用root用户运行,使用root启动会报错误:
创建用户:
# 创建一个用户名为:logstash
[root@prod-dms-0930 ~]$ useradd logstash
# kibana
[root@prod-dms-0930 ~]$ passwd logstash
# 接下来输入两次密码 就ok了,
# 为了方便记,我的用户名和密码是一样的
# logstash
[root@prod-dms-0930 ~]$ chown -R kibana@kibana /opt
# 给需要操作的目录添加权限,根据情况而定
# 比如:日志输出目录,opt目录等
# 切换用户
[root@prod-dms-0930 ~]$ su kibana
# 进入bin目录
[kibana@prod-dms-0930 ~]$ cd /opt/elk/elasticsearch-7.9.3/bin
# 启动
[kibana@prod-dms-0930 bin]$ nohub ./kibana -d &
查看进程: ps -ef | grep logstash
test执行该命令:
./logstash -e 'input {
stdin {} } output { stdout {} }'
看到下边信息,说明成功
也可以在浏览器中通过kibana查看
启动成功后,可以把日志文件放到日志目录中,在kibana中进行查看测试OK
elasticsearch部署:https://www.toutiao.com/i6893015843257451020/
kibana部署:https://www.toutiao.com/i6893050802521408011/