安装nginx
安装yum-utils
1 | sudo yum install yum-utils |
创建nginx官方镜像源
1 | /etc/yum.repos.d/nginx.repo |
安装nginx
1 | yum install nginx |
安装PostgreSQL+TimescaleDB
PostgreSQL安装
Install the repository RPM:
1 | sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm |
Disable the built-in PostgreSQL module:
1 | sudo dnf -qy module disable postgresql |
Install PostgreSQL:
1 | sudo dnf install -y postgresql17-server |
Optionally initialize the database and enable automatic start:
1 | sudo /usr/pgsql-17/bin/postgresql-17-setup initdb |
TimescaleDB安装:
添加 TimescaleDB 存储库
1 | sudo tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL |
更新本地仓库列表
1 | sudo yum update |
安装 TimescaleDB
1 | sudo yum install timescaledb-2-postgresql-17 |
为 TimescaleDB 优化 PostgreSQL 实例
这个命令执行后全部输入Yes会将配置修改为推荐的设置
1 | sudo timescaledb-tune --pg-config=/usr/pgsql-17/bin/pg_config |
重启Postgresql:
1 | sudo systemctl restart postgresql-17 |
以 postgres 身份登录 PostgreSQL
1 | sudo -u postgres psql |
设置 postgres 的密码
1 | \password postgres |
设置密码后,键入 \q 退出
强制使用密码登录
配置认证方法:
在 pg_hba.conf 文件中配置认证方法。
这个文件通常位于 PostgreSQL 数据目录中
例如
1 | /var/lib/pgsql/17/data/pg_hba.conf |
你需要为相应的用户和数据库配置使用密码认证的方法。
例如,要允许所有用户使用密码认证登录,可以添加或修改以下行:
1 | host all all 0.0.0.0/0 md5 |
这里 md5 表示使用 MD5 加密的密码进行认证。你也可以使用 scram-sha-256,这是 PostgreSQL 17 推荐的认证方法 。
重启 PostgreSQL 服务:
修改 pg_hba.conf 文件后,需要重启 PostgreSQL 服务以使更改生效。
在大多数系统上,你可以使用以下命令来重启服务:
1 | sudo systemctl restart postgresql-17 |
或者根据你的系统环境使用相应的命令。
测试连接:使用新设置的密码测试连接,以确保配置正确。
可以使用 psql 命令行工具连接到数据库:
1 | sudo -u postgres psql |
系统会提示你输入密码,这时应该输入你为 postgres 用户设置的密码。
请注意,出于安全考虑,不建议在生产环境中使用 trust 方法,因为它允许任何用户无需密码即可连接到数据库。始终使用密码认证,并确保密码足够复杂,以防止未经授权的访问 。
创建初始数据库
在数据库主机上运行以下代码。
1 | sudo -u postgres createuser --pwprompt zabbix |
切换到zabbix_db
1 | \c zabbix_db |
将 TimescaleDB 添加到数据库
1 | CREATE EXTENSION IF NOT EXISTS timescaledb; |
检查是否已安装 TimescaleDB
1 | \dx |
您将看到已安装扩展的列表:
1 | List of installed extensions |
查看分区情况
查看分区表的概览信息,可以查询timescaledb_information.hypertables
视图。这将显示所有已创建的超表(即被转换为支持时间序列数据存储的表)的元数据。
1 | SELECT * FROM timescaledb_information.hypertables; |
postgresql启用socket连接:
1 | /var/lib/pgsql/17/data/postgresql.conf |
安装zabbix
安装Zabbix源
1 | rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpm |
切换PHP的DNF模块版本
1 | dnf module switch-to php:8.2 |
安装Zabbix server, frontend, agent2
1 | dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 |
安装Zabbix agent 2插件
1 | dnf install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql |
导入初始架构和数据,系统将提示您输入新创建的密码。
1 | zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix_db |
源码安装zabbix导入初始架构和数据:
1 | cd database/postgresql |
对于新安装,运行 postgresql/timescaledb/schema.sql 脚本。 该脚本必须在使用初始模式/数据创建常规 PostgreSQL 数据库之后运行。
1 | cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix_db |
为Zabbix server配置数据库
编辑配置文件
1 | /etc/zabbix/zabbix_server.conf |
启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
1 | systemctl restart zabbix-server zabbix-agent2 nginx php-fpm |
报错解决:
1 | 报错信息 |