Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)

 一,介绍说明

1.1, logstash是什么

Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。学习、下载、安装可以参考官方的文档说明:

Logstash:收集、解析和转换日志 | Elastic通过这一灵活且开源的收集、解析和扩充管道,Logstash(Elastic Stack 的一部分)能够整合任何来源、任何格式的数据。免费下载。正在上传…重新上传取消https://www.elastic.co/cn/logstash/官方的三个图很经典,可以帮助我们理解Logstash的作用:

1,采集各种样式、大小和来源的数据

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第1张图片

2,实时解析和转换数据

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第2张图片

3,选择您的存储库,传输您的数据

 Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第3张图片

1.2, Logstash在ELK中的位置

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第4张图片

1.3, Logstash采集Tomcat日志

首先Logstash会对日志文件进行输入,过滤,输出处理。 

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第5张图片

通过Logstash采集Tomcat的日志后,输出到ElasticSearch db里,最后通过图形化方式,例如使用Kibana来展示。

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第6张图片

二,Tomcat安装配置

因为本文是以测试为目的,因此Tomcat使用单节点。下面先进行Tomcat安装及配置。

Apache Tomcat® - Welcome!

 2.1 环境说明

https://img-blog.csdnimg.cn/48d2669a04964f5fa4d24e2870d8dd9f.pnghttps://img-blog.csdnimg.cn/75e1a3aba7f4433ea54f2a61e89f88de.png

安装可以参考这个文章:

Linux安装tomcat_北冥牧之的博客-CSDN博客_linux安装tomcat一、下载tomcat打开tomcat下载页面,tomcat10下载页面:如果你 不想做代码的迁移工作,可以选择Tomcat9及其以下的版本。我们这里是为了安装Tomcat,选择Tomcat9作为演示的版本。二、解压将下载好的Tomcat上传到指定目录,并解压:tar -zxvf apache-tomcat-9.0.58.tar.gz打开对应目录如下图:三、配置jdk环境变量# 编辑配置文件vim /etc/profile# 输入命令,配置jdk环境变量ex https://blog.csdn.net/qq_42971035/article/details/1227786152.2 JDK 安装

下面是我安装的粗略步骤:

用户创建:

#groupadd tomcat 
#useradd -g tomcat tomcat -m

JDK可以去官网下载,可以解压安装,可以rpm安装。本文安装如下:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第7张图片

环境变量配置:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第8张图片

2.3 Tomcat安装

官网下载安装包,解压,修改文件权限为tomcat:tomcat,

Tomcat安装如下:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第9张图片

 2.4 Tomcat配置

环境变量设置
vi /home/tomcat/.bash_profile
# 配置Tomcat环境变量
export CATALINA_HOME=/app/tomcat/
export PATH=$PATH:$CATALINA_HOME/bin

修改配置文件:/app/tomcat/conf/tomcat-users.xml

---------------------------------------------------

......

 
 
 
 
 
 

---------------------------------------------------

启停Tomcat:
su - tomcat
cd /usr/local/tomcat/bin
./startup.sh
./shutdown.sh

访问Tomcat管理页面: 

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第10张图片

三,Logstash安装配置

建议先阅读官方网站:Installing Logstash | Logstash Reference [8.4] | Elastic正在上传…重新上传取消https://www.elastic.co/guide/en/logstash/8.4/installing-logstash.html安装方式有二进制,APT, YUM, Docker的方式,本文选择二进制的方式。

3.1 Logstash基础软件安装

下载安装包Download Logstash Free | Get Started Now | Elastic

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第11张图片

上传到服务器,解压到对于的目录:/app/logstash,修改文件权限为es:es

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第12张图片

3.2 Logstash连接Elasticsearch

3.2.1 设置证书https证书

    从8.0开始您需要为 Logstash 配置身份验证凭据才能建立通信。如果身份验证失败,Logstash 会引发异常,并且处理管道将停止。因此Logstash也需要进行相应的配置。
    Elasticsearch 在启动时会生成自己的默认自签名安全套接字层 (SSL) 证书。Logstash 必须先建立安全套接字层 (SSL) 连接,然后才能将数据传输到安全的 Elasticsearch 集群。Logstash 必须具有签署 Elasticsearch 集群证书的证书颁发机构 (CA) 的副本。

     一般来说,安装ES的时候会通过如下命令创建证书库文件:

elasticsearch-certutil ca
elasticsearch-certutil cert --ca elastic-stack-ca.p12 --dns goya1 --name goya1
elasticsearch-certutil cert --ca elastic-stack-ca.p12 --dns goya2 --name goya2
elasticsearch-certutil cert --ca elastic-stack-ca.p12 --dns goya3 --name goya3

elastic-stack-ca.p12(根证书),goya1.p12(节点1证书),goya2.p12(节点2证书),goya3.p12(节点3证书)。这里我的logstash也是安装在节点1(goya1)上。

logstash 不能够直接使用 PKCS#12类型的证书,所以我们需要用openssl命令去goya1.p12的证书中提取pem证书:
openssl pkcs12 -in goya1.p12 -clcerts -nokeys -chain -out logstash-ca.pem
执行后会得到logstash使用的pem证书,名为 logstash-ca.pem

将其拷贝到/app/logstash/config/certs目录

3.2 配置logstash收集tomcat日志

配置Logstash输出到ES终端
cd /app/logstash/config
[es@goya1 config]$ ls -ltr
......
-rwxr-xr-x. 1 es es   405 Sep 15 02:23 tomcat_log_es.conf
[es@goya1 config]$ cat tomcat_log_es.conf
input {
  file {
    path => "/app/tomcat/logs/tomcat_access_json.*.log"
    start_position => "beginning"
    type => "tomcat_log"
  }
}

output {
  elasticsearch {
    hosts => ["https://192.168.88.5:9200"]
    index => "tomcat_log_%{+YYYY-MM-dd}"
    ssl => true
    ssl_certificate_verification => false
    cacert => "/app/logstash/config/certs/logstash-ca.pem"
    user => "elastic"
    password => "123456"

  }
}

3.3 Tomcat日志格式设置

 有的时候Tomcat日志exception可能由几十行组成,我们需要将多行日志变成一行来收集,因此需要将Tomcat的日志设置为json格式。

vi /app/tomcat/conf/server.xml

在文件末尾添加相应的内容:

......


        prefix="tomcat_access_json" suffix=".log"
        pattern="{"clientip":"%h","ClientUser":"%l","authenticated":"%u","AccessTime":"%t","method":"%r","status":"%s","SendBytes":"%b","Query?string":"%q","partner":"%{Referer}i","AgentVersion":"%{User-Agent}i"}"/>

     
   
 

重新启动tomcat并查看日志,检验是否配置成功,产生新的日志还是需要通过使用浏览器访问8080端口,在Tomcat的demo样例中对tomcat发送请求产生日志。   

/app/tomcat/logs/tomcat_access_json.2022-09-06.log

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第13张图片 ​编辑

 整理一下上图的输出格式显示如下:
{
"clientip":"192.168.88.1",
"ClientUser":"-",
"authenticated":"-",
"AccessTime":"[06/Sep/2022:07:00:36 -0400]",
"method":"GET /examples/jsp/images/return.gif HTTP/1.1",
"status":"200",
"SendBytes":"1231",
"Query?string":"",
"partner":"http://192.168.88.5:8080/examples/jsp/",
"AgentVersion":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}

3.4 启动Logstash

[es@goya1 logs]$ logstash -f /app/logstash/config/tomcat_log_es.conf

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第14张图片

三,验证Tomcat日志数据写入ES

通过运行Tomcat的示例来生成相应的日志:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第15张图片

 

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第16张图片

对应的通过elasticsearch-head 确认数据是否写入了ES中:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第17张图片

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第18张图片

 

 或者Kibana进行查看:

Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_第19张图片

至此,Logstash基础安装配置完成。

 

你可能感兴趣的:(es,tomcat,linux,elk,logstash)