利用ELK+Kafka解決方案
ELK 是三款軟件的組合。是一整套完整的解決方案。分別是由 Logstash(收集+分析)、ElasticSearch(搜索+存儲)、Kibana(可視化展示)三款軟件。ELK主要是為了在海量的日志系統(tǒng)里面實現(xiàn)分布式日志數(shù)據(jù)集中式管理和查詢,便于監(jiān)控以及排查故障。
Elasticsearch 部署安裝
ElasticSearch 是一個基于 Lucene 的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于 RESTful API 的 web 接口。Elasticsearch 是用 Java 開發(fā)的,并作為 Apache 許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。設計用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。
[root@seichung ] wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm # 官網(wǎng)下載軟件包[root@seichung ] yum -y install java-1.8.0 # 相關依賴包[root@seichung ] yum -y install epel-release[root@seichung ] yum localinstall -y elasticsearch-6.4.2.rpm
安裝完成之后,修改 ElasticSearch 的配置文件,然后啟動 ElasticSearch 服務。
[root@seichung ] vim /etc/elasticsearch/elasticsearch.yml # 將如下的內(nèi)容的注釋取消,并將相關信息改成你在配置時的實際參數(shù) ***注意:配置文件的參數(shù),在冒號后都有一個空格,如沒有空格,服務會啟動失敗,并且無任何提示 cluster.name: ES-cluster # 集群名稱,可更改 node.name: es1 # 為本機的主機名 network.host: 192.168.4.1 # 為本機的IP http.port: 9200 # elasticsearch服務端口,可更改 discovery.zen.ping.unicast.hosts: ["es1", "es2","es3"] # 集群內(nèi)的主機(主機名,不一定全部都要寫) node.master: true # 節(jié)點是否被選舉為 master node.data: true # 節(jié)點是否存儲數(shù)據(jù) index.number_of_shards: 4 # 索引分片的個數(shù) index.number_of_replicas: 1 # 分片的副本個數(shù) path.conf: /etc/elasticsearch/ # 配置文件的路徑 path.data: /data/es/data # 數(shù)據(jù)目錄路徑 path.work: /data/es/elasticsearch # 工作目錄路徑 path.logs: /data/es/logs/elasticsearch/logs/ # 日志文件路徑 path.plugins: /data/es/plugins # 插件路徑 bootstrap.mlockall: true # 內(nèi)存不向 swap 交換 http.enabled: true # 啟用http # 如果目錄路徑不存在的,需要先創(chuàng)建[root@seichung ] /etc/init.d/elasticsearch start # 啟動服務[root@seichung ] systemctl enable elasticsearch # 開機自啟
一個簡單的 ElasticSearch 就搭建好了,如果要部署一個ES集群,那么只需要在所有主機上部署好 Java 環(huán)境,以及在所有主機上的 /etc/hosts
解析主機,如下:
此操作是在ES集群主機上必做
[root@seichung ] yum -y install java-1.8.0[root@seichung ] vim /etc/hosts 192.168.4.1 es1 192.168.4.2 es2 192.168.4.3 es3
將已經(jīng)完成 elasticsearch 服務安裝的主機,將 hosts 文件、elasticsearch.yml 配置文件拷貝一份到集群主機上,只要修改 node.name: 為本機的主機名
即可,然后將服務啟動起來
最后來查看下 Es 集群是否部署好,不成功則 number_of_nodes 永遠為 1 ,成功會有下圖信息,:
[root@seichung ] curl -i http://192.168.4.1:9200/_cluster/health?pretty # 返回的信息包括集群名稱、集群數(shù)量等,如果 number_of_nodes 顯示的是實際得集群數(shù)量,則說明集群部署成功 { "cluster_name" : "ES-cluster", "status" : "green", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 3, "active_primary_shards" : 26, "active_shards" : 52, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }
ElasticSearch 插件安裝
# 采用本地安裝,也可以采用遠程安裝[root@seichung ] /usr/share/elasticsearch/bin/plugin install file:///data/es/plugins/elasticsearch-head-master.zip [root@seichung ] /usr/share/elasticsearch/bin/plugin install file:///data/es/plugins/elasticsearch-kopf-master.zip[root@seichung ] /usr/share/elasticsearch/bin/plugin install file:///data/es/plugins/bigdesk-master.zip[root@seichung ] /usr/share/elasticsearch/bin/plugin list # 查看已安裝的插件
插件安裝完成之后,訪問對應插件的 Url則成功
上一篇:消息中間件解決方案JMS
下一篇:Nginx解決方案