ZABBIX安装新版zabbix5.0 同时采用go语言编写的agent,使用timecaledb性能更优


需求

由于生产环境与互联网隔离,无法在线安装部署,需要在无互联网环境下离线安装。采用创建离线yum源的方式进行安装部署。 服务器操作系统为 :Centos 7.5 ZABBIX组件选择为 zabbix 5.0LTS + TIMESCALEDB+NGINX

TimescaleDB是目前市面上唯一一个开源的并且完全支持SQL的数据库。它是在PostgreSQL数据库的基础上进行开发,所以使用方法基本和传统数据库一致。它可以支持复杂的SQL查询,并针对时间序列数据的快速插入和复杂查询进行了优化,特别适合用于监控,IoT,金融,物流等大数据领域。总的来说,在数据系统的扩展性能,以及支持复杂SQL查询这两个大的需求之间,TimescaleDB都取得了不多的效果

制作离线yum源

准备一台可以连接互联网的与生产环境中操作系统版本相同的主机或虚拟机,安装方式选择最小化安装,此处选择的操作系统为Centos7.5。 跳过此步直接 – 点击下载->zabbix_repo.tar.gz 提取码: x75i

zabbix组件下载

安装ZABBIX 镜像源

1rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
2yum clean all

通过yum下载并保存zabbix后端及其依赖的rpm包 (如果下载失败通常都是网络问题)

1yum install  --downloadonly   --downloaddir=/zabbix_repo zabbix-server-pgsql zabbix-agent  zabbix-agent2  zabbix-java-gateway zabbix-js zabbix-get zabbix-sender  net-snmp centos-release-scl  createrepo

安装 centos-release-scl 软件选集

1yum install centos-release-scl

编辑配置文件 /etc/yum.repos.d/zabbix.repo 并开启 zabbix-frontend 源.

1[zabbix-frontend]
2...
3enabled=1
4... 

通过yum下载并保存zabbix前端 及其依赖的rpm包

1yum install --downloadonly   --downloaddir=/zabbix_repo  zabbix-web-pgsql-scl zabbix-nginx-conf-scl

数据库组件下载

安装 postgresql 镜像源 :

1yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

制作 timescaledb镜像源:

 1tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL 
 2[timescale_timescaledb] 
 3name=timescale_timescaledb 
 4baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$basearch 
 5repo_gpgcheck=1 
 6gpgcheck=0 
 7enabled=1 
 8gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey 
 9sslverify=1 
10sslcacert=/etc/pki/tls/certs/ca-bundle.crt 
11metadata_expire=300 
12EOL

通过yum下载并保存 timescaledb rpm包及其依赖:

1yum install --downloadonly   --downloaddir=/zabbix_repo   timescaledb-postgresql-11

制作yum镜像

安装createrepo 创建镜像并打包

1yum install  createrepo
2createrepo  /zabbix_repo
3tar czf zabbix_repo.tar.gz -c /zabbix_repo

离线安装部署

需确保待安装的操作系统与制作镜像一致 这里是Centos7.5

将 zabbix_repo.tar.gz 文件解压至根目录下:

1tar zxf zabbix_repo.tar.gz  -C /

删除并备份原有的yum源文件

1find  /etc/yum.repos.d/ -name *.repo  -exec mv {} {}.bak \;

新增zabbix.repo 文件:

1tee  /etc/yum.repos.d/zabbix.repo <<EOL
2[zabbix]
3name=zabbix
4baseurl=file:///zabbix_repo
5gpgcheck=0
6enabled=1
7EOL

安装zabbix服务端与客户端

1yum install -y zabbix-server-pgsql   zabbix-agent2 

安装 centos-release-scl 软件选集

1yum install  -y centos-release-scl

删除scl 源文件:

1 find  /etc/yum.repos.d/ -name CentOS-SCLo*.repo  -exec mv {} {}.bak \;

安装zabbix web端

1yum install zabbix-web-pgsql-scl zabbix-nginx-conf-scl

