说明:一位大学同学所在的公司最近在做监控平台选型,最终定了免费的zabbix监控产品,听他描述,上周在部署过程中遇到了各种坑,所以帮助他整理了一份自动化部署脚本,避免浪费太多的时间在部署上。
步骤一:上传封装好的脚本及依赖文件,并解压,如下图所示:
![410d7bdfd2e5d01e8f7e2597f470dc76.png](https://i-blog.csdnimg.cn/blog_migrate/f0fc65d5d65558fb63a6c1b70805ed05.jpeg)
步骤二:可以看到解压书后的脚本及文件:
![66013326a540d09b847be0f2087ea581.png](https://i-blog.csdnimg.cn/blog_migrate/d4d65c42388dc1005683d30e2f77906e.jpeg)
![f578571bb4495226dde8a8e125c5acbd.png](https://i-blog.csdnimg.cn/blog_migrate/0e0640a98e64ec3ebb0221bfe3a8bb27.jpeg)
步骤三:直接执行脚本安装即可(整改过程全自动部署)
![32b65fbe9b214535806f56fd99786d67.png](https://i-blog.csdnimg.cn/blog_migrate/53c3b222d856156f8b7e40ef0daaa8c4.jpeg)
安装完成后可以看到提示,查看自己的ip地址,通过浏览器界面访问即可:
![06ecb45c3cce6da7f91a2ef6878939f0.png](https://i-blog.csdnimg.cn/blog_migrate/41a6fe9a1e7a541fdb123074212b7b18.jpeg)
步骤四:使用任意浏览器访问zabbix登陆界面(默认密码zabbix):
![5587fd5f41f106cfd1492cec1689d2bd.png](https://i-blog.csdnimg.cn/blog_migrate/f155231e977f0dff796fa844ad1e9b3e.jpeg)
登陆后界面如下所示:
![1b08f4b3998e92629e728530de7f9679.png](https://i-blog.csdnimg.cn/blog_migrate/a574c0f8687c0e8b256533925b9fa80c.jpeg)
到这里就自动部署完成了。
脚本内容如下:
#/bin/bash###by for ALOM ZABBIX###SYSTEM_VERSION:CentOS Linux release 7.4 version###ZABBIX_VERSION:zabbix_server 4.0.0###MARIADB_VERSION:5.6.41 MySQL Community Server (GPL)src_home=`pwd`repo_name=zabbix4.0.0echo 'Configuring firewalls......'firewall-cmd --zone=public --add-port=10051/tcp --permanent > /dev/null 2>&1firewall-cmd --zone=public --add-port=10050/tcp --permanent > /dev/null 2>&1firewall-cmd --zone=public --add-port=80/tcp --permanent > /dev/null 2>&1firewall-cmd --zone=public --add-port=3306/tcp --permanent > /dev/null 2>&1firewall-cmd --zone=public --add-port=161/udp --permanent > /dev/null 2>&1firewall-cmd --zone=public --add-port=162/udp --permanent > /dev/null 2>&1firewall-cmd --complete-reload > /dev/null 2>&1if [ $? -eq 0 ];thenecho 'Configuring the firewall to complete'fiecho 'Closing SElinux......'setenforce 0 > /dev/null 2>&1sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configif [ $? -eq 0 ];then echo 'SElinux configuration is completed'fimkdir /etc/yum.repos.d/bakmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bakif [ $? -eq 0 ];then echo 'Backup source Yum file is completed'fiecho "Configure the offline Yum source......"cat > /etc/yum.repos.d/$repo_name.repo << EOF[zabbix]name=$repo_namebaseurl=file://$src_home/$repo_name/enabled=1gpgcheck=0EOFif [ $? -eq 0 ];then echo 'Configure the offline Yum source is completed'fiecho "Install Zabbix......"yum clean all > /dev/null 2>&1yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y > /dev/null 2>&1if [ $? -eq 0 ];then echo 'Install Zabbix is completed'fiecho "Install Mysql......"yum install mysql-community-server -y > /dev/null 2>&1if [ $? -eq 0 ];then echo 'Install Mysql is completed'fiecho "Start mysql server ......"systemctl start mysqld > /dev/null 2>&1if [ $? -eq 0 ];then echo "Mysql start is completed"fiecho "Configure Mysql......"mysql -e "create database zabbix character set utf8 collate utf8_bin;grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';flush privileges;"if [ $? -eq 0 ];then echo 'Zabbix user Create completed'fizcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -pzabbix zabbixif [ $? -eq 0 ];then echo 'Zabbix DB Import completed'fiecho "Disable Guests usergroup......"mysql -e "update zabbix.usrgrp set users_status=1 where name='Guests';"if [ $? -eq 0 ];then echo 'Disable Guests usergroup is completed'fiecho "Configuring the ZABBIX configuration file......"sed -i 's/.*DBPassword=/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.confif [ $? -eq 0 ];then echo 'Configuring the ZABBIX configuration file is completed'fiecho "Configuring PHP......"sed -i 's/# php_value date.timezone.*/php_value date.timezone Asia/Shanghai/g' /etc/httpd/conf.d/zabbix.confif [ $? -eq 0 ];then echo 'Configuring PHP is completed'fiecho "Configuring the Apache root directory......"sed -i 's/^DocumentRoot.*/DocumentRoot "/usr/share/zabbix"/g' /etc/httpd/conf/httpd.confif [ $? -eq 0 ];then echo 'Configuring the Apache root directory is completed'fiecho "Configuring zabbix setup web page ......"setup_page='zabbix.conf.php'cp $src_home/$repo_name/$setup_page /etc/zabbix/web/chown apache:apache /etc/zabbix/web/$setup_pageif [ $? -eq 0 ];then echo 'Configuring zabbix setup web page is completed'fiecho "Graphic and text messy code......"font_name='msyh.ttf'cp $src_home/$repo_name/$font_name /usr/share/zabbix/fonts/chmod 755 /usr/share/zabbix/fonts/$font_namesed -i 's/graphfont/msyh/g' /usr/share/zabbix/include/defines.inc.phpif [ $? -eq 0 ];then echo 'Graphic and text messy code is completed'fiecho "Start zabbix-server zabbix-agent http......"systemctl start zabbix-server zabbix-agent httpd > /dev/null 2>&1if [ $? -eq 0 ];then echo 'Start zabbix-server zabbix-agent http is completed'fiecho "Set up boot start mysqld zabbix-server zabbix-agent http......"systemctl enable mysqld zabbix-server zabbix-agent httpd > /dev/null 2>&1if [ $? -eq 0 ];then echo 'Set up boot start mysqld zabbix-server zabbix-agent http is completed'fiecho "Restore the yum file......"rm -rf /etc/yum.repos.d/$repo_name.repomv /etc/yum.repos.d/bak/*.repo /etc/yum.repos.d/yum clean all > /dev/null 2>&1if [ $? -eq 0 ];then echo 'Restore the yum file is completed'fiecho "Follow up configuration through the web page http://ip/"
使用中如有问题可随时在下发评论处留言哦,关注我每天分享更多实用的运维知识哦[送心]