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]
二、安裝部署
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
