ELK采集tomcat日志
一,软件架构
Nxlog
nxlog 是用 C 语言写的一个跨平台日志收集处理软件。其内部支持使用 Perl 正则和语法来进行数据结构化和逻辑判断操作。不过,其最常用的场景。是在 windows 服务器上,作为 logstash 的替代品运行。
- 官方文档
[https://nxlog.co/products/nxlog-community-edition]
- 下载地址
[https://nxlog.co/products/nxlog-community-edition/download]
Logstash
logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。
- 官方文档
[https://www.elastic.co/guide/en/logstash/current/introduction.html]
- 下载地址
[https://www.elastic.co/cn/downloads]
Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于[云计算])中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
- 官方文档
[https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html]
- 下载地址
[https://www.elastic.co/cn/downloads]
Kibana
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。
- 官方文档
[https://www.elastic.co/guide/en/kibana/current/index.html]
- 下载地址
[https://www.elastic.co/cn/downloads]
(https://www.elastic.co/cn/downloads)
二、安装部署
Nxlog
1. 下载nxlog安装包(这里以windows为例)。
nxlog有ce版本和和EE版本,支持windows、linux等等操作系统。
2. 双击安装
默认安装路径:C:\Program Files (x86)\nxlog
3. 修改配置文件:
修改:C:\Program Files (x86)\nxlog\conf\nxlog.conf
## This is a sample configuration file. See the nxlog reference manual about the
## configuration options. It should be installed locally and is also available
## online at http://nxlog.org/docs/
## Please set the ROOT to the folder your nxlog was installed into,
## otherwise it will not start.
#define ROOT C:\Program Files\nxlog
define ROOT C:\Program Files (x86)\nxlog
Moduledir C:\Program Files (x86)\nxlog\modules
CacheDir C:\Program Files (x86)\nxlog\data
Pidfile C:\Program Files (x86)\nxlog\data\nxlog.pid
SpoolDir C:\Program Files (x86)\nxlog\data
LogFile C:\Program Files (x86)\nxlog\data\nxlog.log
<Extension _syslog>
Module xm_syslog
</Extension>
<Input testfile>
Module im_file
File "D:\\apache-tomcat-7.0.77\\logs\\\*.log"
SavePos TRUE
</Input>
<Output out>
Module om_tcp
Host 192.168.8.83
Port 514
</Output>
<Route 1>
Path testfile => out
</Route>
- 配置路径
名称 | 定义 | 路径 |
---|---|---|
nxlog根目录 | define ROOT() | C:\Program Files (x86)\nxlog |
模块路径 | Moduledir | C:\Program Files (x86)\nxlog\modules |
nxlog缓存数据 | CacheDir | C:\Program Files (x86)\nxlog\data |
pid路径 | Pidfile | C:\Program Files (x86)\nxlog\data\nxlog.pid |
资源池路径 | SpoolDir | C:\Program Files (x86)\nxlog\data |
日志路径 | LogFile | C:\Program Files (x86)\nxlog\data\nxlog.log |
4. 启动nxlog
启动后查看日志,如果logstash未启动会报错
- 正常启动
5.设置nxlog服务
nxlog安装后,默认会在系统穿件一个nxlog的系统服务。可以根据自己的选择配置自动启动。
Logstash安装配置
1. 软件环境说明
软件系统 | 版本 |
---|---|
linux | centos7 64bit |
jdk | 1.8.0.144 64bit linux版本 |
Logstash | 6.1.1 linux |
2. jdk安装(跳过)
3. 官方下载Logstash解压。
cd /opt
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.1.tar.gz
tar -zxvf logstash-6.1.1.tar.gz
#建立软链接
ln -s /opt/logstash-6.1.1/bin/logstash /usr/local/sbin/logstash`
4. 测试Logstash
原理:输入,过滤器,输出
#因为已经加了软链接,所以直接可以输入命令 logstash执行
logstash -e 'input { stdin { } } output { stdout {} }'
输入 hello可以看到logstash直接获取到了hello
5,常用参数
参数 | 用途 |
---|---|
-n | 指定Logstash实例的名称,如果未指定,默认为主机名 |
-f | 指定Logstash配置文件或目录,如果指定目录则合并目录中配置文件 |
-e | 指定Logstash配置数据,以字符串的形式指定,常用于手工测试 |
-l | 指定Logstash日志文件目录,默认安装目录下logs目录 |
–debug | 开启Logstash调试模式 |
–log.level | 指定Logstash日志级别,fatal/error/warn/info/debug/trace |
–config.debug | 指定Logstash打印配置合并日志,开启前提是打开调试模式–debug以及设置日志级别 |
-t | 测试Logstash配置文件,,必须配合-f使用 |
-r | 设置Logstash自动重载配置文件,必须配合-f使用 |
–config.reload.interval | 设置Logstash重载配置周期,默认为3秒 |
–http.host | 设置LogstashAPI监听地址 |
–http.port | 设置LogstashAPI监听端口 |
–quiet | 设置 Logstash为安静模式 |
6. 配置tomcat日志采集
- 在Logstash的bin下面创建nxlog.conf文件。
- 通过tcp的方式接受nxlog采集的日志。
- 配置elasticsearch的地址和index等信息
input {
tcp {
port => 514
}
}
output{
elasticsearch {
hosts => "192.168.8.83:9200"
index => "logstash-test1"
template_overwrite => true
}
}
7. 启动Logstash
logstash -f /opt/logstash-6.1.1/bin/nxlog.conf
8 检查运行正常即可
- Logstash启动较慢,需要等待一会。
Elasticsearch安装启动
1. 软件环境说明
软件系统 | 版本 |
---|---|
linux | centos7 64bit |
jdk | 1.8.0.144 64bit linux版本 |
Elasticsearch | 6.1.1 linux |
2. jdk安装(跳过)
3. 官方下载安装包并解压
#建立软链接
ln -s /opt/elasticsearch-6.1.1/bin/elasticsearch /usr/local/sbin/elasticsearch
4. 配置Elasticsearch
- 配置文件
/opt/elasticsearch-6.1.1/config/elasticsearch.yml
#定义es集群名称
cluster.name: bosheng_logs
##定义该节点的名称,各个节点不能重复
node.name: node1
##配置数据目录,注意elasticsearch会有自己的运行用户,要赋予目录此用户的权限
path.data: /logs
##配置日志目录
path.logs: /opt/elasticsearch-6.1.1/logs
##关闭锁定内存
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
##指定本机IP地址
network.host: 192.168.8.83
#指定http访问端口
http.port: 9200
5.创建一个新用户来启动elastricsearch。
- 使用root用户创建
useradd elk
passwd elk
chown -R elk /opt/elasticsearch-6.1.1
6. 使用创建的用户启动Elasticsearch
su elk
elasticsearch
7. 检查启动是否正常
Kibana安装启动
1. 软件环境说明
软件系统 | 版本 |
---|---|
linux | centos7 64bit |
jdk | 1.8.0.144 64bit linux版本 |
Kibana | 6.1.1 linux |
2. jdk安装(跳过)
3. 官方下载安装包并解压
#建立软链接
ln -s /opt/kibana-6.1.1-linux-x86_64/bin/kibana /usr/local/sbin/kibana
4. 配置kibana
- 配置文件路径
/opt/kibana-6.1.1-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: 192.168.8.83
elasticsearch.url: "http://192.168.8.83:9200"
启动kibana,并验证。
- 启动
kibana
- 启动成功
- 访问
三、验证
1. 启动tomcat7.0.77
2. 查看Elasticsearch接收到的日志信息
3. 通过kibana查看tomcat的启动日志
通过检查之后,我们发现我们成功的采集到了tomcat的日志到Elasticsearch