内容简介:(一)背景介绍zabbix是一个大型的分布式的监控系统,监控的范围比较广,是目前比较流行的监控系统,但是由于自身的原因,历史数据不能持久保存,如果数据库的数据大于100G左右查询或其他的速度会非常的慢,会触发很多问题,一般的zabbix历史数据会不超过一个月(按实际获得的数据比例计算),我们一般保存七天。一般为了业务的需要,往往会需要很长的历史数据来进行查看和排查问题,这就需要使zabbix的历史数据进行长久保存(不能存数据库,而可以存ES存储)。(二)环境
(一)背景介绍
zabbix是一个大型的分布式的监控系统,监控的范围比较广,是目前比较流行的监控系统,但是由于自身的原因,历史数据不能持久保存,如果数据库的数据大于100G左右查询或其他的速度会非常的慢,会触发很多问题,一般的zabbix历史数据会不超过一个月(按实际获得的数据比例计算),我们一般保存七天。一般为了业务的需要,往往会需要很长的历史数据来进行查看和排查问题,这就需要使zabbix的历史数据进行长久保存(不能存数据库,而可以存ES存储)。
(二)环境
zabbix:zabbix4.0.1(安装部署省略)
ES:5.5.2 (安装部署省略)
(三)具体的配置
3.1、首先修改zabbix_server.conf文件,启用历史数据的配置,具体如下:
$grep '^[a-Z]' /etc/zabbix/zabbix_server.conf LogFile=/tmp/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix HistoryStorageURL=http://X.X.X.X:9200 HistoryStorageTypes=uint,db1,str,log,text HistoryStorageDateIndex=1 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr
########################下边是具体的解释####################################
### Option: HistoryStorageURL # History storage HTTP[S] URL. # # Mandatory: no # Default: # HistoryStorageURL= #HistoryStorageURL="-uelastic:FatPPdaiCom http://10.114.16.77:9200" HistoryStorageURL=http://10.114.23.139:9200 ### Option: HistoryStorageTypes # Comma separated list of value types to be sent to the history storage. # # Mandatory: no # Default: # HistoryStorageTypes=uint,db1,str,log,text HistoryStorageTypes=uint,db1,str,log,text ### Option: HistoryStorageDateIndex # Enable preprocessing of history values in history storage to store values in different indices based on date. # 0 - disable # 1 - enable # # Mandatory: no # Default: HistoryStorageDateIndex=1
备注:下边是ES所支持存储的数据类型
3.2、修改zabbix前端的配置文件,添加global $DB,$HISTORY;
$vim /etc/zabbix/web/zabbix.conf.php <?php // Zabbix GUI configuration file. global $DB,$HISTORY; #global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER = '10.114.23.230'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = 'zabbix'; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; // Elasticsearch url (can be string if same url is used for all types). $HISTORY['url'] = 'http://X.X.X.X:9200'; #$HISTORY['url'] = '-uelastic:FatPPdaiCom http://X.X.X.X:9200'; // Value types stored in Elasticsearch. $HISTORY['types'] = ['uint', 'text', 'log', 'str', 'db1']; //-------------------------------------------------------------------------------------------------------------------------- //如果不同类型使用不同的 ES 集群,可以按如下进行配置 #$HISTORY['url'] = [ # 'uint' => 'http://10.114.16.77:9200 ', # 'text' => 'http://10.114.16.77:9200 ' #]; #$HISTORY['types'] = ['uint', 'text'];
注意的要点:
1、HISTORY['url']和HISTORY['types']被更新。
2、定义zabbix GUI全局数据源路径文件 global $DB, $HISTORY;(告诉zabbix先从数据库里读取,没有的话取HISTORY读取)
3.3、在ES上依次创建五个索引(不创建也可以,会自动创建的)
$curl -XPUT http://X.X.X.X:9200/unit \ -H 'content-type:application/json' \ -d '{ "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "type" : "long" } } } } }' $curl -XPUT http://X.X.X.X:9200/db1 \ -H 'content-type:application/json' \ -d '{ "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "type" : "double" } } } } }' $curl -XPUT http://X.X.X.X:9200/log \ -H 'content-type:application/json' \ -d '{ "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } }' $curl -XPUT http://X.X.X.X:9200/text \ -H 'content-type:application/json' \ -d '{ "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } }' $curl -XPUT http://X.X.X.X:9200/str \ -H 'content-type:application/json' \ -d '{ "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } }'
3.4、在ES上查看是否生成:
$curl http://X.X.X.X:9200/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open str ZTkdqhpFR9ijzTfKvtsMrQ 5 1 0 0 2.2kb 1.1kb green open text TjY6OEGySJ2AGc1rpfOEhA 5 1 0 0 2.2kb 1.1kb green open log qG-R2UhiQhypP9stSSodkw 5 1 0 0 2.2kb 1.1kb green open db1 av_V5XbiSDyDdZXW0rO6aw 5 1 0 0 2.2kb 1.1kb green open .kibana JZBiyypQSRuMxRnHxOLP1Q 1 1 1 0 8kb 4kb green open unit 2bxxvaMTTFKqTq0EDX5EjA 5 1 0 0 2.2kb 1.1kb
3.5、在kibana上创建相应的索引并查看数据。
就可以看到历史数据会存储到ES中去
(四)、查看是否通过db访问还是es,修改该文件(/etc/zabbix/web/zabbix.conf.php)的全局变量就可以知道访问的是 mysql 还是ES了。
具体可以参考官方文档( https://www.zabbix.com/documentation/4.0/manual/appendix/install/elastic_search_setup )
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据库MySQL一般查询日志或者慢查询日志历史数据的清理
- ZABBIX4.0.2监控历史数据存放Elasticsearch及集群高可用方案
- 有数据的地方必有库,详解关系型数据库的发展历史
- 像数据专家一样备份资料、回溯历史:Git 入门
- Python数据分析之获取双色球历史信息的方法示例
- 破力 Poli 0.7.0 发布,支持Docker部署,新增HTML,日期组件和历史数据表
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blockchain Basics
Daniel Drescher / Apress / 2017-3-16 / USD 20.99
In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!