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.支持自动的按时间保留策略(自动删除过旧数据)


基础架构


ZABBIX 4.4.0 + TimescaleDB_sql


Linux系统配置

系统版本

cat  /etc/redhat-releaseCentOS Linuxrelease 7.6.1810 (Core)

安装软件包

yum install epel-releaseyum -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 文件*               soft      nofile          65536*               hard     nofile          65536*               soft       nproc           65536*               hard      nproc           65536

*         代表针对所有用户   nproc     是代表最大进程数   nofile     是代表最大文件打开数


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

vim /etc/sysctl.confvm.swappiness =0vm.max_map_count= 262144net.core.somaxconn=65535net.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

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

安装客户端

yum install postgresql11

安装服务端

yum install postgresql11-server

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

/usr/pgsql-11/bin/postgresql-11-setup initdb 

启动并开机启动

systemctl enable postgresql-11 && systemctl start postgresql-11


Timescaledb部署

添加timescaledbyum

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插件

yum install -y timescaledb-postgresql-11

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

vim/var/lib/pgsql/11/data/postgresql.conf

shared_preload_libraries = 'timescaledb'

重启Postgresql服务

systemctl  restart  postgresql-11

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


切换到postgres用户

su postgres

执行psql ,进入postgres的命令行


psql\q退出


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

ALTERUSER postgres WITH PASSWORD '123456';

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

vi/var/lib/pgsql/11/data/postgresql.conflisten_addresses = '*'  

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

vi/var/lib/pgsql/11/data/pg_hba.confhost   all            all            0.0.0.0/0              md5


重启服务

systemctl start postgresql-11

测试数据库远端登录

psql  -Upostgres -h 192.168.99.221ZABBIX 4.4.0 + TimescaleDB_postgresql_02


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


ZABBIX TimescaleDB数据库配置

创建zabbix用户并授权

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数据库

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 包)

yum  localinstall zabbix-nginx-conf-4.4.0-1.el7.noarch.rpm安装LNMP软件包#yum install nginx php  php-fpm  php-mysql  –y启动配置并开机启动systemctl  start nginx && systemctl enable nginx


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


ZABBIX 4.4.0 + TimescaleDB_linux_03


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

[root@zabbix ~]# netstat  -auntlp |grep -w 80

启动php-fpm(不启动php-fpm,php链接失败)

systemctl start php-fpm && systemctl enable  php-fpm


ZABBIX-Server 安装

配置ZABBIX官方yum数据源

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组件

yum-y install zabbix-server-pgsql zabbix-web-pgsql

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


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 配置文件

egrep-v "*#|^$" /etc/zabbix/zabbix_server.conf |grep DB

DBHost=192.168.99.221

DBName=zabbix

DBUser=zabbix

DBPassword=zabbixpwd123

DBPort=5432


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

#systemctl start zabbix-server && systemctl enable zabbix-server


 ZABBIX PHP优化

配置PHP 相关参数

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

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

ZABBIX 4.4.0 + TimescaleDB_php_04


重启php-fpm

systemctl restart php-fpm


ZABBIX Web UI 安装ZABBIX 4.4.0


ZABBIX 4.4.0 + TimescaleDB_postgresql_05


ZABBIX 4.4.0 + TimescaleDB_php_06

ZABBIX 4.4.0 + TimescaleDB_nginx_07


ZABBIX Web中文显示优化

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

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

查看zabbix字体软链接

[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


加群交流在后台回复“加群”,添加小编微信,小编拉你进去猜您喜欢往期精选▼centos/redhat 7 下zabbix安装及使用
利用 Shell 脚本来监控 Linux 系统的内存
Linux 命令行下的好东西
243张图片为你解析Linux轻量级自动运维化工具Ansible
Linux 之 crontab 使用
Linux 性能调优的思路
END
更多资源尽在星球,后台回复“星球”获取优惠