您好,登錄后才能下訂單哦!
本篇內容主要講解“EFK基礎環境搭建方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“EFK基礎環境搭建方法”吧!
在分布式系統中,由于節點服務會部署多臺,一旦出現線上問題需要通過日志分析定位問題就需要登錄服務器一臺一臺進行日志檢索,非常不便利,這時候就需要用到EFK日志收集工具。
在應用服務端部署Filebeat,將我們打印到日志文件中的日志發送到Logstash中,在經過Logstash的解析格式化后將日志發送到ElasticSearch中,最后通過Kibana展現出來。EFK基礎版的架構如下:
本文主要是使用docker和docker-Compose部署ELK的基礎環境,選擇7.5.1作為EFK組件版本。
實在不想使用docker部署的話也可以下載對應的安裝包然后手動部署,配置方式基本一樣。
安裝elasticsearch之前先配置如下的系統變量
修改 /etc/sysctl.conf
,在最后追加如下配置 vm.max_map_count = 655360
修改 /etc/security/limits.conf
,增加如下配置
* soft memlock unlimited * hard memlock unlimited * hard nofile 65536 * soft nofile 65536
修改 /etc/security/limits.d/20-nproc.conf
,增加如下配置
* soft nproc 4096 root soft nproc unlimited
啟動elasticsearch臨時容器
docker run --rm --name es -p9200:9200 -p9300:9300 -e discovery.type=single-node elasticsearch:7.5.1
導出elasticsearch配置文件
docker cp fbce586c8a56:/usr/share/elasticsearch/config/elasticsearch.yml /app/elk/elasticsearch/conf/elasticsearch.yml
修改es配置文件
cluster.name: "elk-cluster"network.host: 0.0.0.0bootstrap.memory_lock: truediscovery.type: single-node
建立es的日志文件夾和數據文件夾,并對文件夾授權
mkdir -p /app/elk/elasticsearch/logs mkdir -p /app/elk/elasticsearch/data chmod -R 777 /app/elk/elasticsearch/logs chmod -R 777 /app/elk/elasticsearch/data
停止臨時容器 docker stop fbce586c8a56
啟動臨時容器
docker run --rm --name logstash -p5044:5044 -p9600:9600 logstash:7.5.1
導出docker的配置文件
docker cp 5adb0971bb0f:/usr/share/logstash/config /app/elk/logstash
建立logstash數據文件夾,并對其授權
mkdir -p /app/elk/logstash/data chmod -R 777 /app/elk/logstash/data
復制logstash啟動文件,并對其修改
cd /app/elk/logstash/config cp logstash-sample.conf logstash.conf
修改logstash.conf,配置output
# Sample Logstash configuration for creating a simple # Beats -> Logstash -> Elasticsearch pipeline. input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://172.31.0.207:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } }
暫時修改一下ES的訪問路徑即可。
停止臨時容器 docker stop 5adb0971bb0f
啟動臨時容器
docker run --rm --name kibana -p5601:5601 kibana:7.5.1
導出kibana配置文件
docker cp f21f0f9e0259:/usr/share/kibana/config/kibana.yml /app/elk/kibana/conf/kibana.yml
修改kibana配置
server.name: kibanaserver.host: "0"elasticsearch.hosts: [ "http://172.31.0.207:9200" ]xpack.monitoring.ui.container.elasticsearch.enabled: truei18n.locale: zh-CN
設置 i18n.locale: zh-CN
屬性后會對kibana進行漢化,這樣便于操作,主要還是我英語不太好~
停止臨時容器 docker stop f21f0f9e0259
經過上面的準備,我們可以編寫 docker-compose
文件,方便我們對容器進行編排,一鍵啟動。有了之前的基礎,我們很容易編寫出對應的yml文件,編寫后的內容如下:
version: "3"services: elasticsearch: image: docker.io/elasticsearch:7.5.1 container_name: elasticsearch environment: - "ES_JAVA_OPTS=-Xms4096m -Xmx4096m -Xmn1300m" volumes: - /app/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - /app/elk/elasticsearch/data:/usr/share/elasticsearch/data:rw - /app/elk/elasticsearch/logs:/usr/share/elasticsearch/logs:rw ports: - "9200:9200" - "9300:9300" restart: always kibana: image: docker.io/kibana:7.5.1 container_name: kibana volumes: - /app/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml ports: - "5601:5601" depends_on: - elasticsearch restart: always logstash: image: logstash:7.5.1 container_name: logstash command: logstash -f /usr/share/logstash/config/logstash.conf volumes: - /app/elk/logstash/config:/usr/share/logstash/config - /app/elk/logstash/data:/usr/share/logstash/data ports: - "9600:9600" - "5044:5044" depends_on: - elasticsearch restart: always
將docker-compose文件上傳至服務器,啟動docker服務
docker-compose -f elk.yml up -d
啟動完成后訪問kibana地址 http://172.31.0.207:5601/
驗證是否正常訪問
我們剛剛部署的elk環境是不需要密碼就可以登錄kibana的,這樣誰都可以訪問而且可以更改數據。所以我們需要給kibana加個密碼,必須要登錄才可以進行操作。
主要是利用elasticsearch自帶的xpack作為權限驗證功能。操作步驟如下:
修改es外部配置文件 /app/elk/elasticsearch/conf/elasticsearch.yml
,開啟權限驗證
xpack.security.enabled: true
重啟 elasticsearch
服務
docker-compose -f elk.yml restart elasticsearch
進入es容器,為內置賬號設置密碼
docker exec -it elasticsearch /bin/bashcd /usr/share/elasticsearch/bin ./elasticsearch-setup-passwords interactive
修改kibana配置文件 /app/elk/kibana/conf/kibana.yml
elasticsearch.username: "elastic"elasticsearch.password: "xxxxxx"
重啟kibanadocker-compose -f elk.yml restart kibana
重新訪問kibana,并使用上面設置的elastic賬號進行登錄
至此我們順利給ELK加上了安全認證,可以放心在生產環境部署使用了!
到此,相信大家對“EFK基礎環境搭建方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。