#!/bin/bash #Zabbix server 部署脚本 #zabbix版本:zabbix3.4 #部署操作系统:Centos7
echo -n "正在配置firewalld防火墙……" systemctl stop firewalld > /dev/null 2>&1 systemctl disable firewalld > /dev/null 2>&1 if [ $? -eq 0 ];then echo -n "firewalld防火墙初始化完毕!" fi
echo -n "正在关闭SELinux……" setenforce 0 > /dev/null 2>&1 sed -i 's/^SELINUX=enable/SELINUX=disabled/g' /etc/selinux/config if [ $? -eq 0 ];then echo -n "SELinux初始化完毕!" fi
echo -n "正在安装zabbix ……"
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql wget
if [ $? -eq 0 ];then
echo -n "zabbix server安装完成!"
fi
echo -n "正在安装mariadb源……" cat >/etc/yum.repos.d/mariadb.repo<<-EOF [mariadb] name = MariaDB baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF if [ $? -eq 0 ];then echo -n "mariadb源安装完毕!" fi
echo -n "正在安装mariadb……" yum -y install MariaDB-server MariaDB-client if [ $? -eq 0 ];then echo -n "mariadb安装完毕!" fi
echo -n "正在配置mariadb……"
cp /etc/my.cnf.d/server.cnf{,.bak}
cat > /etc/my.cnf.d/server.cnf<<-EOF
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
innodb_buffer_pool_size = 256M
max_connections = 2000
log-bin = master-log
EOF
if [ $? -eq 0 ];then
echo -n "mariadb配置完毕!"
fi
echo -n "正在启动mariadb……" systemctl start mariadb systemctl enable mariadb if [ $? -eq 0 ];then echo -n "Mariadb启动完毕!" fi
#echo -n "正在为mysql的root用户设置密码……" #mysql_user_root_password="password" #mysql_user_zabbix_password="zabbix" #mysqladmin -uroot -p password $mysql_user_root_password echo "正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库" mysql -e "create database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';flush privileges;" #echo "正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库" #mysql -uroot -p"$mysql_user_root_password" -e "create database zabbix character set utf8" && echo "创建zabbix数据库完成" #mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@localhost identified by '$mysql_user_zabbix_password'" && echo "授权zabbix本地登录数据库" #mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@'%' identified by '$mysql_user_zabbix_password'" && echo "授权任何主机本地登录数据库"
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
#mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/schema.sql
#mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/images.sql
#mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/data.sql
if [ $? -eq 0 ];then
echo -n "zabbix数据导入启动完毕!"
fi
echo -n "正在配置zabbix配置文件...."
cd /etc/zabbix/
sed -i 's/# DBHost=localhost/DBHost=192.168.95.1/g' zabbix_server.conf
sed -i '/# DBPassword=/a\DBPassword=zabbix' zabbix_server.conf
sed -i '/# EnableRemoteCommands=0/a\EnableRemoteCommands=1' zabbix_agentd.conf
sed -i '/# ListenPort=10050/a\ListenPort=10050' zabbix_agentd.conf
sed -i '/# User=zabbix/a\User=zbxuser' zabbix_agentd.conf
sed -i '/# DBPassword=/a\DBPassword=keer' zabbix_agentd.conf
sed -i '/# DBPassword=/a\DBPassword=keer' zabbix_agentd.conf
DBPort=3306
sed -i '/# AllowRoot=0/a\AllowRoot=1' zabbix_agentd.conf
sed -i '/# UnsafeUserParameters=0/a\UnsafeUserParameters=1' zabbix_agentd.conf
if [ $? -eq 0 ];then
echo -n "zabbix配置完毕!"
fi
配置zabbix-agent????
echo -n "正在启动zabbix_server and zabbix_agent...." systemctl start zabbix-server.service systemctl start zabbix-agent.service systemctl enable zabbix-server.service systemctl enable zabbix-agent.service if [ $? -eq 0 ];then echo -n "zabbix-server zabbix-agent 启动完毕!" fi
echo -n "正在配置zabbix httpd ,php..." sed -i '/^post_max_size =/s/=./= 16M/' /etc/php.ini sed -i '/^max_execution_time =/s/=./= 300/' /etc/php.ini sed -i '/^max_input_time =/s/=./= 300/' /etc/php.ini sed -i '/^;date.timezone/a\date.timezone = Asia/Shanghai' /etc/php.ini sed -i '/^;always_populate_raw_post_data./a\always_populate_raw_post_data = -1' /etc/php.ini sed -i '/^mysqli.default_socket =/s/=.*/= /var/lib/mysql/mysql.sock/' /etc/php.ini
echo -n "正在启动httpd服务....." systemctl start httpd systemctl enable httpd
echo -n "正在安装中文字体支持包,解决zabbix server 乱码问题,请你耐心等待....." yum groupinstall "fonts" -y echo -n "使用文泉驿小黑字体" rm /etc/alternatives/zabbix-web-font -rf ln -s /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /etc/alternatives/zabbix-web-font
echo -n "恭喜你,Zabbix 部署到此完成!!!" echo -e -n "后续的操作:1、通过http://ip/zabbix 访问你的zabbix Web页面,下一步...."