您好,今天小华来为大家解答以上的问题。logstash集群相信很多小伙伴还不知道,现在让我们一起来看看吧!

logstash集群 logstash集群启动logstash集群 logstash集群启动


logstash集群 logstash集群启动


logstash集群 logstash集群启动


1、学习大数据开发的第三阶段:大数据相关课程的学习场景描述:一个Web应用,前端设置了8个具有相同配置的Tomcat,跑在Nginx反向后。

2、每个Tomcat运行在一个虚拟机上,要求能对Tomcat的访问日志汇总存储并提供一定的分析能力。

3、需要的开源软件:Logstash和Elasticsearch。

4、通过在各个虚拟机上安装Logstash收集Tomcat的日志数据,并存储在ElasticsearLogstash:收集和解析要保存到存储系统中的日志的工具(例如,Elasticsearch)。

5、收集到的还可以使用输入、过滤和输出插件进行丰富和转换。

6、ch中达到日志集中收集和分析的目的。

7、过程有两个步骤:一、配置Tomcat的日志存储格式。

8、编辑Tomcat目录下server.xml,填写如下内容unpackWARs="true" autoDeploy="true">Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" -->directory表示访问日志存储在Tomcat的logs目录中。

9、prefix表示日志文件名以localhost_access_log.开头。

10、suffix表示日志文件名以.txt截尾。

11、pattern="%h %l %u %t "%r" %s %b %D "%{Referer}i" "%{User-Agent}i""pattern这一句非常重要,用于表示日志的存储格式,一般为了方便会使用common或者combined,这两种自定义格式已经可以记录足够详细的信息,我这里使用了自定义方式。

12、在这个pattern描述里:%h表示访问来源的主机名或者IP地址;%l表示客户端的标示,通常是 -;%t表示日志的发生时间戳,用 [ 和 ] 括起来的;"%r"表示用双引号"括起来的访问命令和链接,比如“GET /resource/logo.png”;%s表示HTTP状态码,如200和404等;%b是返回的数据量,以字节为单位;%D表示的响应时间,可以用于分析页面的执行效率;"%{Referer}i"表示用两个双引号括起来的网址,用于告诉这个访问请求是从哪个页面链接过来的;"%{User-Agent}i"表示用双引号括起来的浏览器的HTTP信息,可以得到客户端使用了什么浏览器内核。

13、二、配置Logstash1、在每个虚拟机上传logstash安装文件,安装logstash,以2.2.2版本为例2、创建Logstash的工作目录mkdir /root/logstash_work_dir;mkdir /root/logstash_work_dir/config;mkdir /root/logstash_work_dir/logs;mkdir /root/logstash_work_dir/pid其中/root/logstash_work_dir是工作目录,config目录用于存储Logstash的配置文件,logs目录用于存储Logstash的日志数据,pid目录用于存储Logstash的pid文件。

14、3、设置Logstash的运行脚本,修改/etc/init.d/logstash中,替换其中的代码如下LS_WORK_DIR=/root/logstash_work_dirname=logstashLS_USER=rootLS_HOME=/var/lib/logstashLS_HEAP_SIZE="1g"pidfile=${LS_WORK_DIR}/pid/$name.pidLS_LOG_DIR=${LS_WORK_DIR}/logsLS_LOG_FILE=${LS_WORK_DIR}/logs/$name.logLS_CONF_DIR=${LS_WORK_DIR}/config/root_tomcat.confLS_OPEN_FILES=16384LS_OPTS=""LS_USER和LS_GROUP指定了Logstash进程运行时的用户名和组,我这里使用了root,也可以使用其他权限更低的一般用户和组。

15、LS_CONF_DIR=${LS_WORK_DIR}/config/root_tomcat.conf这一句最重要,指定了Logstash服务运行时的配置文件路径。

16、4、在/root/logstash_work_dir/config/目录中编写Logstash的配置文件root_tomcat.conf,这是本系统最重要的文件。

17、path => "/root/tomcat/logs/localhost_access_log.txt"sincedb_path => "/root/logstash_work_dir/config/sincedb_apache_access_log.txt"type => "apache_access_log"add_field => {"tomcatip" => "10.128.18.61"}filter{if [type] == "apache_access_log" {grok{match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:version})?|-)" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{NUMBER:responsetime} "(?:%{URI:referrer}|-)" %{QS:agent}" }}date{match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]target => ["writetime"]}mutate {convert => {"responsetime" => "integer"output {if [type] == "apache_access_log" {elasticsearch {hosts => ["10.128.18.74:9200","10.128.18.75:9200","10.128.18.77:9200"]index => "logstash-apacheaccesslog-%{+YYYY.MM.dd}"}Logstash的配置文件包括input、filter和output三部分。

18、input部分,使用了file插件。

19、path指定了Logstash扫描的文件,每当有文件变化时,Logstash会读取文件尾部新增的数据;sincedb_path用于存储上一次文件读取的位置信息,如果这个文件不存在,则会从日志文件首部获取所有数据;type用于对这个配置插件做标识,当一个配置文件中有多个数据收集任务时尤其有用;add_field用于标识本机的ip地址,当数据存储在Elasticsearch后,用于区分来自哪一个Tomcat。

20、filter插件,使用了grok、date和mutate三个插件。

21、grok插件用于解析Tomcat的访问日志,logstash自带了COMBINEDAPACHELOG等多个配置模式,但由于我使用了自定义的Tomcat日志配置,这里也自己编写;date部分用于从日志中提取时间戳信息;mutate中用convert将response、byte和responsetime三个解析得到的字符串转化为整5、设置chkconfig的启动命令数integer类型,这个步骤对于后续的分析比较重要,因为这样可以在Elasticsearch中做数值比较运算。

本文到这结束,希望上面文章对大家有所帮助。