shell企业实战系列之-zabbix安装-centos7

#!/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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值