前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZABBIX 4.4.0 + TimescaleDB

ZABBIX 4.4.0 + TimescaleDB

作者头像
没有故事的陈师傅
发布2019-12-11 14:18:11
2.8K2
发布2019-12-11 14:18:11
举报
文章被收录于专栏:运维开发故事

2019.10 ZABBIX 4.4.0 正式发布,发布全新的基于Go语言编写全新agent2和众多新功能特性,接下来介绍最重要的新功能,TimescaleDB数据库,ZABBIX除了支持MySQL、PostgreSQL、Oracle和DB2之外,ZABBIX 官方正式宣布支持TimescaleDB。与传统的关系数据库相比,TimescaleDB有诸多优点:近乎线性的性能水平,支持自动即时删除旧的历史数据,更容易维护等等

TimescaleDB

TimescaleDB是基于PostgreSQL的时序数据库插件,完全继承了PostgreSQL的功能,对于复杂查询,各种类型(GIS,json,k-v,图像特征值,range,数组,复合类型,自定义类型,…..)的支持非常丰富,非常适合工业化的时序数据库场景需求。具有以下特点:

1.基于时序优化

2.自动分片(按时间、空间自动分片(chunk))

3.全SQL接口

4.支持垂直横向扩展

5.支持时间维度、空间维度自动分区。空间维度指属性字段(例如传感器ID,用户ID等)

6.支持多个SERVER,多个CHUNK的并行查询。分区在TimescaleDB中被称为chunk。

7.自动调整CHUNK的大小

8.内部写优化(批量提交、内存索引、事务支持、数据倒灌)。内存索引,因为chunk size比较适中,所以索引基本上都不会被交换出去,写性能比较好。数据倒灌,因为有些传感器的数据可能写入延迟,导致需要写以前的chunk,timescaleDB允许这样的事情发生(可配置)。

9.复杂查询优化(根据查询条件自动选择chunk,最近值获取优化(最小化的扫描,类似递归收敛),limit子句pushdown到不同的server,chunks,并行的聚合操作)

10.利用已有的PostgreSQL特性(支持GIS,JOIN等),方便的管理(流复制、PITR)

11.支持自动的按时间保留策略(自动删除过旧数据)

基础架构

Linux系统配置

系统版本

代码语言:javascript
复制
cat  /etc/redhat-release
CentOS Linuxrelease 7.6.1810 (Core)

安装软件包

代码语言:javascript
复制
yum install epel-release
yum -y install sysstat traceroute  net-tools telnet  tree net-snmp-utils htop vim lrzsz tcpdump wget git

关闭selinux

永久关闭将配置文件中参数selinux改为disabled

临时关闭setenforce 0

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

修改ulimit(最大进程数和最大文件打开数)

修改 /etc/security/limits.conf 文件

代码语言:javascript
复制
*               soft      nofile          65536
*               hard     nofile          65536
*               soft       nproc           65536
*               hard      nproc           65536

* 代表针对所有用户

nproc 是代表最大进程数

nofile 是代表最大文件打开数

关闭交换内存优化系统参数

代码语言:javascript
复制
vim /etc/sysctl.conf
vm.swappiness =0
vm.max_map_count= 262144
net.core.somaxconn=65535
net.ipv4.ip_forward= 1

激活设置

sysctl -p

修改完需要重启系统

主机清单

hosname

ip

Version

zabbix-server

192.168.99.200

zabbix 4.4.0

zabbix-db

192.168.99.221

PostgreSQL 11.5

Postgresql部署

timescaledb是 postgres的一个 扩展 插件 , 所以要安装 timescaledb就先要安装 postgres

安装postgresql

代码语言:javascript
复制
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

安装客户端

代码语言:javascript
复制
yum install postgresql11

安装服务端

代码语言:javascript
复制
yum install postgresql11-server

初始化数据库并设置为开机自动启动

代码语言:javascript
复制
/usr/pgsql-11/bin/postgresql-11-setup initdb 

启动并开机启动

代码语言:javascript
复制
systemctl enable postgresql-11 && systemctl start postgresql-11

Timescaledb部署

添加timescaledb的yum源

代码语言:javascript
复制
vim etc/yum.repos.d/timescale_timescaledb.repo
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

安装timescaledb插件

代码语言:javascript
复制
yum install -y timescaledb-postgresql-11

配置postgresql.conf 使用postgres启动时加载‘timescaledb’

代码语言:javascript
复制
vim/var/lib/pgsql/11/data/postgresql.confshared_preload_libraries = 'timescaledb'

重启Postgresql服务

代码语言:javascript
复制
systemctl  restart  postgresql-11

Postgresyum 安装默认会创建一个postgres的用户

切换到postgres用户

su postgres

执行psql ,进入postgres的命令行

psql

\q退出

在psql命令行修改默认用户密码(默认无密码)

代码语言:javascript
复制
ALTERUSER postgres WITH PASSWORD '123456';

修改postgres的监听地址,默认只能为 本地连接

代码语言:javascript
复制
vi/var/lib/pgsql/11/data/postgresql.conf
listen_addresses = '*'  

允许所有地址 来连接该数据库

代码语言:javascript
复制
vi/var/lib/pgsql/11/data/pg_hba.conf
host   all            all            0.0.0.0/0              md5

重启服务

代码语言:javascript
复制
systemctl start postgresql-11

测试数据库远端登录

psql -Upostgres -h 192.168.99.221

注意:ZABBIX Server支持TimescaleDB,Zabbix Proxy不支持TimescaleDB。

ZABBIX TimescaleDB数据库配置

创建zabbix用户并授权

代码语言:javascript
复制
sudo-upostgres psql
create user zabbix with password 'zabbixpwd123';
create database zabbix owner zabbix;
grantall privileges on database zabbix to zabbix;
数据库创建
echo"CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo-u postgrespsqlzabbix

以下步骤需要在安装完成zabbix-server执行

导入zabbix数据库

代码语言:javascript
复制
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz| sudo -u zabbix psql zabbix –h 192.168.99.221
zcat/usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz| sudo -u zabbix psql zabbix  -h 192.168.99.221

至此zabbixTimescaledb数据库部署完成!

ZABBIX Server部署

配置ZABBIX官方yum数据源(zabbix 4.4 集成nginx rpm 包)

代码语言:javascript
复制
yum  localinstall zabbix-nginx-conf-4.4.0-1.el7.noarch.rpm

安装LNMP软件包

代码语言:javascript
复制
#yum install nginx php  php-fpm  php-mysql  –y

启动配置并开机启动

代码语言:javascript
复制
systemctl  start nginx && systemctl enable nginx

注意:zabbix-nginx-conf软件包为Zabbix前端安装了单独的Nginx服务器。其配置文件位于中/etc/nginx/conf.d/zabbix.conf。为了使Zabbix前端正常工作,必须取消注释和设置listen和server_name指令。

查看端口是否已经启动监听状态

代码语言:javascript
复制
[root@zabbix ~]# netstat  -auntlp |grep -w 80
启动php-fpm(不启动php-fpm,php链接失败)
systemctl start php-fpm && systemctl enable  php-fpm

ZABBIX-Server 安装

配置ZABBIX官方yum数据源

代码语言:javascript
复制
rpm -Uvhhttps://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

yum 安装zabbix server 和zabbix前端Web组件

代码语言:javascript
复制
yum-y install zabbix-server-pgsql zabbix-web-pgsql

由于在线yum安装软件包较慢,这里将软件包上传至/opt目录下使用yum localinstall安装

代码语言:javascript
复制
yum localinstall zabbix-server-pgsql-4.4.0-1.el7.x86_64.rpm zabbix-web-pgsql-4.4.0-1.el7.noarch.rpm zabbix-web-4.4.0-1.el7.noarch.rpm zabbix-get-4.4.0-1.el7.x86_64.rpm

编辑zabbix server 配置文件

代码语言:javascript
复制
egrep-v "*#|^$" /etc/zabbix/zabbix_server.conf |grep DB
DBHost=192.168.99.221
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpwd123
DBPort=5432

启动并开机启动zabbix-serber服务

代码语言:javascript
复制
#systemctl start zabbix-server && systemctl enable zabbix-server

ZABBIX PHP优化

配置PHP 相关参数

vim /etc/php-fpm.d/zabbix.conf

其配置文件位于中/etc/php-fpm.d/zabbix.conf。PHP参数已经配置。但是有必要在此文件中设置正确的date.timezone。

重启php-fpm

代码语言:javascript
复制
systemctl restart php-fpm

ZABBIX Web UI 安装ZABBIX 4.4.0

ZABBIX Web中文显示优化

在Windows 系统中找到 C:\Windows\Fonts 中的楷体(常规)复制到windows桌面上

通过cecureFX上传在zabbix server /usr/share/fonts/dejavu/ 目录下

查看zabbix字体软链接

代码语言:javascript
复制
[root@zabbixdejavu]# cd/etc/alternatives/
[root@zabbixdejavu]# ll
[root@zabbixdejavu]# mv simkai.ttf zabbix.ttf
[root@zabbixdejavu]# rm -f /etc/alternatives/zabbix-web-font
[root@zabbixdejavu]# ln -s /usr/share/fonts/dejavu/zabbix.ttf /etc/alternatives/zabbix-web-font

以上文章来源于开源搬运工宋师傅,作者songhongpeng

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux系统配置
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档