ELK部署文档--logstash

ELK部署文档--logstash

2023年7月17日发(作者:)

ELK部署⽂档--logstashELK是三个开源软件的缩写,分别表⽰:Elasticsearch , Logstash, Kibana ,

它们都是开源软件。新增了⼀个FileBeat,它是⼀个轻量级的⽇志收集处理⼯具(Agent),Filebeat占⽤资源少,适合于在各个服务器上搜集⽇志后传输给Logstash。这是⼀个最简单的架构图:filebeat ==> logstash ==> elasticsearch ==> kibana资源准备注:elk全家桶各个应⽤版本需⼀致java版本java版本要求jdk1.8+,查看版本:java -version创建⽤户elk需要⽤⾮root⽤户部署,因此需要创建⼀个账号⽤于部署useradd elk修改⽬录的权限,给elk赋权chown elk:elk /data/software/elk -Rlogstash是⼀个开源的数据处理⼯具,可以同时从多个数据源收集数据,并对其进⾏特定格式转换,再输出到elasticsearch或其它数据储存⼯具logstash默认端⼝为9600解压安装包到指定⽬录/data/software/elktar -vxf logstash-7.15.2-linux-x86_ -C /data/software/elk在config⽬录下创建配置⽂件vim put { beats { port => 5044 # 输⼊端⼝号 }}filter { grok { # 可配置多个grok,按照顺序进⾏匹配 match =>{ } match =>{ } match =>{ } }}output { elasticsearch { hosts => ["176.16.9.3:9200"] index => "xc-syslog-%{+YYYY-MM-dd}" user => "elastic" password => "ap20pOPS20" }}# output { # 调试时可输出到终端⽅便查看处理后数据# stdout { codec => rubydebug }# } "message" => "%{MONTH:MONTH} %{MONTHDAY:MONTHDAY} %{TIME:TIME} %{MONTH:MONTH_log} %{MONTHDAY:MONTHDAY_log} %{YEAR:YEAR_log} %{TIME:TIME_log}%{IS "message" => "%{MONTH:MONTH} %{MONTHDAY:MONTHDAY} %{TIME:TIME} %{MONTH:MONTH_log} %{MONTHDAY:MONTHDAY_log} %{YEAR:YEAR_log} %{TIME:TIME_log}%{IS "message" => "%{MONTH:MONTH} %{MONTHDAY:MONTHDAY} %{TIME:TIME} %{MONTH:MONTH_log} %{MONTHDAY:MONTHDAY_log} %{YEAR:YEAR_log} %{TIME:TIME_log}%{IS来⾃不同数据源的数据,在logstash中读取都是⼀⾏⼀⾏的⽂本数据,输出的时候它们都是作为⼀⾏放到输出的message字段中,因此需要对message进⾏切割放⼊不同的字段中,以便后续进⾏分析。在logstash中可以使⽤grok对数据进⾏处理预设匹配规则grok的语法格式%{SYNTAX:SEMANTIC}# SYNTAX是数据⽣成的字段名称,SEMANTIC是匹配出内容的规则(⽤正则表达式匹配出数据)logstash中数据提取需要使⽤正则表达式匹配,官⽅已预设⼀些匹配规则,详细定义参见,以下为常⽤规则:表达式USERNAMEEMAILLOCALPARTEMAILADDRESSINTNUMBERWORDNOTSPACESPACEQUOTEDSTRING名称⽤户名(由数字、⼤⼩写及特殊字符(._-)组成的字符串)⽤户名(⾸位由⼤⼩写字母组成,其他位由数字、⼤⼩写及特殊字符(_.+-=:)组成的字符串)电⼦邮箱地址整数(包括0和正负整数)整数或者⼩数字符串(包括数字和⼤⼩写字母)不带任何空格的字符串空格字符串带引号的字符串例⼦1234、Bob、ndcoder、windcoder_comwindcoder@0、-123String、3529345"This is an apple"IP表达式HOSTPORTPATHURIPROTOURIMONTHMONTHNUMMONTHDAYDAYYEARHOURMINUTESECONDTIMEDATE_USDATE_EUISO8601_TIMEZONETIMESTAMP_ISO8601DATESTAMPHTTPDATEGREEDYDATA⽰例⽇志信息为:Dec 21 02:31:10+08:00 MM_104_F15_XC_MGMT_CE5735_4IP地址(IPv4或IPv6地址)名称主机名(IP)+端⼝路径URI协议完整的URI⽉份名称(英⽂)⽉份数字⽇期数字星期⼏名称年份数字⼩时数字分钟数字秒数字时间美国时间欧洲⽇期格式ISO8601时间格式ISO8601时间戳格式完整⽇期+时间http默认⽇期格式匹配所有剩余的数据127.0.0.1例⼦127.0.0.1:3306http、ftpJan、January03、9、1203、9、31Mon、Monday198600:01:2310-01-1892、10/01/1892/01-10-1892、01/10/1882、01.10.1892+10:23、-10232016-07-03T00:34:06+08:0007-03-2016 00:34:0603/Jul/2016:00:36:53 +0800匹配规则为:"%{MONTH:MONTH} %{MONTHDAY:MONTHDAY} %{TIME:TIME}{ISO8601_TIMEZONE:ISO8601_TIMEZONE} %{WORD:system_name}"⾃定义正则表达式除了可以⽤上述的预设匹配规则之外,还可以⾃定义正则表达式语法格式(?([S+]*))# 数据⽣成的字段名称,[]⾥⾯为⾃定义正则表达式⽰例⽇志信息为:%%01SHELL/5/CMDRECORD(s)[703]:Recorded command information. (Task=VT0, Ip=192.168.144.161, VpnName=, User=huaweiqyw3, AuthenticationMethod="Local-u匹配规则为:"%%%{INT:sys_version}%{EMAILLOCALPART:module}/%{INT:log_level}/%{NOTSPACE:summary_1}:s*(?([d|w|s]*)). (Task=%{WORD:task}, Ip=%{NOTSP在logstash⽬录下启⽤:./bin/logstash -f ./config/ -l ./ --tic-f 为指定配置⽂件-l为指定输出⽇志路径--tic为启⽤⾃动配置加载,每次修改完配置⽂件以后⽆需重启Logstash检查服务:ps -ef | grep logstash报错信息为:could not find java; set JAVA_HOME or ensure java is in PATH解决⽅案:在bin⽬录下⽂件⾥⾯添加 JAVACMD='java的启⽤路径'保存后重新启动

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689542973a264758.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信