記錄一下本身的搭建經歷,先看一下圖片記錄下整理結構node
這裏主要講述elk套件的配置,其它前置環境的安裝請自行百度或者腦補,linux
前置條件:JKD1.8(注意必須1.8或者以上),Redis(單點或者Cluster)nginx
1.下載安裝elasticsearchredis
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip unzip elasticsearch-5.5.0.zip cd elasticsearch-5.5.0/ ./bin/elasticsearch #測試使用 正式由於須要後臺運行 ./bin/elasticsearch -d 或者 nohup ./elasticsearch&
配置 elasticsearch.ymlbootstrap
#這裏指定的是集羣名稱,須要修改成對應的,開啓了自發現功能後,ES會按照此集羣名稱進行集羣發現 cluster.name: my-application node.name: node-1 #目錄須要手動建立 path.data: /data/elk/data path.logs: /data/elk/logs #ES監聽地址任意IP均可訪問 network.host: 0.0.0.0 http.port: 9200 #如果集羣,可在裏面引號中添加,逗號隔開 discovery.zen.ping.unicast.hosts: [「192.168.1.101」] # enable cors,保證_site類的插件能夠訪問es http.cors.enabled: true #手動添加 http.cors.allow-origin: 「*」 #手動添加 # Centos6不支持SecComp,而ES5.2.0默認bootstrap.system_call_filter爲true進行檢測,因此致使檢測失敗,失敗後直接致使ES不能啓動 bootstrap.memory_lock: false #手動添加 bootstrap.system_call_filter: false #手動添加
配置jvm參數 conf/jvm.options 默認佔用2g內存,由於測試緣由我改成了256mvim
注:ES啓動的時候回佔用特別大的資源因此須要修改下系統參數,若不修改資源啓動會異常退出tomcat
sysctl -w vm.max_map_count=262144
若是報錯:安全
ERROR: bootstrap checks failed max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
修改資源參數app
vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 131072 * soft nproc 65536 * hard nproc 131072 //修改後須要註銷從新登陸或者重啓才生效
若是報錯:cors
max number of threads [1024] for user [es] likely too low, increase to at least [2048]
vi /etc/security/limits.d/90-nproc.conf 找到以下內容: * soft nproc 1024 #修改成 * soft nproc 2048
測試啓動成功後,能夠先停掉了,直接ctrl+c
注意:不建議使用root用戶安裝運行,若是須要的話
vi bin/elasticsearch #容許root用戶啓動,修改啓動文件,添加下面一行 ES_JAVA_OPTS="-Des.insecure.allow.root=true"
2.安裝Logtash (注意:這裏要用Redis了,若是和Elastic 不在一塊兒JDK1.8也須要安裝)
首先安裝Server端,主要任務:從redis讀取數據,而後存入Elastic
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.1.tar.gz tar -zxvf logstash-5.5.1.tar.gz vi 安裝目錄/etc/logstash.conf #文件目錄和文件本身新建 //logtash 的日誌必定要處理 很大...
input { redis { host => "127.0.0.1" port => "6379" password => "test123!" key => "logstash-ucenter" data_type => "list" type=> "ucenter_warn" } } output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" document_type => "%{type}" } }
上面redis地址密碼須要根據實際狀況修改,elastic密碼我修改了,若是沒修改能夠使用 changeme(默認密碼)
而後安裝客戶端,主要任務:收集應用日誌並寫入redis
input { file { path=>"/data/log/tomcat/ucenter_warn.log" codec => multiline { pattern => "^.*\[" negate => true what => "previous" } } } output { redis{ data_type =>"list" key=>"logstash-ucenter" host=>"redisIp" port=>6379 password => "test123!" } }
3.安裝Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz tar -zxvf kibana-5.5.0-linux-x86_64.tar.gz cd kibana-5.5.0-linux-x86_64/
vim config/kibana.yml # 將默認配置改爲以下: server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://192.168.2.41:9200" kibana.index: ".kibana"
4.上面的都安裝完成後,剩下的是依次啓動(注意:防火牆各個接口請自行打開,redis默認是啓動狀態)
# 啓動 elastic bin/elasticsearch -d # 啓動logstash server端 nohup bin/logstash -f etc/ >/dev/null& # 啓動logstash client 端 nohup bin/logstash -f etc/ >/dev/null& #啓動 Kibana nohup bin/kibana >/dev/null&
這個是本身回憶寫的,可能有漏掉的細節歡迎指出。這個是入門版,接下來有時間的話,會寫一篇高可用版本的。
補充:x-pack安裝(前提 elasticsearch和kibana安裝完成)
x-pack是elasticsearch的一個擴展包,將安全,警告,監視,圖形和報告功能捆綁在一個易於安裝的軟件包中,雖然x-pack被設計爲一個無縫的工做,可是你能夠輕鬆的啓用或者關閉一些功能
bin/elasticsearch-plugin install x-pack bin/kibana-plugin install x-pack
裝了 x-pack 以後訪問受到限制,這裏默認的用戶名:elastic,密碼:changeme。能夠經過 curl 修改默認密碼
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }
這時候有兩個地方須要修改:
logstash server端的配置文件
input { redis { host => "127.0.0.1" port => "6379" password => "test123!" key => "logstash-ucenter" data_type => "list" type=> "ucenter_warn" } } output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" document_type => "%{type}" user => "elastic" //這裏須要帳號和密碼了 password => "test123!" } }
kibana的配置文件
vim config/kibana.yml # 將默認配置改爲以下: server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://192.168.2.41:9200" kibana.index: ".kibana" elasticsearch.username: "elastic" //這裏的帳戶密碼 elasticsearch.password: "test123!" # 這裏帳戶密碼要和 elastic一致
補充kibana關閉小技巧:
fuser -n tcp 5601 kill -9 端口
定時刪除指定索引(由於資源佔用較多,本身選擇)
經過crontab -e定時執行腳本實現,固然也能夠本身安裝 curator
#!/bin/sh # delete old index by date s刪除兩天前的一天 today=`date -d -2days '+%Y.%m.%d'` echo $today curl -u elastic:qq2017! -XDELETE "http://127.0.0.1:9200/logstash-nginx-"${today} > /tmp/elk_clean.txt echo "ok"
qq技術交流羣:208779755