最近在linux下搭建了一套ELK環境,ELK簡單來說,ElasticSearch 作為搜索引擎存儲數據,Logstash 負責收集數據并輸出給ElasticSearch ,Kibana 可以理解為elasticsearch的顯示面板。

本文搭建的ELK環境,主要用來收集應用系統的日志,是單機版;如果想升級成集群版,可以將ElasticSearch 部署成集群,哪個服務器需要采集數據就安裝Logstash, 顯示面板Kibana可以只安裝在一個服務器節點即可。
準備工作 1.安裝jdk由于ElasticSearch 需要 JDK 環境,所以要提前安裝好 JDK 。另外,可能jdk的安裝路徑各有不同,所以可以提前給jdk建立一個軟連接 (否則elasticSearch啟動時會報錯)。
which java
如果結果不是上圖顯示,可以執行一下命令
ln -s 執行which java所顯示的路徑 /usr/bin/java2.創建ES用戶通常 ElasticSearch 及kibana 都是不用root去啟動的,所以這里創建一個新用戶 ES。
useradd es
passwd es創建完用戶之后,要對其進行授權。下面的 elk安裝 ,我專門建了一個 文件夾,然后將該文件夾授權給ES用戶,如果操作過程中不小心忘了賦權限,執行不了啟動命令,就再授權一下。
[root@ELK-slave home]# cd /usr/local/
[root@ELK-slave local]# mkdir elk
[root@ELK-slave local]# chown -R es:es /usr/local/elk下面進行安裝 ,注意一點,3個軟件這里都是通過安裝包進行部署的,要注意版本的一致性。下面安裝時,可切換到 es用戶。
ElasticSearch在 /usr/local/elk/ 下建立 es文件夾,下載安裝包,并解壓
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
解壓完成后,修改配置文件。配置中要指定數據和日志路徑,所以我提前建好文件夾。
修改config目錄下的elasticsearch.yml文件,加入以下內容(單機配置)
cluster.name: es
node.name: node-1
path.data: /usr/local/elk/es/data
path.logs: /usr/local/elk/es/log
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.179.129"]
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"配置完成后,執行啟動命令
nohup ./elasticsearch >/usr/local/elk/es/run.log 2>&1 &
查看運行日志,并訪問對應的鏈接,http://192.168.179.129:9200/
到這里,就啟動成功了。
其實在啟動時,可能會報虛擬內存不足、大文件數太小等問題,所以如果啟動失敗,可以進行以下配置
1.切換root用戶 ,編輯 limits.conf (vi /etc/security/limits.conf),末尾加入以下內容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 40962.切換root用戶,修改 sysctl.conf (vi /etc/sysctl.conf),加入如下配置
vm.max_map_count=655360并執行以下命令,使配置生效。
sysctl -p完成上述配置后,切換到es用戶,重新啟動。
Logstash在 /usr/local/elk/ 下建立 logstash文件夾,下載安裝包,并解壓
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.6.2.tar.gz
logstash通過 input采集數據,output 輸出數據,并且支持過濾功能。輸入、輸出都支持多種插件,如標準輸入、文件輸入、kafka 等,輸出包括 elasticsearch 、文件,kafka等等。
為方便,先使用 標準輸入輸出查看下效果,進入bin目錄,執行以下命令
./logstash -e 'input { stdin{} } output { stdout{} }'
我們的目的是輸出到 elasticsearch ,所以使用 標準輸入,并輸出到 elasticsearch 再測試一下
./logstash -e 'input { stdin{} } output { elasticsearch { hosts =>["192.168.179.129:9200"] } }'輸入字符,然后查看對應的elasticsearch中是否存在

至此,說明logstash輸出到 elasticsearch沒有問題,這時可以進行正式配置了。logstash啟動時,輸入、輸出的配置都通過配置文件來定義,進入config 目錄,創建 springboot-logstash.conf文件。
這里要采集系統應用的日志,輸入采用 文件方式,修改 springboot-logstash.conf 配置
input {
file {
path =>"/usr/local/activity/info.log"
type =>"activity"
start_position =>"beginning"
}
file {
path =>"/usr/local/activityapi/info.log"
type =>"activityapi"
start_position =>"beginning"
}
}
output {
if [type] == "activity" {
elasticsearch {
hosts =>["192.168.179.129"]
index =>"activity-%{+YYYY.MM.dd}"
}
} else if [type] == "activityapi" {
elasticsearch {
hosts =>["192.168.179.129"]
index =>"activityapi-%{+YYYY.MM.dd}"
}
}
}
執行啟動命令
nohup ./logstash -f ../config/springboot-logstash.conf --config.reload.automatic 2>&1 &不同的應用(activity、activityapi),建立了不同的索引,并以日為單位做分割,可以查看elasticsearch的索引情況
此時,logstash啟動成功
在 /usr/local/elk/ 下建立 kibana文件夾,下載安裝包,并解壓
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz修改配置文件
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.179.129:9200"]
然后啟動即可,注意,不能使用root用戶啟動,切換到es用戶
nohup ./kibana &
啟動之后,訪問 鏈接 http://192.168.179.129:5601/
kibana安裝之后,做一下配置就可以使用了,先找到管理頁面,點擊 Index Patterns
第一步,定義的 index pattern ,其實和 elasticsearch 對應的 index有關,比如上文中 activity 的日志,都是以 activity- 為前綴,我定義 activity-* ,就可以匹配對應的所有日期下的日志
第二步,點擊保存
同理,我對 activityapi 也配置對應的 index pattern,activityapi* 。
然后點擊discover版塊,可以看到對應的數據
我們可以通過切換對應 的index pattern ,來查看相關的日志
這就相當于,有了一個實時可視化的tail -f 日志工具,并且支持內容搜索。
至此,單機版的ELK環境就搭建完成了。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁名稱:ELK單機環境搭建-創新互聯
文章轉載:http://www.yijiale78.com/article4/ddcsoe.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、網站導航、虛擬主機、網站策劃、響應式網站、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