Zabbix 随笔:安装篇(三)

2022-02-16 18:39:58 浏览数 (1)

该篇内容为基于 Timescale 时序插件的方案。

正文

环境处理

如果您的环境为自己装的系统,需要去掉SELINUX和防火墙的因素干扰,由于为测试环境,所以做如下处理(如果为生产环境,谨慎关闭)

代码语言:javascript复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld  && systemctl disable firewalld

环境

  • CentOS: 8.5
  • Zabbix 版本:6.0 beta2
  • Postgresql:13
  • Timescale:2.1
  • Nginx:1.21

安装 Zabbix 国内 yum 源

本文采用清华源,国内源比较多,根据个人喜好自行更换。

代码语言:javascript复制
cat <<EOF > /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.5/rhel/8/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591


[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/8/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX 
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX 
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

安装 Zabbix Server、前端、agent

本文的 agent为 agent2,可以自行替换。

代码语言:javascript复制
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 -y

安装数据库

1、安装 Postgresql 源。

代码语言:javascript复制
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y

2、替换为国内源。

代码语言:javascript复制
sed -i "s@https://download.postgresql.org/pub@https://mirrors.tuna.tsinghua.edu.cn/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo

3、禁用内置 Postgresql 版本(CentOS 7 无需操作)

代码语言:javascript复制
dnf -qy module disable postgresql

4、安装 Postgresql 。

代码语言:javascript复制
dnf install -y postgresql13-server

5、初始化并启动数据库

代码语言:javascript复制
/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl enable postgresql-13
systemctl start postgresql-13

安装 Timescale 插件

1、安装 timescale 源.

代码语言:javascript复制
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

2、安装 Timescale.

代码语言:javascript复制
dnf install timescaledb-2-postgresql-13 -y

3、加载 Timescale 插件。

代码语言:javascript复制
timescaledb-tune --pg-config=/usr/pgsql-13/bin/pg_config

4、重启数据库

代码语言:javascript复制
systemctl restart postgresql-13

配置数据库

进入 tmp 目录是避免使用 postgres 用户出现无权限报错(实际执行成功)。

代码语言:javascript复制
cd /tmp
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

5、开启 Timescale 插件

代码语言:javascript复制
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

导入 Zabbix 数据文件

代码语言:javascript复制
zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

导入时序插件数据文件

代码语言:javascript复制
cat /usr/share/doc/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix

配置 Postgresql 数据库

1、修改配置文件 如果是非 All-In-One 环境,这里必须进行调整,如果是这里可选,根据自身环境分析。另外在利用 timescale 插件初始化 Postgresql 数据库会更改数据库配置文件,除了监听地址改为 *,其他的不要改变。

代码语言:javascript复制
vim /var/lib/pgsql/13/data/postgresql.conf

2、修改权限文件 这里仅仅需要将 host 部分的验证方式改为 md5(用户名/密码方式),如果数据库分开部署,需要将IP地址改为使用库的IP地址,或者直接设置为0.0.0.0

代码语言:javascript复制
vim /var/lib/pgsql/13/data/pg_hba.conf

3、重启数据库

代码语言:javascript复制
systemctl restart postgresql-13

配置 Zabbix Server 配置文件

这里需要注意的是数据库部分和自身配置关系很大,如果用户名密码非配置文件默认,则需要进行调整,文中数据库实例名称为zabbix,用户名为zabbix,密码为xiaoyu123,所以仅调整数据库密码。

代码语言:javascript复制
vim /etc/zabbix/zabbix_server.conf

Nginx 配置

1、将默认Nginx配置的端口部分加上注释。如下图,已经将80端口配置加上注释了.

代码语言:javascript复制
vim /etc/nginx/nginx.conf

2、将 nginx 的 conf.d 里的zabbix.conf的端口注释取消,如下图所示。

代码语言:javascript复制
vim /etc/nginx/conf.d/zabbix.conf

启动 Zabbix 相关服务

代码语言:javascript复制
systemctl start zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm

前端配置

进入首页,IP访问即可,无需携带后缀。

数据库连接部分需要注意的是Database schema,为public。

默认用户名依然为 Admin/zabbix

效果图

写在最后

该版本相比 mysql 版本还是优化了很多的,包括数据压缩比、以及读写数据能力确实提高了很对,不过具体效果怎么样大家可以自行测试,如果不太熟悉切勿上生产。

0 人点赞