Bootstrap

【特别篇】【单机部署】zabbix7 lts+postgresql+timescaleDB源码部署

部分小伙伴服务器没有外网环境,今天模拟场景部署。

此办法应该普遍适用于rhel系发行版本

操作系统环境:rockylinux9.4 最小化安装,已经挂载离线DVD包,

网络:无法访问公网的机器

配置:16C32G500G虚拟机(配置大小决定了后面的zabbix与数据库的性能相关配置)

一、配置本地源安装软件(你也可以选择把dvd文件里面cp到其他目录,改一下就行了,我是节省空间,所以挂载dvd的方式)

#创建一个挂载点
sudo mkdir -p /mnt/dvd
#挂载 DVD,注意:/dev/sr0是你的光盘的路径,不同的环境会不一样的
sudo mount /dev/sr0 /mnt/dvd


#设置开机自动挂载
echo '/dev/sr0 /mnt/dvd iso9660 defaults 0 0' | sudo tee -a /etc/fstab

#取消系统自带的其他源 

sudo sh -c 'for file in /etc/yum.repos.d/*.repo; do mv "$file" "$file.bak"; done'
#创建本地源,注意路径按照你实际的来
sudo tee /etc/yum.repos.d/dvd.repo > /dev/null <<EOL
[dvd]
name=Rocky Linux 9 - DVD
baseurl=file:///mnt/dvd/BaseOS/
enabled=1
gpgcheck=0

[dvd-AppStream]
name=Rocky Linux 9 - DVD AppStream
baseurl=file:///mnt/dvd/AppStream/
enabled=1
gpgcheck=0
EOL
#清理所有 DNF 缓存,包括软件包、元数据和其他缓存数据
dnf clean all
# 创建或更新本地 DNF 缓存,从启用的仓库中下载并缓存元数据
dnf makecache

测试安装个vim 

dnf install vim -y

 本地DVD源进行vim安装测试。

 安装相关依赖

dnf groupinstall "Development Tools" -y && sudo dnf install icu libicu libicu-devel readline readline-devel -y

二、安装postgresql 16

下载postgresql数据库

PostgreSQL: File Browser

我下载的是16.3版本

将下载好的包postgresql-16.3.tar.gz上传到根目录,这个目录你自己选,随便都行。怎么上传,没必要写了。我是直接甩根目录,图省事了。

解压源码包

tar -zxvf /postgresql-16.3.tar.gz

编译安装,一条条的执行,注意看有没有什么报错

cd postgresql-16.3
./configure
make && make install

#创建一个名为 postgres 的用户,同时创建一个与用户同名的用户组 postgres,并将用户添加到该组中
sudo useradd -m -U postgres

# 创建 PostgreSQL 数据目录,如果目录路径中任何一部分不存在,则创建这些目录
mkdir -p /usr/local/pgsql/data

# 更改目录 /usr/local/pgsql/data 的所有者为 postgres 用户和postgres用户组
chown postgres:postgres /usr/local/pgsql/data

配置postgres用户环境变量,我的postgres用户创建的目录以及bashrc文件在/home/postgres里面,直接用root用户执行下面的命令即可

echo -e "\n# 自动切换到用户主目录\ncd ~\n\n# 设置 PGDATA 环境变量\nexport PGDATA=/usr/local/pgsql/data" >> /home/postgres/.bashrc

 #创建systemd管理数据库启动

sudo tee /usr/lib/systemd/system/postgresql-16.service > /dev/null <<EOF
[Unit]
Description=PostgreSQL 16 database server
Documentation=https://www.postgresql.org/docs/16/static/
After=syslog.target
After=network-online.target

[Service]
Type=notify
User=postgres
Group=postgres
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
ExecStart=/usr/local/pgsql/bin/postgres -D \${PGDATA}
ExecReload=/bin/kill -HUP \$MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0

[Install]
WantedBy=multi-user.target
EOF

三、下载安装zabbix

源码下载地址

Download Zabbix sources

将下载好的包zabbix-7.0.0.tar.gz上传到根目录,这个目录你自己选,随便都行。怎么上传,没必要写了。我是直接甩根目录,图省事了。

解压源码包

tar -zxvf /zabbix-7.0.0.tar.gz

创建就zabbix用户组以及用户

sudo groupadd --system zabbix && sudo useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

 创建目录 /usr/lib/zabbix,设置权限为用户和组可读写执行,其他人无权限,并将该目录的所有者和所属组修改为 zabbix 用户和 zabbix 组

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix && sudo chown zabbix:zabbix /usr/lib/zabbix

;