Wazuh应用之Elasticsearch的调优
|Word Count:501|Reading Time:2mins|Post Views:
概述
wazuh本身是一个对资源要求较低的系统,但长期运行下来,还是会出现各种各样资源使用不足的问题。因此,需要进行一定程度的优化和调整
调整ES参数
开启内存锁定参数
1 2 3 4
| # 锁定物理内存地址,防止ES内存被交换出去,避免频繁使用swap分区 cat >> /etc/elasticsearch/elasticsearch.yml <<EOF bootstrap.memory_lock: true EOF
|
限制系统资源
1 2 3 4 5 6 7
| # 配置Elasticsearch的systemd调用 mkdir -p /etc/systemd/system/elasticsearch.service.d/ cat > /etc/systemd/system/elasticsearch.service.d/elasticsearch.conf << EOF [Service] LimitMEMLOCK=infinity EOF
|
调整内核参数
1 2 3 4
| cat >> /etc/security/limits.conf <<EOF elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited EOF
|
调整JVM参数
1 2 3 4 5 6
| # 在可用内存使用率不超过50%,且使用量不超过32GB内存的情况下,设定Xms和Xmx的值为当年内存总量的一半 # 当前内存总量为8GB cat >> /etc/elasticsearch/jvm.options <<EOF -Xms4g -Xmx4g EOF
|
重启服务
1 2
| systemctl daemon-reload systemctl restart elasticsearch
|
设置分片和副本数据量
Wazuh设置单节点ES主机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 获取Wazuh ES 模板 curl https://raw.githubusercontent.com/wazuh/wazuh/v4.1.5/extensions/elasticsearch/7.x/wazuh-template.json -o w-elastic-template.json # 结合实际环境,设置分片数为1,副本数为0 { "order": 1, "index_patterns": ["wazuh-alerts-4.x-*"], "settings": { "index.refresh_interval": "5s", "index.number_of_shards": "1", "index.number_of_replicas": "0", "index.auto_expand_replicas": "0-1", "index.mapping.total_fields.limit": 2000 }, "mappings": { "...": "..." } }
# 应用模板 curl -X PUT "http://localhost:9200/_template/wazuh-custom" -H 'Content-Type: application/json' -d @w-elastic-template.json
|
设置永久分片数
1 2
| # 设置ES的永久分片数为20000 curl -XPUT "127.0.0.1:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{"persistent":{"cluster":{"max_shards_per_node":20000}}}'
|
删除过期分片
1 2
| # 删除2021.06所有分片 curl -XDELETE http://127.0.0.1:9200/wazuh-alerts-4.x-2021.06.*
|
硬件调优
使用固态磁盘
更多的CPU和内存