安装 timescaledb

1yum install -y  timescaledb-postgresql-11

数据库配置

设置环境变量

1tee  >>  /etc/bashrc <<EOL      
2export pgsql=/usr/pgsql-11 
3PATH=\$pgsql/bin:\$PATH 
4EOL
1source /etc/bashrc 

设置数据库用户

创建数据库数据存储目录并设置postgres用户权限:

1mkdir -p   /data/postgresql/data/ 
2chown -R postgres:postgres /data/postgresql/

数据库初始化

初始化数据库

1su postgres
2initdb -D /data/postgresql/data/

timescaledb初始化

1timescaledb-tune --quiet --yes -conf-path /data/postgresql/data/ 

数据库配置文件修改

修改数据库参数

1vi  /data/postgresql/data/postgresql.conf
1listen_addresses = '*' 
2max_connections = 2000 
3superuser_reserved_connections = 10      

修改postgresql访问控制文件

1vi /data/postgresql/data/pg_hba.conf 
1host    zabbix          zabbix          0.0.0.0/0               md5

修改postgresql启动文件数据目录

1vi /usr/lib/systemd/system/postgresql-11.service

修改该行

1Environment=PGDATA=/data/postgresql/data

启动数据库

1systemctl daemon-reload
2systemctl enable postgresql-11
3systemctl restart postgresql-11

为ZABBIX设置数据库

创建数据用户zabbix

1sudo -u postgres createuser --pwprompt zabbix
2sudo -u postgres createdb -O zabbix zabbix

开启timescaledb扩展

1echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

导入zabbix数据库

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

为Zabbix前端配置PHP

编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,

1listen 80 default_server;
2server_name example.com;

去除nginx默认虚拟主机

1sed  -i 's/default_server/ /g'  /etc/opt/rh/rh-nginx116/nginx/nginx.conf 

编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

1listen.acl_users = apache,nginx
2php_value[date.timezone] = Asia/Shanghai

启动Zabbix server和agent进程

1systemctl restart zabbix-server zabbix-agent2 rh-nginx116-nginx rh-php72-php-fpm
2systemctl enable zabbix-server zabbix-agent2 rh-nginx116-nginx rh-php72-php-fpm

界面设置zabbix

访问 http://ip

点击 下一步 ;

图-1
图-1

继续点击下一步:

图-2
图-2

设置数据库 -> 点击下一步

Database host: 填写数据库安装主机 ip

Database port : 如果没有修改postgersql端口就不做修改保持默认

Database name: 设置为zabbix

Database schema:保持默认

user: 填写为前面创建的数据库用户名, 此文中填写 zabbix

Password: 填写前面创建数据库用户时所设置的密码, 此文中为 zabbix

图-3
图-3

设置Zabbix server信息,-> 点击下一步

host:填写部署zabbix server的主机名

Port: 保持默认

Name:自定义设置

图-4
图-4

点击下一步:

图-5
图-5

完成界面设置,点击完成

图-6
图-6

进入登陆界面

默认用户名: Admin 密码:zabbix

图-7
图-7

修改语言为中文

进入界面后 点击侧边栏中的 “user settings” 选项,显示如图页面

图-8
图-8

点击“Language”下拉选择框 ,选择 “Chinese (zh_CN)”

图-9
图-9

点击 “Update ” 按钮,即切换为中文界面

图-10
图-10

替换字体解决中文乱码

在设置为中文时会发现图形中的描述变为乱码,

图-11
图-11

此时需要将zabbix 字体进行替换,这里我们替换为 点击下载->微软雅黑字体 提取码: x89b

首先将字体文件上传至服务器中

按如下步骤替换原字体文件

1cp  ~/msyh.ttf   /usr/share/fonts/ 
2rm   -rf   /etc/alternatives/zabbix-web-font
3ln -s  /usr/share/fonts/msyh.ttf  /etc/alternatives/zabbix-web-font

操作完成后刷新页面:

图-12
图-12