共计 7273 个字符,预计需要花费 19 分钟才能阅读完成。
为了方便把安装 Zabbix 的过程整理成自动化一键部署脚本,有兴趣可以参考,都是些基本的命令:
#!/bin/bash
#Zabbix 一键部署脚本
# 安装 zabbix3.0.4, 依赖 php-5.6.25
src_home=`pwd`
echo -n “ 正在配置 iptables 防火墙……”
/etc/init.d/iptables save >> /dev/null
chkconfig iptables off
if [$? -eq 0];then
echo -n “Iptables 防火墙初始化完毕!”
fi
echo -n “ 正在关闭 SELinux……”
setenforce 0 > /dev/null 2>&1
sed -i ‘/^SELINUX=/s/=.*/=disabled/’ /etc/selinux/config
if [$? -eq 0];then
echo -n “SELinux 初始化完毕!”
fi
echo -n “ 正在安装 nginx yum 源……”
yum -y install wget
wget http://nginx.org/packages/CentOS/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
if [$? -eq 0];then
echo -n “Nginx yum 源 初始化完毕!”
fi
echo -n “ 正在安装 epel-release yum 源……”
rpm -Uvh http://mirrors.ustc.edu.cn/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
if [$? -eq 0];then
echo -n “epel-release yum 源 初始化完毕!”
fi
echo -n “ 正在安装 php-5.6.25 的编译所需相关软件……”
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*
if [$? -eq 0];then
echo -n “php-5.6.25 依赖初始化完毕!”
fi
echo -n “ 正在添加 zabbix 用户……”
useradd -M -s /sbin/nologin zabbix && echo “OK”
echo -n “ 正在启动 mysqld 服务……”
service mysqld start
if [$? -eq 0];then
echo -n “Mysql 启动完毕!”
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 “ 授权任何主机本地登录数据库 ”
#zabbix 一键部署第三方软件包的解压目录
echo -n “ 编译安装 php-5.6.25…. 可能需要几分钟 ”
tar zxf ${src_home}/php-5.6.25.tar.gz
cd ${src_home}/php-5.6.25 && ./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
cd ${src_home}/php-5.6.25 && make -j 4 && make install
cd
echo -n “ 正在配置启动 php-fpm…. 请稍等 ”
/bin/cp ${src_home}/php-5.6.25/php.ini-production /etc/php.ini
cp ${src_home}/php-5.6.25/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 777 /etc/init.d/php-fpm
cd /usr/local/php/etc/ && cp php-fpm.conf.default php-fpm.conf
cd
service php-fpm start
if [$? -eq 0];then
echo -n “php-fpm 启动完毕!”
fi
#zabbix 编译安装
echo -n “ 正在导入 zabbix 数据到 mysql 数据库中 ….”
tar zxf ${src_home}/zabbix-3.0.4.tar.gz
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 编译依赖软件包 …. 可能需要几分钟 ”
yum -y install net-snmp-devel curl-devel javacc java-1.8*
echo -n “ 编译安装 Zabbix-server…. 可能需要几分钟 ”
cd ${src_home}/zabbix-3.0.4 && ./configure –prefix=/usr/local/zabbix –enable-server –enable-proxy –enable-agent –with-net-snmp –with-libcurl –enable-java –with-mysql
make -j 4 && make install
echo -n “ 正在制作 Zabbix-server 启动脚本 ….”
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
cp ${src_home}/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp ${src_home}/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cd
chmod 777 /etc/init.d/zabbix_*
sed -i ‘/BASEDIR=/s/$/\/zabbix/’ /etc/init.d/zabbix_server
sed -i ‘/BASEDIR=/s/$/\/zabbix/’ /etc/init.d/zabbix_agentd
echo -n “ 正在配置 zabbix 配置文件 ….”
cd /usr/local/zabbix/etc
sed ‘/# DBHost=localhost/a\DBHost=localhost’ zabbix_server.conf -i
sed ‘/# DBPassword=/a\DBPassword=zabbix’ zabbix_server.conf -i
sed ‘/# EnableRemoteCommands=0/a\EnableRemoteCommands=1’ zabbix_agentd.conf -i
sed ‘/# ListenPort=10050/a\ListenPort=10050’ zabbix_agentd.conf -i
sed ‘/# User=zabbix/a\User=zabbix’ zabbix_agentd.conf -i
sed ‘/# AllowRoot=0/a\AllowRoot=1’ zabbix_agentd.conf -i
sed ‘/# UnsafeUserParameters=0/a\UnsafeUserParameters=1’ zabbix_agentd.conf -i
if [$? -eq 0];then
echo -n “zabbix 配置完毕!”
fi
echo -n “ 正在启动 zabbix_server and zabbix_agent….”
service zabbix_server start
service zabbix_agentd start
chkconfig zabbix_server on
chkconfig zabbix_agentd on
cd
echo -n “ 正在配置 nginx 反代 zabbix….”
cp -r ${src_home}/zabbix-3.0.4/frontends/php /usr/share/nginx/html/zabbix
cd /etc/nginx/conf.d/ && mv default.conf default.conf.bak
cp ${src_home}/zabbix.conf /etc/nginx/conf.d/
echo -n “ 配置完成,正在启动 nginx web server….”
service nginx start
if [$? -eq 0];then
echo -n “Nginx 启动完毕!”
fi
echo -n “ 正在进行最后的 zabbix Install ,php 参数修改 …..”
sed ‘/^post_max_size =/s/=.*/= 16M/’ /etc/php.ini -i
sed ‘/^max_execution_time =/s/=.*/= 300/’ /etc/php.ini -i
sed ‘/^max_input_time =/s/=.*/= 300/’ /etc/php.ini -i
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 “ 正在重新启动 php 服务 …..”
/etc/init.d/php-fpm restart
echo -n “ 正在初始化 zabbix Server….”
cp ${src_home}/zabbix.conf.php /usr/share/nginx/html/zabbix/conf/
echo -n “ 正在做最后的 Zabbix Server 重启 …..”
/etc/init.d/zabbix_server restart
if [$? -eq 0];then
echo -n “Zabbix Server 启动完毕!”
fi
echo -n “ 正在解决 zabbix server 乱码问题, 请你耐心等待 …..”
cd /usr/share/nginx/html/zabbix/fonts && mv DejaVuSans.ttf DejaVuSans.ttf.bak
cp ${src_home}/msyh.ttf .
cd ../include/ && sed -i ‘s/DejaVuSans/msyh/g’ defines.inc.php
cd
echo -n “ 恭喜你,Zabbix 部署到此完成,如有问题,请参照脚本单独解决!!!”
echo -e -n “ 后续的操作:1、通过 http://ip/zabbix 访问你的 zabbix Web 页面, 下一步 …. 一直到底。2、你可能需要配置 Nginx 域名, 通过域名访问 Zabbix Server…. 3、你需要自己自定义或者使用系统自带模板,添加主机等等 ….”
脚本跑完没报错,在你的浏览器里输入:http://172.16.2.21/zabbix/ 应该可以看到下面的页面:
一键部署 tar 包我已经打包好了,附件 可以到 Linux 公社 1 号 FTP 服务器下载:
—————————————— 分割线 ——————————————
FTP 地址:ftp://ftp1.linuxidc.com
用户名:ftp1.linuxidc.com
密码:www.linuxidc.com
在 2017 年 LinuxIDC.com/ 3 月 /Zabbix Server 自动化一键部署脚本 /
下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm
—————————————— 分割线 ——————————————
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
CentOS 7 LNMP 环境搭建 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140134.htm
Ubuntu 16.04 安装部署监控系统 Zabbix2.4 http://www.linuxidc.com/Linux/2017-03/141436.htm
Zabbix 监控安装部署及警报配置 http://www.linuxidc.com/Linux/2017-03/141611.htm
Ubuntu 16.04 下安装部署 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140395.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142041.htm