描述
基于需要足够多的监控数据,模拟数据备份恢复,所以部署测试环境,进行数据模拟。Zabbix部署架构(Zbbix4.4 + PGSQL+TimescaleDB)
测试主机
系统版本: CentOS Linux release 7.7.1908 (Core)
CPU配置: Intel(R) Xeon(R) CPU E7- 4830 @ 2.13GHz (8C)
内存配置: 16G 硬盘50G
zabbix版本: 4.4 pgsql版本: 14
Zabbix4.4部署(版本和线上保存一致)
#选择对应版本下载安装 https://www.zabbix.com/cn/download
1.安装zabbix Yum仓库(版本选择: zabbix4.4)
rpm -ivh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
2.清除yum历史记录,建立缓存
yum clean all
yum makecache
3.安装Zabbix server,Web前端,agent
yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
4.PostgerSQL+TimescaleDB插件安装
TimescaleDB 是基于 PostgreSQL 数据库开发的一款时序数据库,以插件化的形式打包提供,随着 PostgreSQL 的版本升级而升级。
#选择对应版本下载安装 https://www.postgresql.org/download/
4.1 安装PGSQL Yum仓库 (版本选择:postgresql-14)
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
4.2 清除yum历史记录,建立缓存
yum clean all
yum makecache
4.3 安装PostgreSQL
yum install -y postgresql14-server
4.4 初始化数据库,并添加服务自启动
/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl enable postgresql-14
systemctl start postgresql-14
4.5 postgresql 基本配置
1.修改默认密码(默认启动用户postgres)
登录数据库 sudo -u postgres psql
修改postgres用户密码 ALTER USER postgres WITH PASSWORD ‘postgres’;
2.修改运行访问地址(可选,如果需要外部访问的情况下)
配置文件路径 /var/lib/pgsql/14/data/postgresql.conf
配置修改 listen_addresses = '*'
配置修改 port = 5432
配置修改 max_connections = 10000
认证文件配置 /var/lib/pgsql/14/data/pg_hba.conf
配置添加 host all all 0.0.0.0/0 trust
4.6 配置TimescaleDB Yum仓库 (版本选择:TimescaleDB-PostgerSQL-14)
cat > /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$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
4.7 安装TimescaleDB-PostgerSQL-14插件
yum -y install timescaledb-2-postgresql-14
4.8 配置 PostgresSQL启动加载TimescaleDB
配置文件路径 /var/lib/pgsql/14/data/postgresql.conf
配置添加 shared_preload_libraries = 'timescaledb'
4.9 重启生效
systemctl start postgresql-14
systemctl status postgresql-14
5.创建初始数据库
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
6.导入初始架构和数据
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
导入时序数据库表
cd /usr/share/doc/zabbix-server-pgsql-4.4.10
gunzip timescaledb.sql.gz
psql -U zabbix -h127.0.0.1 -d zabbix -f timescaledb.sql
7.数据库检查
登录数据库
sudo -u postgres psql
\l 查看所有数据库
\c 登录指定数据库
\dx 查看TimescaleDB版本
SELECT default_version, installed_version FROM pg_available_extensions WHERE name = 'timescaledb';
8.为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
部分参数做了优化调整 cat /etc/zabbix/zabbix_server.conf |grep -v "#"|grep -v "^$"
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=123qweASD
DBPort=5432
StartTrappers=66
StartPingers=22
StartDiscoverers=200
StartTimers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=128M
HistoryCacheSize=64M
HistoryIndexCacheSize=64M
TrendCacheSize=24M
Timeout=20
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
9.为Zabbix前端配置PHP
编辑配置文件 /etc/httpd/conf.d/zabbix.conf
时区修改为上海 php_value date.timezone Asia/Shanghai
httpd配置文件 /etc/httpd/conf/httpd.conf 修改端口可选(Listen 80)
10.启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
登录地址 http://IP/zabbix 默认用户密码 Admin/zabbix
测试数据模拟
Docker环境自行部署,模拟数据通过批量启动容器主机进行主机自动发现添加
1.Docker镜像获取
版本信息获取 https://hub.docker.com/r/zabbix/zabbix-agent
docker pull zabbix/zabbix-agent:centos-4.4.10
2.Zabbix自动发现配置
IP范围示例 172.17.0.1-254,172.17.1.1-254 (容器默认IP从172.17.0.1开始)
3.Zabbix动作配置,自动发现主机添加
4.主机批量启动
编辑agent启动脚本 vim agent.sh
##########################################################################################################
#!/bin/bash
source /etc/profile
#docker run --name agent -e ZBX_HOSTNAME="agent" -e ZBX_ACTIVE_ALLOW="false" -e ZBX_SERVER_HOST="172.17.0.1" -d zabbix/zabbix-agent:centos-4.4.10
num=`seq {1,"$1"}`
for i in $num;
do echo $i
docker run -e ZBX_HOSTNAME="agent" -e ZBX_ACTIVE_ALLOW="false" -e ZBX_SERVER_HOST="172.17.0.1" -d zabbix/zabbix-agent:centos-4.4.10
done
##########################################################################################################
配置说明 ZBX_ACTIVE_ALLOW 关闭agent主动模式
配置说明 ZBX_SERVER_HOST ServerIP配置
运行示例 /bin/sh agent.sh 100
(100为启动agent数量,测试可以先启动少量看是否可以自动发现并添加到zabbix上)