iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0

雖然Logstash有內建Persistent Queues,官網也強調說可以用來取代Redis或是RabbitMQ,Apache Kafka這類的消息隊列,但還是不建議使用Persistent Queues原因有幾個:

  • Logstash本身就算吃資源的服務在增加Persistent Queues負擔更是拖垮效能
  • Logstash的Persistent Queues是獨立的在本機上的,所以當有兩台Logstash以上時其中一台無法處理時也不法互相幫忙處理

所以這邊用Redis來當作緩存

Redis安裝

sudo apt-get update && sudo apt-get install redis-server -y

設定自動啟動Redis

sudo systemctl enable redis-server.service

啟動Redis

sudo systemctl start redis-server.service

設定Redis

編輯 /etc/redis/redis.conf

maxmemory 1700mb #應該保留機器上的一半給fork子進程
maxmemory-policy noeviction #當記憶體滿了的時候不會刪除,只會回傳error避免key遺失

優化redis

查看 /var/log/redis/redis-server.log 如果有看到這些

# WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the
command 'sysctl vm.overcommit_memory=1' for this to take effect.

編輯 /etc/sysctl.conf

vm.overcommit_memory=1
net.core.somaxconn= 1024 #連線數

vm.overcommit_memory用來設置內存分配策略,它有三個可選值,如下表所示。

vm.overcommit_memory 含義
0 表示內核將檢查是否有足夠的可用內存。如果有足夠的可用內存,內存申請通過,否則內存申請失敗,並把錯誤返回給應用進程
1 表示內核允許超量使用內存直到用完為止
2 表示內核決不過量的(“never overcommit”)使用內存,即系統整個內存地址空間不能超過swap+50%的RAM值,50%是overcommit_ratio默認值,此參數同樣支持修改

上一篇
Day13-用Filebeat來收Log(二)
下一篇
Day15-設定索引生命週期管理(一)
系列文
Elastic Stack 是一把梭,用起來再說!!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言