1. #!/bin/bash
  2. #Zabbix 一键部署脚本
  3. #安装zabbix3.0.4,依赖php-5.6.
  4.  
  5. src_home=`pwd`
  6. echo -n "正在配置iptables防火墙……"
  7. /etc/init.d/iptables save >> /dev/null
  8. chkconfig iptables off
  9. if [ $? -eq ];then
  10. echo -n "Iptables防火墙初始化完毕!"
  11. fi
  12.  
  13. echo -n "正在关闭SELinux……"
  14. setenforce > /dev/null >&
  15. sed -i '/^SELINUX=/s/=.*/=disabled/' /etc/selinux/config
  16. if [ $? -eq ];then
  17. echo -n "SELinux初始化完毕!"
  18. fi
  19.  
  20. echo -n "正在安装nginx yum 源……"
  21. yum -y install wget
  22. wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  23. rpm -ivh nginx-release-centos--.el6.ngx.noarch.rpm
  24. if [ $? -eq ];then
  25. echo -n "Nginx yum 源 初始化完毕!"
  26. fi
  27.  
  28. echo -n "正在安装epel-release yum 源……"
  29. rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  30. rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
  31. if [ $? -eq ];then
  32. echo -n "epel-release yum 源 初始化完毕!"
  33. fi
  34.  
  35. echo -n "正在安装php-5.6.25的编译所需相关软件……"
  36. yum -y install make gcc nginx libmcrypt php-mcrypt mysql-server mysql-devel net-snmp-devel libcurl-devel php php-mysql php-bcmath php-mbstring php-gd php-xml bzip2-devel libmcrypt-devel libxml2-devel gd gd-devel libcurl*
  37. if [ $? -eq ];then
  38. echo -n "php-5.6.25依赖初始化完毕!"
  39. fi
  40.  
  41. echo -n "正在添加zabbix用户……"
  42. useradd -M -s /sbin/nologin zabbix && echo "OK"
  43. echo -n "正在启动mysqld服务……"
  44. service mysqld start
  45. if [ $? -eq ];then
  46. echo -n "Mysql启动完毕!"
  47. fi
  48.  
  49. #echo -n "正在为mysql的root用户设置密码……"
  50. #mysql_user_root_password="password"
  51. #mysql_user_zabbix_password="zabbix"
  52. #mysqladmin -uroot -p password $mysql_user_root_password
  53. echo "正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库"
  54. 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;"
  55. #echo "正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库"
  56. #mysql -uroot -p"$mysql_user_root_password" -e "create database zabbix character set utf8" && echo "创建zabbix数据库完成"
  57. #mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@localhost identified by '$mysql_user_zabbix_password'" && echo "授权zabbix本地登录数据库"
  58. #mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@'%' identified by '$mysql_user_zabbix_password'" && echo "授权任何主机本地登录数据库"
  59.  
  60. #zabbix一键部署第三方软件包的解压目录
  61. echo -n "编译安装php-5.6.25....可能需要几分钟"
  62. tar zxf ${src_home}/php-5.6..tar.gz
  63. cd ${src_home}/php-5.6. && ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-exif --with-pear --with-curl --enable-bcmath --with-gettext --with-mysqli --enable-sockets
  64. cd ${src_home}/php-5.6. && make -j && make install
  65. cd
  66.  
  67. echo -n "正在配置启动php-fpm....请稍等"
  68. /bin/cp ${src_home}/php-5.6./php.ini-production /etc/php.ini
  69. cp ${src_home}/php-5.6./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  70. chmod /etc/init.d/php-fpm
  71. cd /usr/local/php/etc/ && cp php-fpm.conf.default php-fpm.conf
  72. cd
  73. service php-fpm start
  74. if [ $? -eq ];then
  75. echo -n "php-fpm启动完毕!"
  76. fi
  77.  
  78. #zabbix编译安装
  79. echo -n "正在导入zabbix数据到mysql数据库中...."
  80. tar zxf ${src_home}/zabbix-3.0..tar.gz
  81. mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0./database/mysql/schema.sql
  82. mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0./database/mysql/images.sql
  83. mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0./database/mysql/data.sql
  84. if [ $? -eq ];then
  85. echo -n "zabbix数据导入启动完毕!"
  86. fi
  87. echo -n "正在安装zabbix编译依赖软件包....可能需要几分钟"
  88. yum -y install net-snmp-devel curl-devel javacc java-1.8*
  89. echo -n "编译安装Zabbix-server....可能需要几分钟"
  90. cd ${src_home}/zabbix-3.0. && ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-net-snmp --with-libcurl --enable-java --with-mysql
  91. make -j && make install
  92.  
  93. echo -n "正在制作Zabbix-server启动脚本...."
  94. echo -e "zabbix-agent 10050/tcp #ZabbixAgent\nzabbix-agent 10050/udp #Zabbix Agent\nzabbix-trapper 10051/tcp #ZabbixTrapper\nzabbix-trapper 10051/udp #Zabbix Trapper" >> /etc/services
  95. cp ${src_home}/zabbix-3.0./misc/init.d/fedora/core/zabbix_server /etc/init.d/
  96. cp ${src_home}/zabbix-3.0./misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
  97. cd
  98.  
  99. chmod /etc/init.d/zabbix_*
  100. sed -i '/BASEDIR=/s/$/\/zabbix/' /etc/init.d/zabbix_server
  101. sed -i '/BASEDIR=/s/$/\/zabbix/' /etc/init.d/zabbix_agentd
  102.  
  103. echo -n "正在配置zabbix配置文件...."
  104. cd /usr/local/zabbix/etc
  105. sed '/# DBHost=localhost/a\DBHost=localhost' zabbix_server.conf -i
  106. sed '/# DBPassword=/a\DBPassword=zabbix' zabbix_server.conf -i
  107. sed '/# EnableRemoteCommands=0/a\EnableRemoteCommands=1' zabbix_agentd.conf -i
  108. sed '/# ListenPort=10050/a\ListenPort=10050' zabbix_agentd.conf -i
  109. sed '/# User=zabbix/a\User=zabbix' zabbix_agentd.conf -i
  110. sed '/# AllowRoot=0/a\AllowRoot=1' zabbix_agentd.conf -i
  111. sed '/# UnsafeUserParameters=0/a\UnsafeUserParameters=1' zabbix_agentd.conf -i
  112. if [ $? -eq ];then
  113. echo -n "zabbix配置完毕!"
  114. fi
  115.  
  116. echo -n "正在启动zabbix_server and zabbix_agent...."
  117. service zabbix_server start
  118. service zabbix_agentd start
  119. chkconfig zabbix_server on
  120. chkconfig zabbix_agentd on
  121. cd
  122.  
  123. echo -n "正在配置nginx反代zabbix...."
  124. cp -r ${src_home}/zabbix-3.0./frontends/php /usr/share/nginx/html/zabbix
  125. cd /etc/nginx/conf.d/ && mv default.conf default.conf.bak
  126. cp ${src_home}/zabbix.conf /etc/nginx/conf.d/
  127. echo -n "配置完成,正在启动nginx web server...."
  128. service nginx start
  129. if [ $? -eq ];then
  130. echo -n "Nginx启动完毕!"
  131. fi
  132.  
  133. echo -n "正在进行最后的zabbix Install ,php参数修改....."
  134. sed '/^post_max_size =/s/=.*/= 16M/' /etc/php.ini -i
  135. sed '/^max_execution_time =/s/=.*/= 300/' /etc/php.ini -i
  136. sed '/^max_input_time =/s/=.*/= 300/' /etc/php.ini -i
  137. sed -i '/^;date.timezone/a\date.timezone = Asia/Shanghai' /etc/php.ini
  138. sed -i '/^;always_populate_raw_post_data.*/a\always_populate_raw_post_data = -1' /etc/php.ini
  139. sed -i '/^mysqli.default_socket =/s/=.*/= \/var\/lib\/mysql\/mysql.sock/' /etc/php.ini
  140. echo -n "正在重新启动php服务....."
  141. /etc/init.d/php-fpm restart
  142. echo -n "正在初始化zabbix Server...."
  143. cp ${src_home}/zabbix.conf.php /usr/share/nginx/html/zabbix/conf/
  144. echo -n "正在做最后的Zabbix Server重启....."
  145. /etc/init.d/zabbix_server restart
  146. if [ $? -eq ];then
  147. echo -n "Zabbix Server 启动完毕!"
  148. fi
  149.  
  150. echo -n "正在解决zabbix server 乱码问题,请你耐心等待....."
  151. cd /usr/share/nginx/html/zabbix/fonts && mv DejaVuSans.ttf DejaVuSans.ttf.bak
  152. cp ${src_home}/msyh.ttf .
  153. cd ../include/ && sed -i 's/DejaVuSans/msyh/g' defines.inc.php
  154. cd
  155. echo -n "恭喜你,Zabbix 部署到此完成,如有问题,请参照脚本单独解决!!!"
  156. echo -e -n

Zabbix 一键部署的更多相关文章

  1. 如何自动化一键部署PHP项目

    1.技能需求 完成自动化一键部署PHP需要:PHP(略懂),Shell(略懂),git(略懂) 2.最终效果 输入密码,回车,5~20秒后(一般一天一次持续交付,部署的代码量和sql脚本都不会很大) ...

  2. Ubantu16.04一键部署Cacti监控服务器

    Ubantu16.04一键部署Cacti监控服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 一.查看系统环境(关于该系统的安装 ...

  3. 用Ant来做一键部署

    部署Java Web项目到远程服务器上,以前经常用的操作方式: 1.在eclipse上导出项目war包 2.把war包通过ftp方式传到服务器上,比如Tomcat的webapps目录下 3.启动tom ...

  4. Jenkins实现测试环境到生产环境一键部署(Windows)

    前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...

  5. wex5 教程之 图文讲解 Cloudx5一键部署

    视频教程地址:http://v.youku.com/v_show/id_XMTc3OTExNTUwNA==.html 效果预览: 一键部署cloudx5三要领 1.数据源命名为x5 2.数据库命名为x ...

  6. 一键部署mono 免费空间

    一键部署mono 免费空间支持c# 再也不担心伙食费换空间了 一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://githu ...

  7. Tomcat热部署:Maven项目一键部署到Tomcat服务器 - 支持多环境

    参考:Eclipse中的Maven项目一键部署到Tomcat服务器 - 支持多环境部署 命令 debug模式设置关联源码 eclipse --> 项目右键 --> Debug As --& ...

  8. Centos 环境一键部署脚本(shell脚本)

    谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...

  9. ASP.NET Core 一步步搭建个人网站(2)_一键部署和用户注册登录

    俗话说,磨刀不费砍柴工.为了更方便的进行项目管理,我们先将个人网站项目配置一下,满足以下2个目标: VS2017中支持Git存储库,绑定Github项目,实现本地VS程序与线上Github一键代码提交 ...

随机推荐

  1. python 中 len()和range()

    https://blog.csdn.net/qq_36357820/article/details/77850841

  2. ElasticSearch(java) 创建索引

    搜索]ElasticSearch Java Api(一) -创建索引 标签: elasticsearchapijavaes 2016-06-19 23:25 33925人阅读 评论(30) 收藏 举报 ...

  3. vue2.0 使用 vue-aplayer

    1.安装 npm i vue-aplayer 2.引入 import VueAplayer from 'vue-aplayer' name: "Aplayer", props: [ ...

  4. hdu4336 Card Collector MinMax 容斥

    题目传送门 https://vjudge.net/problem/HDU-4336 http://acm.hdu.edu.cn/showproblem.php?pid=4336 题解 minmax 容 ...

  5. Es学习第九课, 聚合查询和复合查询

    ES除了实现前几课的基本查询,也可以实现类似关系型数据库的聚合查询,如平均值sum.最小值min.最大值max等等 我们就用上一课的数据作为参考来举例 聚合查询 sum聚合 sum是一个求累加值的聚合 ...

  6. hibernate 5原生sql查询测试学习代码

    基本查询 import java.util.List; import org.hibernate.SQLQuery; import org.hibernate.Session; import org. ...

  7. 7天玩转 ASP.NET MVC

    在开始时请先设置firefox中about:config中browser.cache.check_doc_frequecy设置为1,这样才能在关闭浏览器时及时更新JS 第一.二天的内容与之前的重复,这 ...

  8. JSP页面中<%!%>与<%%>与<%=%>详解

    首先,我们要了解jsp运行原理.JSP的本质就是一个Servlet,JSP的运行之前会先被Tomcat服务器翻译为.java文件,然后在将.java文本编译 为.class文件,而我们在访问jsp时, ...

  9. 英语单词retrieve

    retrieve 来源——报错信息 [root@centos65 ~]# yum whatprovides */lsb_release Loaded plugins: fastestmirror, s ...

  10. delphi WaitForSingleObject 示例之一等待另一个进程的结束

    <pre>unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Cont ...