首先是要搞懂zabbix的基本组件。
第一zabbix-server端,zabbix-server端作用就是展现数据,包括前端界面等。
第二zabbix-agentd端,zabbix-agent端主要是收集数据,支持的平台有linux ,windows等。
第三zabbix-proxy端,zabbix-proxy是zabbix提出的分布式解决方案,因zabbix自身的瓶颈等问题proxy可以减轻server端的压力。
因最近公司需要在大量机器上部署zabbix,第一没有集群,第二不通外网,所以就写了个简单的部署脚本,请大家如有错误,请大家指出,我会及时更改
zabbix版本:3.4.10 服务器版本:CentOS-7-x86_64-Minimal-1708
我首先是在通外网的环境下yum安装了所有的依赖包,并将其保存下来,拷到无外网环境的服务器上
保存yum安装的rpm包需要修改/etc/yum.conf
将里面的keepcache=0 改为 1
默认的rpm包保存在/var/cache/yum/x86_64/7/ 下,里面有好多package目录,请全部拷出来,我拷了111个rpm包
以下为脚本内容
#!/bin/bash
src_home=`pwd`
tar -zxvf packages.tar.gz
echo -e "正在配置防火墙……\n"
sleep 5
systemctl disable firewalld.service > /dev/null #关闭防火墙
systemctl stop firewalld.service > /dev/null #禁止开机启动
if [ $? -eq 0 ];then
echo -e "防火墙初始化完毕!"
fi
echo -e "正在关闭SELinux……\n"
sleep 5
setenforce 0 > /dev/null 2>&1 #关闭selinux
sed -i '/^SELINUX=/s/=.*/=disabled/' /etc/selinux/config #设置selinux 状态为disabled
if [ $? -eq 0 ];then
echo -e "SELinux初始化完毕!\n"
fi
echo -e "正在安装相关软件包……\n"
rpm -ivh --force --nodeps packages/*.rpm #由于我已经将需要安装的软件包打好放在packages下,所以此处我的安装路径为packages
if [ $? -eq 0 ];then
echo -e "软件包安装完毕!\n"
fi
echo -e "正在配置数据库……\n"
systemctl start mariadb.service
mysqladmin -u root password "mysql_pass" #mysql root的密码
mysql -u root -pmysql_pass -e"
create database svsc character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #设置zabbix 的数据库密码并授权
quit"
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -usvsc -Dsvsc -psvsc@DB
if [ $? -eq 0 ];then
echo -e "数据库配置完毕!\n"
fi
sed -i "/# DBPassword=/aDBPassword=svsc@DB\n" /etc/zabbix/zabbix_server.conf
sed -i "/;date.timezone =/adate.timezone = Asia/Shanghai \n" /etc/php.ini
systemctl restart zabbix-server httpd
systemctl enable zabbix-server httpd
if [ $? -eq 0 ];then
echo -e "软件安装完成\n"
else
echo -e "软件安装失败,请查看安装手册或联系我们\n"
fi
此时zabbix已经安装完成,请访问http://x.x.x.x/zabbix 访问zabbix页面