TimescaleDB TimescaleDB基于PostgreSQL数据库打造的一款时序数据库,插件化的形式部署,随着PostgreSQL的版本升级而升级,具备以下特点:
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 beta1Zabbix Web 4v8G40G CentOS 8.5_x64 zbx-web-63 172.16.66.63 Apache 2.4.3/PHP 7.2.24Zabbix DB 4v8G40G CentOS 8.5_x64 zbx-db-64 172.16.66.64 PostgreSQL 13/TimescaleDB 2此为实验环境,生产环境建议按照实际需要调整机器硬件配置。所有机器配置时间同步,并添加对应的hosts. 172.16.66.61 zbx-srv-61172.16.66.63 zbx-web-63 172.16.66.64 zbx-db-61Zabbix DB 安装好系统对系统进行初始化配置,安装必要的包. 初始化yum update -ysed -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。 安装PostgreSQLdnf install -y https://download.postgresql.org/ ... o-latest.noarch.rpmdnf -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插件库. systemctl restart postgresql-13重启PostgreSQL生效. 建立Zabbix用户及数据库 sudo -u postgres createuser --pwprompt zabbix此处是需要输入数据库zabbix用户的密码,输入二次后确认。此处配置密码为: zabbixpwd_123 sudo -u postgres createdb -O zabbix zabbix后续zabbix server连接数据库使用这个密码,用户为zabbix 创建zabbix数据库 为Zabbix数据库启用TimescleDB插件 echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbixsystemctl restart postgresql-13 下载Zabbix 6.0beta1源码并导入数据库。 wget https://cdn.zabbix.com/zabbix/so ... x-6.0.0beta1.tar.gztar 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 zabbixcat 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.confsed -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,生产可根据实际情况修改。 vi /var/lib/pgsql/13/data/pg_hba.conf配置使用md5方式认证 添加如下信息到# IPv4 local connections之后 host all all 0.0.0.0/0 md5重启pgsql systemctl restart postgresql-13Zabbix ServerZabbix Server使用源码编译方式安装,其他版本可参考此安装方式。 初始化yum update -ysed -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/ ... o-latest.noarch.rpmdnf -qy module disable postgresql dnf install -y postgresql13-devel -y编译 下载Zabbix Server源码 useradd zabbixwget https://cdn.zabbix.com/zabbix/so ... x-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配置 安装后,需要修改配置文件里的数据库连接信息 sed -i 's/# DBHost=localhost/DBHost=172.16.66.64/g' /usr/local/zabbix/etc/zabbix_server.confsed -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.confsed -i 's/# NodeAddress=localhost:10051/NodeAddress=172.16.66.61:10051/g' /usr/local/zabbix/etc/zabbix_server.conf HANodeName修改为主机名,这里最好配置唯一; tee /lib/systemd/system/zabbix-server.service <<EOLNodeAddress为节点地址,这里配置为实际ip+默认的10050端口; 创建Zabbix Server启动脚本 [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-serversystemctl enable --now zabbix-agent 如启动异常,查看日志确认异常,日志位置/tmp/zabbix_server.log Zabbix WebZabbix 6.0需要php最低版本为7.2,由于使用PostgreSQL,因此需要按照php的PostgreSQL扩展组件。 初始化yum update -ysed -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/so ... x-6.0.0beta1.tar.gztar 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.inised -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-fpmWeb初始化 浏览器输入Web IP地址:http://172.16.66.63/ 这里有个提示,不用关注 |
错误信息
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!