图片
张世宏(当代张思德) | Zabbix开源社区签约专家

2017-2021年连续5届Zabbix中国峰会演讲嘉宾

2020年Zabbix全球峰会演讲嘉宾

自主研发开源组件Zabbix报表系统ZbxTable,在社区大获好评

前言
Zabbix 6.0目前已发布beta1版本,包含众多新功能和新特性,本文主要介绍Zabbix 6.0 配置TimescaleDB,此安装配置方法可基本通用与其他版本。

TimescaleDB
TimescaleDB基于PostgreSQL数据库打造的一款时序数据库,插件化的形式部署,随着PostgreSQL的版本升级而升级,具备以下特点:

基于时序优化;

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

全SQL接口;

支持垂直于横向扩展;

支持时间维度、空间维度自动分区。

空间维度指属性字段(例如传感器ID,用户ID等);

支持多个SERVER,多个CHUNK的并行查询。

分区在TimescaleDB中被称为chunk;

自动调整CHUNK的大小;

内部写优化(批量提交、内存索引、事务支持、数据倒灌);

复杂查询优化(根据查询条件自动选择chunk,最近值获取优化(最小化的扫描,类似递归收敛),limit子句pushdown到不同的;

server,chunks,并行的聚合操作);

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

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

Zabbix 从5.0版本开始全面支持TimescaleDB,并针对其特性做了优化。可自动压缩历史数据存储,节省50-70%的存储空间,同时具备自动分区功能。通过Zabbix Housekeeper清理历史数据时直接清理对应的分区,大大提高了历史数据的清理效率。建议新建系统采用TimescaleDB方案。

环境介绍
角色 配置 主机名 IP 版本
Zabbix Server 4v8G40G CentOS 8.5_x64 zbx-srv-61 172.16.66.61 Zabbix 6.0 beta1
Zabbix Web 4v8G40G CentOS 8.5_x64 zbx-web-63 172.16.66.63 Apache 2.4.3/PHP 7.2.24
Zabbix DB 4v8G40G CentOS 8.5_x64 zbx-db-64 172.16.66.64 PostgreSQL 13/TimescaleDB 2
此为实验环境,生产环境建议按照实际需要调整机器硬件配置。所有机器配置时间同步,并添加对应的hosts.

172.16.66.61 zbx-srv-61
172.16.66.63 zbx-web-63
172.16.66.64 zbx-db-61
Zabbix DB
安装好系统对系统进行初始化配置,安装必要的包.

初始化
yum update -y
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
systemctl disable --now firewalld
dnf install chrony wget -y
systemctl enable --now chronyd
setenforce 0
Zabbix 6.0目前支持PostgreSQL 13不支持最新的14版本,本次使用PostgreSQL 13+TimescaleDB。

安装PostgreSQL
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install -y postgresql13-server
安装TimescaleDB
添加TimescaleDB源

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/$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
EOL
安装TimescaleDB包

dnf install timescaledb-2-postgresql-13 -y
配置
初始化PostgreSQL

/usr/pgsql-13/bin/postgresql-13-setup initdb
启动PostgreSQL server

systemctl enable --now postgresql-13
添加TimescaleDB并配置参数

timescaledb-tune --pg-config=/usr/pgsql-13/bin/pg_config
会出现交互画面,一路y 即可,此步骤会根据当前机器配置,调整PostgreSQL配置参数,并加载Timescaledb插件库.
重启PostgreSQL生效.

systemctl restart postgresql-13
建立Zabbix用户及数据库

sudo -u postgres createuser --pwprompt zabbix
此处是需要输入数据库zabbix用户的密码,输入二次后确认。此处配置密码为: zabbixpwd_123
后续zabbix server连接数据库使用这个密码,用户为zabbix
创建zabbix数据库

sudo -u postgres createdb -O zabbix zabbix
为Zabbix数据库启用TimescleDB插件

echo “CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;” | sudo -u postgres psql zabbix
systemctl restart postgresql-13
成功后会出现如下画面,表示配置完成。
图片

下载Zabbix 6.0beta1源码并导入数据库。

wget https://cdn.zabbix.com/zabbix/sources/development/6.0/zabbix-6.0.0beta1.tar.gz
tar zxvf zabbix-6.0.0beta1.tar.gz
cd zabbix-6.0.0beta1/database/postgresql/
useradd zabbix
依次按照顺序导入三个Zabbix sql文件

cat schema.sql |sudo -u zabbix psql zabbix
cat images.sql |sudo -u zabbix psql zabbix
cat data.sql |sudo -u zabbix psql zabbix
导入TimescleDB表配置sql

cat timescaledb.sql |sudo -u zabbix psql zabbix
导入成功后会后如下提示
图片

修改配置允许远程连接

