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
点击 下一步 ;
继续点击下一步:
设置数据库 -> 点击下一步
Database host: 填写数据库安装主机 ip
Database port : 如果没有修改postgersql端口就不做修改保持默认
Database name: 设置为zabbix
Database schema:保持默认
user: 填写为前面创建的数据库用户名, 此文中填写 zabbix
Password: 填写前面创建数据库用户时所设置的密码, 此文中为 zabbix
设置Zabbix server信息,-> 点击下一步
host:填写部署zabbix server的主机名
Port: 保持默认
Name:自定义设置
点击下一步:
完成界面设置,点击完成
进入登陆界面
默认用户名: Admin 密码:zabbix
修改语言为中文
进入界面后 点击侧边栏中的 “user settings” 选项,显示如图页面
点击“Language”下拉选择框 ,选择 “Chinese (zh_CN)”
点击 “Update ” 按钮,即切换为中文界面
替换字体解决中文乱码
在设置为中文时会发现图形中的描述变为乱码,
此时需要将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
操作完成后刷新页面: