CentOS7下Zabbix5.0+PostgreSQL12+TimescaleDB部署实践

2021-09-02 15:04:37 浏览数 (1)

CentOS7下Zabbix5.0 PostgreSQL12 TimescaleDB部署实践

(图片可点击放大查看)

一、Zabbix Server 安装

1、YUM源配置及基础环境准备

代码语言:javascript复制
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo 

常用软件安装

代码语言:javascript复制
yum install -y lrzsz bash-completion vim wget net-tools ncdu iftop

关闭SELINUX

代码语言:javascript复制
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2、zabbix源配置并安装Zabbix Server

代码语言:javascript复制
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

sed -i "s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#g"  /etc/yum.repos.d/zabbix.repo
yum clean all
yum install zabbix-server-pgsql zabbix-agent

(图片可点击放大查看)

3、安装zabbix web

代码语言:javascript复制
yum install centos-release-scl
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo
yum install zabbix-web-pgsql-scl zabbix-nginx-conf-scl

(图片可点击放大查看)

(图片可点击放大查看)

4、安装数据库PostgreSQL12

代码语言:javascript复制
wget https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
rpm -ivh pgdg-redhat-repo-latest.noarch.rpm 
sed -i "s#https://download.postgresql.org/pub/#https://mirrors.aliyun.com/postgresql/#g" /etc/yum.repos.d/pgdg-redhat-all.repo
yum install -y postgresql12-server

(图片可点击放大查看)

PostgreSQL数据库初始化

代码语言:javascript复制
/usr/pgsql-12/bin/postgresql-12-setup initdb 
systemctl enable --now postgresql-12 
systemctl status postgresql-12.service 

(图片可点击放大查看)

5、TimescaleDB安装与配置

先配置timesacledb源

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

yum方式安装timesacleDB

代码语言:javascript复制
yum install -y timescaledb-postgresql-12

(图片可点击放大查看)

(图片可点击放大查看)

注意这里yum方式安装里会默认安装timescaledb-2-loader-postgresql-12-2.4.0-0.el7.x86_64这个包

而timescaledb-postgresql-12为1.7.5版本

需要降级timescaledb-2-loader-postgresql 为1.7.5版本

可以手动官网下载1.7.5版本并进行安装

(图片可点击放大查看)

代码语言:javascript复制
yum remove timescaledb-2-loader-postgresql-12-2.4.0-0.el7.x86_64
rpm -ivh timescaledb-loader-postgresql-12-1.7.5-0.el7.x86_64.rpm
yum install -y timescaledb-postgresql-12

(图片可点击放大查看)

(图片可点击放大查看)

脚本进行参数初始化并重启postgresql

代码语言:javascript复制
timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config
systemctl restart postgresql-12

(图片可点击放大查看)

(图片可点击放大查看)

6、zabbix数据库创建与数据库脚本导入

创建初始zabbix数据库并导入

代码语言:javascript复制
创建zabbix用户设置密码
sudo -u postgres createuser --pwprompt zabbix
创建zabbix数据库
sudo -u postgres createdb -O zabbix zabbix

(图片可点击放大查看)

开启timescaledb 插件

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

(图片可点击放大查看)

导入zabbix的postgresql和timescaledb数据库脚本

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

zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix

(图片可点击放大查看)

7、postgresql数据库远程连接与认证配置

PostgreSQL不支持远程连接,修改配置文件,添加或修改如下

代码语言:javascript复制
vim /var/lib/pgsql/12/data/postgresql.conf
listen_addresses = '*’
port = 5432                           
max_connections = 500

(图片可点击放大查看)

配置使用md5方式认证

代码语言:javascript复制
vim /var/lib/pgsql/12/data/pg_hba.conf
host    all             all             0.0.0.0/0               md5

(图片可点击放大查看)

修改完成后重启postgresql-12

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

(图片可点击放大查看)

修改zabbix server配置文件中的数据库信息

代码语言:javascript复制
vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1
DBPassword=zabbix@2021

(图片可点击放大查看)

8、修改php参数和nginx配置文件

代码语言:javascript复制
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
主要修改时区和ACL
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai

(图片可点击放大查看)

代码语言:javascript复制
cd /etc/opt/rh/rh-nginx116/nginx/
vim nginx.conf
默认的80端口修改为81

(图片可点击放大查看)

代码语言:javascript复制
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
取消注释,使用80端口

(图片可点击放大查看)

9、重启所有服务并配置开机自启动

代码语言:javascript复制
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
firewall-cmd  --permanent  --zone=public --add-port=10051/tcp
firewall-cmd  --permanent  --zone=public --add-port=80/tcp
firewall-cmd  --permanent  --zone=public --add-port=5432/tcp
firewall-cmd  --reload

(图片可点击放大查看)

二、Zabbix5.0 Web界面初始化

(图片可点击放大查看)

(图片可点击放大查看)

注意Database host 要由localhost改为127.0.0.1

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

默认密码Admin/zabbix

(图片可点击放大查看)

三、Zabbix5.0 Agent安装

1、zabbix agent安装

代码语言:javascript复制
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i "s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#g"  /etc/yum.repos.d/zabbix.repo
yum install zabbix-agent

(图片可点击放大查看)

2、修改配置文件

修改配置文件中Server和ServerActive地址

代码语言:javascript复制
sed -i "s/Hostname=Zabbix server/Hostname=centos.walkingcloud.cn/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.31.232/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/Server=127.0.0.1/Server=192.168.31.232/g" /etc/zabbix/zabbix_agentd.conf
cat /etc/zabbix/zabbix_agentd.conf | grep Server=
cat /etc/zabbix/zabbix_agentd.conf | grep ServerActive=
cat /etc/zabbix/zabbix_agentd.conf | grep Hostname=

(图片可点击放大查看)

3、启动zabbix-agent相关服务并设置为开机自启动

zabbix-agent需要在防火墙中放通10050端口

代码语言:javascript复制
firewall-cmd  --permanent  --zone=public --add-port=10050/tcp
firewall-cmd --reload

systemctl enable zabbix-agent
systemctl start zabbix-agent
systemctl status zabbix-agent
tail -f /var/log/zabbix/zabbix_agentd.log

(图片可点击放大查看)

4、ZabbixServer Web上添加主机

(图片可点击放大查看)

5、验证Agent数据是否正常采集

(图片可点击放大查看)

总结:本次部署主要使用 PostgreSQL12 TimescaleDB,安装配置比较多,对比MySQL数据库部署的方式,性能是否有大的提升,还需要后续进行测试和验证

0 人点赞