Zabbix 3.4.6版本开始支持历史数据存储到Elasticsearch, 早就想测试这个功能,最近有个需求需保存zabbix的历史数据上达十亿条,因此决定测试这功能的实用性,事实证明确实效果挺好。从今以后zabbix也支持大量的历史数据。
以下是测试12亿条数据存储环境:
测试环境
服务器系统:Ubuntu 16.04
Elasticsearch服务器IP:192.168.1.231
安装Elasticsearch
设置sysctl.conf
#vi /etc/sysctl.conf
vm.max_map_count=655360
#sysctl -p
设置limits.conf
#vi /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft nofile 65536
elasticsearch hard nofile 131072
elasticsearch soft nproc 65536
elasticsearch hard nproc 65536
/etc/elasticsearch/jvm.option
禁用swap
#vi /etc/fstab
#/dev/mapper/cryptswap1 none swap sw 0 0 注释
安装java
ELK依赖java,因此需要安装
#add-apt-repository ppa:webupd8team/java
#apt-get update
#apt-get install oracle-java8-installer
安装Elasticsearch服务
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.deb
#dpkg -i elasticsearch-6.4.2.deb
配置jvm文件
以下配置仅供参考
#vim /etc/elasticsearch/jvm.options
-Xms4g #配置服务器内存的50%
-Xmx4g #配置服务器内存的50%
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+AlwaysPreTouch
-server
-Xss1m
-Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djna.nosys=true
-XX:-OmitStackTraceInFastThrow
-Dio.netty.noUnsafe=true
-Dio.netty.noKeySetOptimization=true
-Dio.netty.recycler.maxCapacityPerThread=0