ELK 根據業務配置及最佳化

來源:互聯網
上載者:User

標籤:配置   elk   

ELK部署完成後,出現了一些問題,需要調整及最佳化。

1.elasticsearch 調節堆記憶體大小:

Elasticsearch預設設定的記憶體是1GB,對於業務較小,所以需要將機器一半記憶體配置給jvm

查看系統記憶體:

# free -m           total       used       free     shared    buffers     cachedMem:         24028      20449       3579          0        185       8151-/+ buffers/cache:      12112      11916Swap:            0          0          0


系統為24G計劃將12G分配給jvm

修改方式

(1).修改ES_HEAP_SIZE環境變數

vim /etc/profileexport ES_HEAP_SIZE=12Gsource /etc/profile


(2).啟動指定分配記憶體

./bin/elasticsearch -Xmx12G -Xms12G


重啟查看配置是否生效:

/etc/init.d/elasticsearch restart

查看:

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/3A/wKioL1c750Hh0kFnAABXfVcRjGc858.png" title="el2.png" alt="wKioL1c750Hh0kFnAABXfVcRjGc858.png" />

2.設定檔修改

vim elasticsearch.ymlootstrap.mlockall: true

設定為true來鎖住記憶體。因為當jvm開始swapping時es的效率會降低,所以要保證它不swap,可以把ES_MIN_MEM和ES_MAX_MEM兩個環境變數設定成同一個值,並且保證機器有足夠的記憶體配置給es。 同時也要允許elasticsearch的進程可以鎖住記憶體.


3.錯誤:[[FIELDDATA] Data too large, data for [proccessDate] 

資料說明如下:

fielddata的大小是在資料被載入之後才校正的。假如下一個查詢準備載入進來的fieldData讓緩衝區超過可用堆大小會發生什嗎?很遺憾的是,它將產生一個OOM異常。 

斷路器就是用來控制cache載入的,它預估當前查詢申請使用記憶體的量,並加以限制。

# curl -XGET http://localhost:9200/_cluster/settings?pretty{  "persistent" : {    "indices" : {      "breaker" : {        "fielddata" : {          "limit" : "40%"        }      },      "store" : {        "throttle" : {          "max_bytes_per_sec" : "100mb"        }      }    }  },  "transient" : {    "cluster" : {      "routing" : {        "allocation" : {          "enable" : "all"        }      }    }  }}

說明:fielddata 斷路器限制fielddata的大小,預設情況下為堆大小的60%。這裡設定為40%

4.修改logstash 的refresh intervel

預設設定的5秒,根據業務判斷太頻繁,所以希望改小:

# curl -XGET http://localhost:9200/_template/logstash?pretty{  "logstash" : {    "order" : 0,    "template" : "logstash-*",    "settings" : {      "index" : {        "refresh_interval" : "5s"      }    },.....

修改為20秒:

cd /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-elasticsearch-1.0.7-java/lib/logstash/outputs/elasticsearchvim elasticsearch-template.json{  "template" : "logstash-*",  "settings" : {    "index.refresh_interval" : "20s"  }, ....

 重啟服務

/etc/init.d/logstash restart

5.設定代理及認證

使用nginx 反向 Proxykibana及認證

#vim kibana.conf server {    listen      80;    server_name ckl.kibana.com;    error_log /data/log/kibana_error.log;    proxy_headers_hash_max_size 5120;    proxy_headers_hash_bucket_size 640;    location / {        proxy_pass http://0.0.0.0:5601;        auth_basic "Restricted";        auth_basic_user_file /usr/local/nginx/conf/ssl/site_pass;        proxy_set_header Connection "";        proxy_set_header Host $host;        proxy_set_header X-Real-IP $http_x_forwarded_for;        proxy_set_header X-Forwarded-Server $host;        proxy_set_header X-Forwarded-For $http_x_forwarded_for;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;       }}
cat /usr/local/nginx/conf/ssl/site_passckl:1TFEeTtLwlF7ZgMG


認證密碼為htpasswd產生的密碼:

如果別人知道你的5601直接存取怎麼辦,最簡單,做個連接埠轉寄吧

iptables -t nat -A PREROUTING -p tcp --dport 5601 -j REDIRECT --to-port 80

本文出自 “深呼吸再出擊” 部落格,請務必保留此出處http://ckl893.blog.51cto.com/8827818/1774668

ELK 根據業務配置及最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.