#!/bin/bash
#zabbix一键安装脚本v1.0
#zabbix版本:3.4.15
#日期:2020年3月9号
#editor:zongyonghao
#linux准备工作
echo "------------------开始安装zabbix,整个过程可能要10-20分钟,请耐心等待--------------------"
echo "
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1、此脚本为zabbix-3.4.15的版本 +
+ 2、此脚本需要偶网络环境,可以上互联网,为yum+rpm包的 +
+ 安装方式 +
+ 3、zabbix的配置文件在/etc/zabbix下面 +
+ 4、zabbix的启动方式为systemctl start zabbix-server +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"
#定义日志路径
LOG_FILE="/home/zabbix_install.log"
>"${LOG_FILE}"
#zabbix ip地址
zabbixip=`ifconfig |grep "inet"|grep -v "127.0.0.1"|awk '{print $2}'`
#zabbix用户名
db_zabbixuser=zabbix
#zabbix用户密码
db_zabbixpwd=zabbix
#数据库root密码
dbrootpwd=jqkj5350880
#创建常用的文件夹
create_dir(){
echo "-------------------------创建常用的文件夹----------------------------------"
mkdir -p /home/zabbix #zabbix安装目录
mkdir -p /home/setup #存放安装软件
echo "已完成创建"
}
#检测网络状态是否正常
check_network(){
echo "--------------------------开始检测网络状态---------------------------------------"
echo "检查网络是否可以访问外网,不能访问外网将停止脚本运行"
check_net=`curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com`
if [ ${check_net} -ne 200 ];then
echo "请检查网络是否正常,能否访问外网"
exit 1
fi
}
change_hostname(){
hostnamectl set-hostname zabbix-server
exec
hostname >/dev/null
}
#关闭防火墙,调整selinux
stop_fireandsel(){
echo "----------------------------关闭firewalld防火墙和调整selinux----------------------------"
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config
grep --color=auto '^SELINUX' /etc/selinux/config
setenforce 0
getenforce >/dev/null 2>&1
}
change_aliyuan(){
echo "--------------------------------修改镜像源为阿里镜像源------------------------------------"
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
#清理缓存
yum clean all && yum makecache
}
install_ruanjian(){
echo "--------------------------安装常用的依赖包--------------------------------------------"
yum install -y epel-release &> /dev/null
yum install -y ntp wget vim net-tools openssh tree expect
sleep 5
}
change_ntp(){
echo "-------------------------同步时间和ntp同步--------------------------------"
/usr/sbin/ntpdate ntp6.aliyun.com
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /etc/crontab
}
##安装mariadb数据库
install_mariadb(){
echo "------------------------------开始安装mariadb数据库------------------------------"
yum install mariadb-server -y
cat >> /etc/my.cnf << EOF
skip_name_resolve = ON
innodb_file_per_table = ON
EOF
echo "------------------------------------启动mariadb-------------------------------------"
systemctl start mariadb && systemctl enable mariadb
netstat -antp|grep mysqld
}
##初始化数据库
echo "------------------------------初始化数据库-----------------------------------"
chushihua_db(){
/usr/bin/expect << EOF
set timeout 30
spawn mysql_secure_installation
expect {
"enter for none" { send "\r"; exp_continue}
"Y/n" { send "Y\r" ; exp_continue}
"password:" { send "$dbrootpwd\r"; exp_continue}
"new password:" { send "$dbrootpwd\r"; exp_continue}
"Y/n" { send "Y\r" ; exp_continue}
"Y/n" { send "N\r" ; exp_continue}
"Y/n" { send "N\r" ; exp_continue}
"Y/n" { send "Y\r" ; exp_continue}
}
EOF
}
##测试数据库是否可以使用
check_db(){
mysql -u root -p$dbrootpwd -e "show databases;"
[ $? = 0 ] || { echo "mariadb初始化失败";exit; }
}
##创建zabbix数据库并赋予权限
create_zabbixdb(){
mysql -uroot -p$dbrootpwd -e "
CREATE DATABASE zabbix CHARSET 'utf8';
GRANT ALL ON zabbix.* TO '$db_zabbixuser'@'$zabbixip' IDENTIFIED BY '$db_zabbixpwd';
GRANT ALL ON zabbix.* TO '$db_zabbixuser'@'127.0.0.1' IDENTIFIED BY '$db_zabbixpwd';
GRANT ALL ON zabbix.* TO '$db_zabbixuser'@'localhost' IDENTIFIED BY '$db_zabbixpwd';
FLUSH PRIVILEGES;
"
}
##安装zabbix
install_php(){
echo "------------------------安装php和http环境-------------------------"
yum -y install httpd php php-mysql php-mbsting php-gd php-bcmath php-ldap php-xml
sleep 5
}
#下载并安装zabbix包
install_zabbix(){
echo "------------------------正在下载zabbix安装包----------------------------"
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.15-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-java-gateway-3.4.15-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-server-mysql-3.4.15-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-web-3.4.15-1.el7.noarch.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-web-mysql-3.4.15-1.el7.noarch.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
sumconf=`ls .|grep conf |wc -l`
for i in $sumconf
do
if [ $i -eq 3 ];then
echo "zhengquede"
fi
done
echo "-----------------------正在安装zabbix安装包--------------------------"
yum install -y zabbix-release-3.4-1.el7.centos.noarch.rpm
yum install -y zabbix-agent-3.4.15-1.el7.x86_64.rpm
yum install -y zabbix-java-gateway-3.4.15-1.el7.x86_64.rpm
yum install -y zabbix-web-3.4.15-1.el7.noarch.rpm
yum install -y zabbix-server-mysql-3.4.15-1.el7.x86_64.rpm
yum install -y zabbix-web-mysql-3.4.15-1.el7.noarch.rpm
}
#导入zabbix数据库
impot_zabbixdb(){
echo "------------------正在导入zabbix数据库--------------------"
gzip -d /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz
mysql -uzabbix -h$zabbixip -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql
}
#配置zabbix
peizhi_zabbix(){
echo "-----------------正在配置zabbix配置文件-----------------------"
sed -i '/^# DBHost=/c DBHost='$zabbixip'' /etc/zabbix/zabbix_server.conf
sed -i '/^DBUser=/c DBUser='$db_zabbixuser'' /etc/zabbix/zabbix_server.conf
sed -i '/^# DBPassword=/c DBPassword='$db_zabbixuser'' /etc/zabbix/zabbix_server.conf
sed -i '/^# JavaGateway=/c JavaGateway='$zabbixip'' /etc/zabbix/zabbix_server.conf
sed -i '/^# JavaGatewayPort=10052/c JavaGatewayPort=10052' /etc/zabbix/zabbix_server.conf
sed -i '/^# StartJavaPollers=0/c StartJavaPollers=5' /etc/zabbix/zabbix_server.conf
sed -i '/php_value date.timezone*/c php_value date.timezone Asia/shanghai' /etc/httpd/conf.d/zabbix.conf
}
peizhi_gatewat(){
echo "-----------------------正在配置zabbix-java-gateway--------------"
sed -i '/^# LISTEN_IP="0.0.0.0"/c LISTEN_IP="0.0.0.0"' /etc/zabbix/zabbix_java_gateway.conf
sed -i '/^# LISTEN_PORT=10052/c LISTEN_PORT=10052' /etc/zabbix/zabbix_java_gateway.conf
sed -i '/^TIMEOUT=3/c TIMEOUT=30' /etc/zabbix/zabbix_java_gateway.conf
}
#启动zabbix
start_zabbix(){
echo "--------------------正在启动zabbix--------------------------------"
systemctl start zabbix-server.service && systemctl start httpd && systemctl start zabbix-agent && systemctl start zabbix-java-gateway
#访问zabbix网页进行配置
echo ‘=================================安装完成========================================’
echo 'Please visit http://'$zabbixip'/zabbix to further configuration!!!!!'
}
main(){
create_dir;
check_network;
change_hostname;
stop_fireandsel;
change_aliyuan;
install_ruanjian;
change_ntp;
install_mariadb;
chushihua_db;
check_db;
create_zabbixdb;
install_php;
install_zabbix;
impot_zabbixdb;
peizhi_zabbix;
peizhi_gatewat;
start_zabbix;
}
main
shell企业实战系列之-zabbix安装-centos7
最新推荐文章于 2023-12-04 17:07:47 发布