sed -i “s/#listen_addresses = ‘localhost’/listen_addresses = ‘*’/g” /var/lib/pgsql/13/data/postgresql.conf
sed -i ‘s/#port = 5432/port = 5432/g’ /var/lib/pgsql/13/data/postgresql.conf
sed -i ‘s/max_connections = 100/max_connections = 500/g’ /var/lib/pgsql/13/data/postgresql.conf
连接数修改成500,生产可根据实际情况修改。
配置使用md5方式认证

vi /var/lib/pgsql/13/data/pg_hba.conf
添加如下信息到# IPv4 local connections之后

host all all 0.0.0.0/0 md5
重启pgsql

systemctl restart postgresql-13
Zabbix Server
Zabbix Server使用源码编译方式安装,其他版本可参考此安装方式。

初始化
yum update -y
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
systemctl disable --now firewalld
dnf --enablerepo=powertools install OpenIPMI-devel -y
dnf install make wget chrony gcc curl-devel net-snmp-devel
libxml2-devel libevent-devel pcre-devel -y
setenforce 0 systemctl enable --now chronyd
由于后端采用PostgreSQL数据库,因此需要安装PostgreSQL的开发包。

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install -y postgresql13-devel -y
编译
下载Zabbix Server源码

useradd zabbix
wget https://cdn.zabbix.com/zabbix/sources/development/6.0/zabbix-6.0.0beta1.tar.gz
tar zxvf zabbix-6.0.0beta1.tar.gz
cd zabbix-6.0.0beta1/
编译

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent
–with-postgresql=/usr/pgsql-13/bin/pg_config --with-net-snmp
–with-libcurl --with-libxml2 --with-openipmi
此处会检测各种依赖组件及配置,如果出现error根据错误安装对应组件,无误后最终会输出所要安装的内容。
图片
执行make

make
make install
配置
安装后,需要修改配置文件里的数据库连接信息

sed -i ‘s/# DBHost=localhost/DBHost=172.16.66.64/g’ /usr/local/zabbix/etc/zabbix_server.conf
sed -i ‘s/# DBPassword=/DBPassword=zabbixpwd_123/g’ /usr/local/zabbix/etc/zabbix_server.conf
Zabbix 6.0增加了二个关于HA的配置参数,建议配置

sed -i ‘s/# HANodeName=/HANodeName=zbx-srv-61/g’ /usr/local/zabbix/etc/zabbix_server.conf
sed -i ‘s/# NodeAddress=localhost:10051/NodeAddress=172.16.66.61:10051/g’ /usr/local/zabbix/etc/zabbix_server.conf
HANodeName修改为主机名,这里最好配置唯一;
NodeAddress为节点地址,这里配置为实际ip+默认的10050端口;
创建Zabbix Server启动脚本

tee /lib/systemd/system/zabbix-server.service <<EOL
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
After=postgresql.service

[Service]
Environment=“CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf”
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target
EOL
创建Zabbix Agent启动脚本

tee /lib/systemd/system/zabbix-agent.service <<EOL
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment=“CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf”
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
EOL
启动
使用以下命令启动Zabbix Server及Zabbix Agent

systemctl enable --now zabbix-server
systemctl enable --now zabbix-agent
如启动异常,查看日志确认异常,日志位置/tmp/zabbix_server.log

Zabbix Web
Zabbix 6.0需要php最低版本为7.2,由于使用PostgreSQL,因此需要按照php的PostgreSQL扩展组件。

初始化
yum update -y
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
systemctl disable --now firewalld
dnf install wget chrony httpd php php-pgsql php-xml php-ldap php-json php-gd php-mbstring php-bcmath langpacks-zh_CN.noarch -y
systemctl enable --now chronyd
setenforce 0
安装Web
下载Zabbix源码,并拷贝到对应目录

wget https://cdn.zabbix.com/zabbix/sources/development/6.0/zabbix-6.0.0beta1.tar.gz
tar zxvf zabbix-6.0.0beta1.tar.gz
cd zabbix-6.0.0beta1/ui
cp -raf * /var/www/html/
修改php参数,并启动Apache和php

sed -i ‘s/post_max_size = 8M/post_max_size = 16M/’ /etc/php.ini
sed -i ‘s/max_execution_time = 30/max_execution_time = 300/’ /etc/php.ini
sed -i ‘s/max_input_time = 60/max_input_time = 300/’ /etc/php.ini
chown -R apache:apache /var/www/html/
systemctl enable --now httpd
systemctl enable --now php-fpm
Web初始化
浏览器输入Web IP地址:http://172.16.66.63/ 这里有个提示,不用关注
图片
确保这里全部ok再下一步,
图片
这里填入数据库服务器地址及配置的数据库密码zabbixpwd_123,并取消使用TLS连接
图片
这里zabbix server name留空即可,选择对应的时区,这里选择Asia/Shanghai
图片
确认无误后点击Next
图片
创建文件成功,如失败可能是web目录没有写入权限
图片
使用默认的帐号密码登陆,帐号:Admin 密码:zabbix
图片
首页
图片
安装成功

基本设置
安装完之后,需要对系统进行一些配置Administrator-Greneral-Housekeeping
这里可配置history(详情)数据与Trend(趋势)数据保留的时间。默认已开启7天历史数据压缩。
图片

Zabbix 6.0 TimescaleDB 安装配置相关推荐

  1. Zabbix 6.0 图文安装部署讲解---LNMP环境

    Zabbix 6.0 图文安装部署讲解---LNMP环境 简介 环境需求 部署环境 关闭系统防火墙 一.Mysql8.0.30 部署 二.nginx 部署 三.PHP 部署 四.zabbix-serv ...

  2. mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程

    mysql 8.0.18 安装配置方法图文教程 本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打 ...

  3. mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程

    本文记录了mysql 8.0.22 安装配置图文教程,供大家参考,具体内容如下 一.安装 (1).官网下载 (2).安装(前提是之前没安装过mysql,若安装过,下面有介绍卸载方式:若不知道有没有安装 ...

  4. VMware ESXI5.0的安装配置

    VMware ESXI5.0的安装配置   在最近发布的vSphere 5.0中,VMware淘汰了ESX,ESXi成为了唯一的hypervisor.在ESXi 5.0中,VMware提供了七大重要的 ...

  5. apache2.2 + php5.2.4 + mysql5.0.x 安装配置

    apache2.2  + php5.2.4  + mysql5.0.x 安装配置 我下载的都是安装版本,先对简单,需要修改的配置不多 发生错误后在google baidu上查找,所出现的错误都能找到, ...

  6. mysql8.0安装设置密码_mysql8.0.11安装配置方法图文教程 MySQL8.0新密码认证方式

    本文为大家分享了mysql8.0.11安装配置方法图文教程.MySQL8.0新密码认证方式,供大家参考,具体内容如下 1.前言 Oracle已经发布了MySQL8.0GA,GA在外国就是release ...

  7. tomcat7.0.81 linux,Linux/CentOS7.0下安装配置Tomcat8.0

    Linux/CentOS7.0下安装配置Tomcat8.0 一.配置Tomcat安装环境 1.下载对应的jdk 我用的是64位的下载地址: 下载将jdk加压后放到/usr/local目录下: 2.建立 ...

  8. ubuntu18.4中查看mysql_Ubuntu18.0.4下mysql 8.0.20 安装配置方法图文教程

    mysql 8.0.20 安装配置方法图文教程整理下,供大家参考. 一.准备工作 1.检查是否已经安装mysql 当前计算机没有安装mysql. 2.下载MySQL8.0. 根据MySQL安装指南,发 ...

  9. mysql 8.0.23 安装配置方法

    win10下mysql 8.0.23 安装配置方法图文教程 mysql 8.0.23 安装配置方法 一.下载mysql 二.环境配置: 三.安装: mysql 8.0.23 安装配置方法 本文为大家分 ...

最新文章

  1. 玩了一个人脸识别登录
  2. 比特币现金在与比特币的技术竞争中走在了前列
  3. 【UEditor】关于导入ueditor-1.1.3.jar的问题---
  4. C语言学习笔记-3.顺序结构程序设计
  5. 将你的Apache速度提高十倍的经验分享
  6. JavaScript学习笔记07【6个经典案例——电灯开关、轮播图、自动跳转首页、动态表格、表格全选、表单验证】
  7. caffe学习笔记19-batchsize参数
  8. 04_传智播客iOS视频教程_类是以Class对象存储在代码段
  9. C++多线程快速入门(三):生产者消费者模型与条件变量使用
  10. 【POJ - 2398】Toy Storage (计算几何,二分找位置,叉积,点和直线的位置关系)
  11. 【转】unity地形插件T4M使用帮助
  12. qlineedit 设置界面不能输入_一个类似QQ的登陆界面为什么两个输入QLineEdit的上下距离太远...
  13. php fpm 报错,PHP-FPM安装报错解决
  14. c语言九九乘法表的值,c语言九九乘法表!
  15. 【Code】背包问题九讲(崔添翼)
  16. html5 dicom opensource,基于HTML5标准的Dicom图像显示.pdf
  17. 浅谈Word.Application,关于js操作word文档的使用
  18. 单片机C语言学习(菜鸟入门)
  19. Unity后处理效果之边角压暗
  20. 如何在C语言中把int*转化为char*

热门文章

  1. 使用google authenticator打造运维平台的动态口令
  2. 卸载vuecli2安装vuecli3,创建vuecli3项目具体步骤
  3. 网络应用服务器的配置
  4. 设置App桌面图标上显示的角标数字
  5. Linux文件目录操作命令-pwd命令
  6. oppo手机删了android怎么办,oppo手机删除的照片如何恢复【恢复方法】
  7. LNMP环境搭建(linux+Nginx + Mysql + PHP)
  8. 奇瑞新能源有望迎来下一轮销量增长,奇瑞无界Pro正式上市
  9. C# 解析WMTS服务元数据
  10. linux下怎么网络抓包