centos7部署elk日志系統


一、創建Elk目錄,下載軟件壓縮包

登錄系統后,進入opt目錄,創建Elk文件夾

[root@localhost opt]# cd /opt/
[root@localhost opt]# mkdir ElK

下載軟件包

#node.js
wget https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.xz

#jdk10
wget https://repo.huaweicloud.com/java/jdk/10.0.1+10/jdk-10.0.1_linux-x64_bin.tar.gz

#elasearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz

#logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-linux-x86_64.tar.gz

#kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz

 

二、安裝node和jdk
解壓上面下載的壓縮包,命令如下:

tar -xvf  node-v14.16.1-linux-x64.tar.xz
tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz

解壓完成后可以看到 “node-v14.16.1-linux-x64” 和 “jdk-10.0.1” 兩個文件夾,移動node到ElK文件夾下,

mv node-v14.16.1-linux-x64 ./ElK

配置jdk和node的系統PATH

vim /etc/profile
#java
export JAVA_HOME=/opt/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

#nodejs
export NODE_HOME=/opt/ElK/node-v14.16.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存退出后,執行: source /etc/profile 重新加載系統文件。驗證是否成功:

[root@localhost ElK]# node -v
v14.16.1
[root@localhost ElK]# java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

出現上面輸出說明node和jdk配置成功了。

三、安裝elasearch

1.解壓壓縮包,把解壓之后的文件移動到ElK目錄下。

tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz
mv elasticsearch-7.12.0 ./ElK

2.編輯配置文件 config/elasticsearch.yml。

#打開以下配置並修改
cluster.name: myelasearch
network.host: 0.0.0.0  #用於外部訪問
http.port: 9200
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

#文件結尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"

 

3.修改系統配置文件sysctl.conf,修改完記得重啟系統!!!

vi /etc/security/limits.conf
#在文件末尾添加:
* soft nofile 65535
* hard nofile 65535
sudo vi /etc/sysctl.conf
#在文件末尾添加:
vm.max_map_count=262144
reboot #重啟系統 
ulimit -n    #查看修改情況

4.elasticsearch在centos系統下不允許已root用戶啟動,所以我們創建一個新的用戶“elasticsearch”。

#創建用戶
adduser elasticsearch
#密碼隨便輸入
passwd elasticsearch
#給文件夾賦予用戶權限
chown -R elasticsearch /opt/
切換用戶
su elasticsearch

5.啟動elasticsearch

#顯示啟動過程
./bin/elasticsearch
#后台啟動
./bin/elasticsearch -d    后台啟動

第一次我選擇的顯示啟動過程,啟動成功后,重新打開一個窗口,看到以下返回說明elasticsearch 啟動成功了,然后 “Ctrl +c”停用服務,改用后台啟動。

[root@localhost config]# curl 127.0.0.1:9200
{
  "name" : "node-1",
  "cluster_name" : "myelasearch",
  "cluster_uuid" : "8t26YSY_Tly36t8EsdswmA",
  "version" : {
    "number" : "7.12.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
    "build_date" : "2021-03-18T06:17:15.410153305Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[root@localhost config]#

 想要停止服務時,輸入 “ps -ef | grep elasticsearch”,然后 kill 對應的進程id。

[root@localhost logs]# ps -ef | grep elasticsearch
root      1785  1743  0 14:53 pts/0    00:00:00 su elasticsearch
elastic+  1930     1  3 14:54 pts/0    00:05:12 /opt/jdk-10.0.1/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io.tmpdir=/tmp/elasticsearch-2768486000531970052 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=536870912 -Des.path.home=/opt/ElK/elasticsearch-7.12.0 -Des.path.conf=/opt/ElK/elasticsearch-7.12.0/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /opt/ElK/elasticsearch-7.12.0/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elastic+  1945  1930  0 14:54 pts/0    00:00:00 /opt/ElK/elasticsearch-7.12.0/modules/x-pack-ml/platform/linux-x86_64/bin/controller
root      2857  1764  0 17:20 pts/1    00:00:00 grep --color=auto elasticsearch
[root@localhost logs]# kill 1930

 

重啟服務可能遇到的問題:TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block,可以參考下面配置。

關鍵的參數cluster.routing.allocation.disk.threshold_enabled

(es可以根據磁盤使用情況來決定是否繼續分配shard。默認設置是開啟的).

為了在本地單機上測試,我自己電腦磁盤空間剩下沒多少了,修改elasticsearch.yml,設置cluster.routing.allocation.disk.threshold_enabled: false。

如果后續虛擬機磁盤空間不夠,啟動失敗了可以刪除了data,logs里的文件。

四、安裝logstash

解壓壓縮包,把解壓之后的文件移動到ElK目錄下,編輯配置文件config/logstash.yml

#打開並修改以下配置,用於外部訪問
http.host: 0.0.0.0

在bin目錄下創建 logstash.conf 文件,並寫入下面代碼,保存退出。

input {
  file {
        path => ["/opt/logs/*.log"]
        codec => json {
                charset => "UTF-8"
        }
 }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index => "ceshi-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

下面兩種方式選一種啟動logstash。

./bin/logstash -f ./bin/logstash.conf    #顯示執行過程
nohup ./bin/logstash -f ./bin/logstash.conf &    #后台執行

啟動成功后,驗證:

[root@localhost bin]# curl 127.0.0.1:9600
{"host":"localhost.localdomain","version":"7.12.0","http_address":"0.0.0.0:9600","id":"d562e790-449c-471a-a85f-0beaf4744866","name":"localhost.localdomain","ephemeral_id":"520d56fa-bdd1-438b-a3ff-8afe292f55fe","status":"green","snapshot":false,"pipeline":{"workers":1,"batch_size":125,"batch_delay":50},"build_date":"2021-03-18T05:13:33Z","build_sha":"4399d72a9afe6f06db8adbaad8030e5b111e86b6","build_snapshot":false}[root@localhost bin]#

如果看到上面輸出,說明成功了。

 

五.安裝kibana

解壓壓縮包,把解壓之后的文件移動到ElK目錄下,編輯配置文件config/kibana.yml。

#端口
server.port: 5601
#外部訪問
server.host: "0.0.0.0"
#調整為中文
i18n.locale: "zh-CN"

選擇一種方式啟動kibana。

#顯示過程啟動
./bin/kibana
#后台啟動
nohup ./bin/kibana

啟動成功后,用windows宿主機訪問虛擬機ip+5601 訪問kibana。出現下面界面啟動成功。

 

 

 

 

 

 

六、創建索引模式

在上面logstash配置文件(logstash.conf)中path目錄下創建一個日志文件,隨便輸入一些內容。

[root@localhost logs]# cd /opt/logs
[root@localhost logs]# vim test.log
[root@localhost logs]# 

 

點擊“創建索引模式”,創建索引。

 

 

 成功后點擊左側“Discover”,進入搜索界面,ELK日志系統搭建完成。

netstat -lnp | grep 5601 查看端口占用情況。

kill -9 端口號 中斷進程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM