微服務環境搭建專題(三)ELK

ELK安裝說明

1、進入到文件目錄,解壓

安裝包請自行下載。

#解壓所有需要使用的elk安裝文件
tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz
tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz
tar -zxvf kibana-7.2.0-linux-x86_64.tar.gz
tar -zxvf logstash-7.2.0.tar.gz

2、將解壓後的文件移動到/usr/local/elk目錄下

#先創建一個elk的文件夾
mkdir /usr/local/elk
#把所有安裝軟件放到elk目錄下
mv elasticsearch-7.2.0/ /usr/local/elk/es
mv filebeat-7.2.0-linux-x86_64/ /usr/local/elk/filebeat
mv kibana-7.2.0-linux-x86_64/ /usr/local/elk/kibana
mv logstash-7.2.0/ /usr/local/elk/logstash
#在給es存放的數據創建一個文件夾
mkdir /usr/local/elk/esdata

3、修改ES配置文件

cd /usr/local/elk/es/config
#編輯elasticsearch.yml文件
vim elasticsearch.yml

需要修改的內容如下(單機模式):

cluster.name: demo-zt	#集羣名字
node.name: node-1		#本節名字
network.host: 192.168.123.52		#綁定主機
http.port: 9200 #綁定端口
path.data: /usr/local/elk/es/esdata	#數據存放目錄運行elasticsearch
path.logs: /usr/local/elk/es/logs   #日誌路徑
discovery.seed_hosts: ["127.0.0.1:9200"]
cluster.initial_master_nodes: ["node-1"]        #master節點名稱

4、啓動ES服務,需要修改的信息

#直接用root用戶啓動會報錯,因此需要重新分配一個用戶
#創建一個esroot用戶並設置初始密碼
useradd -c 'ES user' -d /home/esroot esroot
passwd esroot
#密碼可以設置爲123456
#將es安裝目錄屬主權限改爲esroot用戶
chown -R esroot /usr/local/elk

#必須要做的步驟
#修改兩個參數
#1、每個進程最大同時打開文件數太小
vim /etc/security/limits.conf
#增加如下配置
esroot         hard    nofile   65536
esroot         soft    nofile   65536
esroot         soft    nproc    4096
esroot         hard    nproc    4096
#2、用戶擁有的內存權限太小
vim /etc/sysctl.conf
#增加如下配置
vm.max_map_count=655360
#保存後執行命令
sysctl -p
#設置host
vim /etc/hosts
192.168.123.52 node-1

#切換用戶,啓動服務
su esroot
cd /usr/local/elk/es/bin
./elasticsearch  #直接啓動,可以看啓動日誌 後面加個 -d  可以後臺啓動,不看日誌信息

5、訪問測試

訪問http://10.252.68.52:9200/顯示如下信息即可。

{
  "name" : "node-1",
  "cluster_name" : "demo-zt",
  "cluster_uuid" : "OkTkKWvmSnmR-s_HrfDP1Q",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

6、ES詳細配置解析

cluster.name: elasticsearch
# 配置的集羣名稱,默認是elasticsearch,es服務會通過廣播方式自動連接在同一網段下的es服務,通過多播方式進行通信,同一網段下可以有多個集羣,通過集羣名稱這個屬性來區分不同的集羣。

node.name: "Franz Kafka"
# 當前配置所在機器的節點名,你不設置就默認隨機指定一個name列表中名字,該name列表在es的jar包中config文件夾裏name.txt文件中,其中有很多作者添加的有趣名字。

node.master: true
#指定該節點是否有資格被選舉成爲node(注意這裏只是設置成有資格, 不代表該node一定就是master),默認是true,es是默認集羣中的第一臺機器爲master,如果這臺機掛了就會重新選舉master。

node.data: true
# 指定該節點是否存儲索引數據,默認爲true。

index.number_of_shards: 5
# 設置默認索引分片個數,默認爲5片。

index.number_of_replicas: 1
# 設置默認索引副本個數,默認爲1個副本。如果採用默認設置,而你集羣只配置了一臺機器,那麼集羣的健康度爲yellow,也就是所有的數據都是可用的,但是某些複製沒有被分配
# (健康度可用 curl 'localhost:9200/_cat/health?v' 查看, 分爲綠色、黃色或紅色。綠色代表一切正常,集羣功能齊全,黃色意味着所有的數據都是可用的,但是某些複製沒有被分配,紅色則代表因爲某些原因,某些數據不可用)。

path.conf: /path/to/conf
# 設置配置文件的存儲路徑,默認是es根目錄下的config文件夾。

path.data: /path/to/data
# 設置索引數據的存儲路徑,默認是es根目錄下的data文件夾,可以設置多個存儲路徑,用逗號隔開,例:
# path.data: /path/to/data1,/path/to/data2

path.work: /path/to/work
# 設置臨時文件的存儲路徑,默認是es根目錄下的work文件夾。

path.logs: /path/to/logs
# 設置日誌文件的存儲路徑,默認是es根目錄下的logs文件夾 

path.plugins: /path/to/plugins
# 設置插件的存放路徑,默認是es根目錄下的plugins文件夾, 插件在es裏面普遍使用,用來增強原系統核心功能。

bootstrap.mlockall: true
# 設置爲true來鎖住內存不進行swapping。因爲當jvm開始swapping時es的效率 會降低,所以要保證它不swap,可以把ES_MIN_MEM和ES_MAX_MEM兩個環境變量設置成同一個值,並且保證機器有足夠的內存分配給es。 同時也要允許elasticsearch的進程可以鎖住內# # 存,linux下啓動es之前可以通過`ulimit -l unlimited`命令設置。

network.bind_host: 192.168.0.1
# 設置綁定的ip地址,可以是ipv4或ipv6的,默認爲0.0.0.0,綁定這臺機器的任何一個ip。

network.publish_host: 192.168.0.1
# 設置其它節點和該節點交互的ip地址,如果不設置它會自動判斷,值必須是個真實的ip地址。

network.host: 192.168.0.1
# 這個參數是用來同時設置bind_host和publish_host上面兩個參數。

transport.tcp.port: 9300
# 設置節點之間交互的tcp端口,默認是9300。

transport.tcp.compress: true
# 設置是否壓縮tcp傳輸時的數據,默認爲false,不壓縮。

http.port: 9200
# 設置對外服務的http端口,默認爲9200。

http.max_content_length: 100mb
# 設置內容的最大容量,默認100mb

http.enabled: false
# 是否使用http協議對外提供服務,默認爲true,開啓。

gateway.type: local
# gateway的類型,默認爲local即爲本地文件系統,可以設置爲本地文件系統,分佈式文件系統,hadoop的HDFS,和amazon的s3服務器等。

gateway.recover_after_nodes: 1
# 設置集羣中N個節點啓動時進行數據恢復,默認爲1。

gateway.recover_after_time: 5m
# 設置初始化數據恢復進程的超時時間,默認是5分鐘。

gateway.expected_nodes: 2
# 設置這個集羣中節點的數量,默認爲2,一旦這N個節點啓動,就會立即進行數據恢復。

cluster.routing.allocation.node_initial_primaries_recoveries: 4
# 初始化數據恢復時,併發恢復線程的個數,默認爲4。

cluster.routing.allocation.node_concurrent_recoveries: 2
# 添加刪除節點或負載均衡時併發恢復線程的個數,默認爲4。

indices.recovery.max_size_per_sec: 0
# 設置數據恢復時限制的帶寬,如入100mb,默認爲0,即無限制。

indices.recovery.concurrent_streams: 5
# 設置這個參數來限制從其它分片恢復數據時最大同時打開併發流的個數,默認爲5。

discovery.zen.minimum_master_nodes: 1
# 設置這個參數來保證集羣中的節點可以知道其它N個有master資格的節點。默認爲1,對於大的集羣來說,可以設置大一點的值(2-4)

discovery.zen.ping.timeout: 3s
# 設置集羣中自動發現其它節點時ping連接超時時間,默認爲3秒,對於比較差的網絡環境可以高點的值來防止自動發現時出錯。

discovery.zen.ping.multicast.enabled: false
# 設置是否打開多播發現節點,默認是true。

discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
# 設置集羣中master節點的初始列表,可以通過這些節點來自動發現新加入集羣的節點。

#設置提供羣集中其他節點的列表,這些節點符合主要條件且可能是實時且可聯繫的,以便爲發現過程設定種子。 此設置通常應包含羣集中所有符合主節點的節點的地址。 此設置包含主機數組或逗號分隔的字符串。 每個值應採用host:port或host的形式
discovery.seed_hosts: 

#當您第一次啓動全新的Elasticsearch集羣時,會出現一個集羣引導步驟,該步驟確定在第一次選舉中計票的主要合格節點集因此當您在生產模式下啓動全新集羣時,必須明確列出符合條件的節點的名稱或IP地址,這些節點的投票應在第一次選舉中計算 集羣中第一個主節點啓動 許設置此項
cluster.initial_master_nodes:

7、安裝Kibana

cd /usr/local/elk/kibana/config
vim kibana.yml

修改的內容如下:

#修改端口
server.port: 5601
#修改本地地址
server.host: "192.168.123.52"
#服務名字
server.name: "demo-kibana"
#es的地址
elasticsearch.hosts: ["http://192.168.123.52:9200"]
#啓動服務

啓動服務

cd /usr/local/elk/kibana/bin
./kibana &

訪問http://192.168.123.52:5601可以看到kibana的項目,就說明成功了。

8、安裝Logstash

cd /usr/local/elk/logstash/config
vim logstash.yml
#logstash數據存儲路徑,保持默認即可
path.data: /usr/local/elk/logstash/data
#logstash動態加載的配置文件,所有自定義的輸入、輸出和過濾配置都放置在這個目錄中並以.conf結尾
path.config: /etc/logstash/conf.d/*.conf
#logstash日誌文件路徑,保持默認即可
path.logs: /usr/local/elk/logstash/logs

建個文件夾,用於存放長久運行的配置文件(這個裏面的配置文件名,建議使用數字開頭,因爲是按排序執行的)

mkdir /usr/local/elk/logstash/conf.d
vim /usr/local/elk/logstash/conf.d/test.conf

設置test.conf的內容

input{
  file{
    path => ["/usr/local/elk/es/logs/demo-zt.log"]
    type => "elasticsearch-log"
    start_position => "beginning"
  }
}

filter{

}

output{
  elasticsearch{
    hosts => ["192.168.123.52:9200"]
    index => "system-log-%{+YYYY.MM.dd}"
  }
}

啓動服務

#啓動服務
/usr/local/elk/logstash/bin/logstash -f /usr/local/elk/logstash/conf.d/test.conf &

在通過kibana去看啓動後的效果,訪問http://192.168.123.52:5601

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章