Zabbix的数据存储及数据后续处理是个棘手问题,这会直接影响MY SQL,进而影响整个Zabbix的性能,通常乐维监控的处理是这样的:1、建立分区表;2、一周清除历史数据;3、保存趋势数据以满足数据表呈现的需要等。
就在2017年12月28日,Zabbix发布了的3.4.5支持了Elasticsearch作为历史数据存储,它提供了一个分布式多用户能力的全文搜索引擎,能够实现对历史数据的实时,稳定,可靠,快速搜索,而且不干扰当前Zabbix的性能。以下引述好友网易狼总(Geekwolf )的详细测试报告(http://www.simlinux.com/2018/01/09/zabbix-es.html):
部署Elasticsearch
安装Elasticsearch和Kibana:
echo "deb http://http.debian.net/debian jessie-backports main" >>/etc/apt/source.list
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" > /etc/apt/sources.list.d/elastic-6.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get -y update
apt-get install -t jessie-backports openjdk-8-jdk
update-java-alternatives -s java-1.8.0-openjdk-amd64
apt-get install -y elasticsearch kibana
配置Elasticsearch和Kibana(两者在同一台机):
vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
vim /etc/kibana/kibana.yml
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
启动Elasticsearch和kibana服务
/etc/init.d/elasticsearch start
/etc/init.d/kibana start
Zabbix3.4.0升级至3.4.5
注: 由于Zabbix3.4.5对libcurl库要求在7.20.0或者更高,Debian 8下面默认是7.38.0
/etc/init.d/zabbix_server stop
tar xf zabbix-3.4.5.tar.gz
cd zabbix-3.4.5
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make -j8
make install
Zabbix_server配置支持Elasticsearch
vim /usr/local/etc/zabbix_server.conf
HistoryStorageURL=http://192.168.100.100:9200
HistoryStorageTypes=uint,dbl,str,log,text
说明:
Elasticsearch支持的监控项类型:uint,dbl,str,log,text
监控项数据类型|数据库表|对应Elasticsearch类型:
Zabbix Web配置历史数据读Elasticsearch
修改配置文件vim conf/zabbix.conf.php
1. 如果不同类型使用不同的ES集群,可以按如下进行配置
$HISTORY['url'] = [
'uint' => 'http://localhost1:9200',
'text' => 'http://localhost2:9200'
];
$HISTORY['types'] = ['uint', 'text'];
2. 所有类型使用相同ES集群
$HISTORY['url'] = 'http://192.168.100.100:9200';
$HISTORY['types'] = ['str', 'text', 'log', 'uint', 'dbl'];
注: 3.4.0升级到3.4.5后,请勿使用旧的zabbix.conf.php,根据新的zabbix.conf.php.example重新配置
重启Zabbix Server
/etc/init.d/zabbix_server start
此时可以通过观察日志,查看是否连接ES成功
测试
1、Zabbix配置ES成功后,通过Kibana可以看到:
2、创建索引
3、通过Zabbix Web访问是否正常显示数据