一键安装zabbix
来源:互联网 发布:360数据恢复软件 编辑:程序博客网 时间:2024/06/04 18:23
zabbix是一款很实用的监控工具
以下开始介绍如何一键安装zabbix
本次版本基于zabbix-2.4.7.tar.gz源码包安装
注明:
Centos 6.5
zabbix-server:192.168.1.1
zabbix-agent:192.168.1.2
实用方法:
1、将zabbix-2.4.7.tar.gz分别放到192.168.1.1和192.168.1.2的/opt目录
2、将zabbix_install.sh、zabbix_install.conf文件放入/opt目录,并将zabbix_install.sh给予执行权限
zabbix_install.sh代码:
#!/bin/bash#coding:utf-8dirpath=$(cd `dirname $0`; pwd). $dirpath/zabbix_install.configexport LANG=zh_CN.UTF-8[ `id -u` -ne 0 ] && echo "请使用root权限安装" && exit 1########################################################################function server_install(){ echo -e "\n---------------------------------------------------" cat <<EOF安装Zabbix环境需要依赖如下: os: CentOS release 6.7 (Final) 6.x版本应该都能正常安装gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-develcurl-devel unixODBC-devel OpenIPMI-devel java-develEOF echo -e "---------------------------------------------------\n" echo "※你选择的是安装服务端,是否开始安装?※" while true;do select var in "yes" "no";do break done if [ "$var"x = "yes"x -o "$var"x = "no"x ];then if [ "$var"x = "yes"x ];then echo "你选择的是$var,开始安装......" sleep 1 break else echo "你选择的是$var,退出安装......" sleep 1 exit 1 fi else echo "请输入正确的数字序号!" fi done######################################################################## yum -y install gcc gcc-c++ autoconf mysql-devel httpd httpd-manual mod_ssl mod_perl mod_auth_mysql php php-mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel openldap openldap-devel SSH libssh2-devel if [ $? -ne 0 ];then echo "依赖包安装失败,更新yum源......" /bin/cp ./*.repo /etc/yum.repos.d/ yum clean all && yum makecache echo "yum源更新完成,重新安装依赖包......" yum -y install gcc gcc-c++ autoconf mysql-devel httpd httpd-manual mod_ssl mod_perl mod_auth_mysql php php-mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel openldap openldap-devel SSH libssh2-devel libxml2 libxml-devel if [ $? -ne 0 ];then echo "依赖包安装又失败,请检查网络是否正常......" exit 1 fi fi######################################################################## [ ! -f /etc/php.ini ] && echo "php.ini不存在,请检查php是否成功安装" && exit 3 echo "依赖包安装完成,开始配置php.ini文件......" sleep 1 sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini && sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /etc/php.ini && sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini && sed -i "s#max_input_time = 60#max_input_time = 300#g" /etc/php.ini && sed -i "s#memory_limit = 128M#memory_limit = 128M#g" /etc/php.ini &&# sed -i "/;mbstring.func_overload = 0/ambstring.func_overload = 2\n" /etc/php.ini######################################################################## defaultip=`/sbin/ifconfig |grep -v 'inet6'|grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}' -o|grep -vE '^(127|255)|255$'|head -1` ip=${HOSTNAME:-$defaultip} echo "正在创建zabbix用户......" groupadd zabbix -g 201 useradd -g zabbix -u 201 -m zabbix echo "解压zabbix压缩包......" tar -zxvf $ZABBIX_TAR cd $dirpath/$ZABBIX_TAR_DIR echo "开始编译安装zabbix......" defaultpath=/usr/local/$ZABBIX_TAR_DIR PATH_ZABBIX=${ZABBIX_DIR:-$defaultpath} ./configure --prefix=$PATH_ZABBIX --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libxml2 --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --enable-java make && make install if [ $? -ne 0 ];then echo "编译安装失败,请检查错误信息提示......" exit 1 fi######################################################################### mkdir -p /var/log/zabbix && chown -R zabbix.zabbix /var/log/zabbix && cp ./misc/init.d/fedora/core/zabbix_* /etc/init.d/ && chmod 755 /etc/init.d/zabbix_* && sed -i "s#BASEDIR=/usr/local#BASEDIR=$PATH_ZABBIX#g" /etc/init.d/zabbix_server && sed -i "s#BASEDIR=/usr/local#BASEDIR=$PATH_ZABBIX#g" /etc/init.d/zabbix_agentd if [ $? -ne 0 ] then echo "zabbix启动文件配置出错,退出安装......" exit 1 else echo -e "\n---------------------------------------------------" fi######################################################################## echo "zabbix需要mysql数据库支持,远程或者本地都可以,如果没有,程序将为您mysql安装,如果有,您需要在web配置界面填写数据库信息" echo "请选择对应的序号开始安装/配置" while true;do select var in "本地:未安装mysql数据库" "本地:已安装mysql数据库" "远程:使用远程mysql数据库";do break done if [ "$var"x = "本地:未安装mysql数据库"x -o "$var"x = "本地:已安装mysql数据库"x -o "$var"x = "远程:使用远程mysql数据库"x ];then if [ "$var"x = "本地:未安装mysql数据库"x ];then if [ ! -n $MYSQL_PASSWD -o ! -n $ZABBIX_PASSWD ];then echo "你未设置mysql的root用户或zabbix用户密码,请在配置文件里设置密码" exit 2 fi yum install -y mysql-server mysql-connector-odbc echo "开启 mysqld 服务......" chkconfig mysqld on && service mysqld start if [ $? -ne 0 ];then echo "开启 mysqld 服务失败,请检查mysql数据库是否成功安装......" exit 1 fi mysqladmin -uroot password $MYSQL_PASSWD echo "mysql数据库root密码设置成功!" mysql -u$MYSQL_USERNAME -p$MYSQL_PASSWD <<EOFcreate database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@localhost identified by '$ZABBIX_PASSWD';flush privileges;EOF if [ $? -ne 0 ];then echo "创建zabbix用户失败,请检查是否正确配置!" exit 1 fi echo "导入zabbix数据到mysql数据库...." mysql -uzabbix -p$ZABBIX_PASSWD zabbix <./database/mysql/schema.sql && mysql -uzabbix -p$ZABBIX_PASSWD zabbix <./database/mysql/images.sql && mysql -uzabbix -p$ZABBIX_PASSWD zabbix <./database/mysql/data.sql if [ $? -ne 0 ];then echo "导入zabbix数据到mysql数据库错误,退出安装......" exit 1 fi break elif [ "$var"x = "本地:已安装mysql数据库"x ];then if [ ! -n $MYSQL_PASSWD -o ! -n $ZABBIX_PASSWD ];then echo "你未设置mysql的root用户或zabbix用户密码,请在配置文件里设置密码" exit 2 fi mysql -u$MYSQL_USERNAME -p$MYSQL_PASSWD -P$MYSQL_PORT <<EOFcreate database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@localhost identified by '$ZABBIX_PASSWD';flush privileges;EOF if [ $? -ne 0 ];then echo "登录mysql失败,请检查用户名密码和服务器端口是否正确。" exit 1 else echo "导入zabbix数据到mysql数据库...." mysql -uzabbix -p$ZABBIX_PASSWD -P $MYSQL_PORT zabbix <./database/mysql/schema.sql && mysql -uzabbix -p$ZABBIX_PASSWD -P $MYSQL_PORT zabbix <./database/mysql/images.sql && mysql -uzabbix -p$ZABBIX_PASSWD -P $MYSQL_PORT zabbix <./database/mysql/data.sql if [ $? -ne 0 ];then echo "导入zabbix数据到mysql数据库错误,退出安装......" exit 1 fi fi break else echo "正在配置远程mysql数据库......" if [ ! -n $MYSQL_PASSWD -o ! -n $ZABBIX_PASSWD ];then echo "你未设置mysql的root用户或zabbix用户密码,请在配置文件里设置密码" exit 2 fi sed -i "/# DBHost=/aDBHost=$REMOTE_HOSTNAME\n" /etc/zabbix/zabbix_server.conf mysql -h $REMOTE_HOSTNAME -u$MYSQL_USERNAME -p$MYSQL_PASSWD -P$MYSQL_PORT <<EOFcreate database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@$ip identified by '$ZABBIX_PASSWD';grant all privileges on zabbix.* to zabbix@localhost identified by '$ZABBIX_PASSWD';flush privileges;EOF if [ $? -ne 0 ];then echo "登录mysql失败,请检查用户名密码和服务器端口是否正确,或者mysql服务器是否开通本机访问权限" exit 1 fi echo "导入zabbix数据到mysql数据库...." mysql -h $REMOTE_HOSTNAME -uzabbix -p$ZABBIX_PASSWD -P$MYSQL_PORT zabbix <./database/mysql/schema.sql && mysql -h $REMOTE_HOSTNAME -uzabbix -p$ZABBIX_PASSWD -P$MYSQL_PORT zabbix <./database/mysql/images.sql && mysql -h $REMOTE_HOSTNAME -uzabbix -p$ZABBIX_PASSWD -P$MYSQL_PORT zabbix <./database/mysql/data.sql if [ $? -ne 0 ];then echo "导入zabbix数据到mysql数据库错误,退出安装......" exit 1 fi break fi else echo "请输入正确的数字序号!" fi done######################################################################## echo "配置 zabbix_server.conf 服务端文件" sed -i "s/DBUser\=root/DBUser\=zabbix/g" /etc/zabbix/zabbix_server.conf && sed -i "/# DBPassword=/aDBPassword=$ZABBIX_PASSWD\n" /etc/zabbix/zabbix_server.conf && sed -i "s#tmp/zabbix_server.log#var/log/zabbix/zabbix_server.log#g" /etc/zabbix/zabbix_server.conf######################################################################## echo "配置 zabbix_agentd.conf 文件" sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,$ip/g" /etc/zabbix/zabbix_agentd.conf && sed -i "s/ServerActive\=127.0.0.1/ServerActive\=$ip:10051/g" /etc/zabbix/zabbix_agentd.conf && sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/zabbix_agentd.conf && sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf######################################################################## echo "拷贝网页文件和中文字体到 apache 目录" [ ! -d /var/www/html/ ] && echo "目录不存在,请检查httpd是否成功安装" && exit 3 cp -r ./frontends/php/ /var/www/html/zabbix && \cp -f ../DejaVuSans.ttf /var/www/html/zabbix/fonts/DejaVuSans.ttf &&######################################################################## echo "正在创建zabbix.conf.php文件" if [ "$var"x = "远程:使用远程mysql数据库"x ];then PHP_SERVER=$REMOTE_HOSTNAME else PHP_SERVER=localhost fi echo "<?php// Zabbix GUI configuration file.global \$DB;\$DB['TYPE'] = 'MYSQL';\$DB['SERVER'] = '$PHP_SERVER';\$DB['PORT'] = '$MYSQL_PORT';\$DB['DATABASE'] = 'zabbix';\$DB['USER'] = 'zabbix';\$DB['PASSWORD'] = '$ZABBIX_PASSWD';// Schema name. Used for IBM DB2 and PostgreSQL.\$DB['SCHEMA'] = '';\$ZBX_SERVER = '$ip';\$ZBX_SERVER_PORT = '10051';\$ZBX_SERVER_NAME = '$ip';\$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;?>" > /var/www/html/zabbix/conf/zabbix.conf.php chown -R apache.apache /var/www/html/zabbix######################################################################## echo "开启 httpd 服务......" chkconfig httpd on && service httpd start if [ $? -ne 0 ];then echo "开启 httpd 服务失败,请检查httpd是否成功安装......" exit 1 fi######################################################################## echo "设置 zabbix 开机启动" chkconfig zabbix_server on && chkconfig zabbix_agentd on && service zabbix_server start && service zabbix_agentd start if [ $? -ne 0 ];then echo "zabbix启动失败,请检查配置文件是否都正确......" exit 1 fi####################################################################### while true;do echo "是否需要开启zabbix需要使用的(80,10050,10051,3306)端口" select var_port in "我需要开启端口" "我需要关闭防火墙";do break done if [ "$var_port"x = "我需要开启端口"x -o "$var_port"x = "我需要关闭防火墙"x ];then if [ "$var_port"x = "我需要开启端口"x ];then iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT service iptables save break else service iptables stop break fi else echo "请输入正确的数字序号!" fi done echo -e "\n-----------------------------------------------------------" echo "恭喜你,zabbix已全部安装完成,你可以登录web界面完成最后的设置" echo -e "-----------------------------------------------------------\n" echo "Zabbix安装路径:$PATH_ZABBIX" echo "Zabbix日志文件路径:/var/log/zabbix" echo "Zabbix配置文件路径:/etc/zabbix" echo "mysql数据库$MYSQL_USERNAME密码:$MYSQL_PASSWD" echo "mysql数据库zabbix密码:$ZABBIX_PASSWD" echo "web端访问地址:http://$ip/zabbix" echo "web端登录账号:admin 密码:zabbix" echo -e "\n-----------------------------------------------------------\n"}############################################################################################################################################################################################function client_install(){ echo -e "---------------------------------------------------\n" echo "※你选择的是安装客户端,是否开始安装?※" while true;do select var in "yes" "no";do break done if [ "$var"x = "yes"x -o "$var"x = "no"x ];then if [ "$var"x = "yes"x ];then echo "你选择的是$var,开始安装......" sleep 1 break else echo "你选择的是$var,退出安装......" sleep 1 exit 1 fi else echo "请输入正确的数字序号!" fi done############################################################################################### [ ! $HOSTNAME ] && echo "检测到你未填写server端IP,请正确填写后继续" && exit 2 yum -y install gcc gcc-c++ if [ $? -ne 0 ];then echo "依赖包安装失败,更新yum源......" /bin/cp ./*.repo /etc/yum.repos.d/ yum clean all && yum makecache echo "yum源更新完成,重新安装依赖包......" yum -y install gcc gcc-c++ if [ $? -ne 0 ];then echo "依赖包安装又失败,请检查网络是否正常......" exit 1 fi fi ############################################################################################### echo "正在编译安装zabbix客户端......" groupadd zabbix -g 201 useradd -g zabbix -u 201 -m zabbix echo "解压zabbix压缩包......" tar -zxvf $ZABBIX_TAR cd $dirpath/$ZABBIX_TAR_DIR echo "开始编译安装zabbix......" defaultpath=/usr/local/$ZABBIX_TAR_DIR PATH_ZABBIX=${ZABBIX_DIR:-$defaultpath} ./configure --prefix=$PATH_ZABBIX --sysconfdir=/etc/zabbix --enable-agent && make && make install if [ $? -ne 0 ];then echo "编译安装失败,请检查错误信息提示......" exit 1 fi############################################################################################### mkdir -p /var/log/zabbix && chown zabbix.zabbix /var/log/zabbix && cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ && chmod 755 /etc/init.d/zabbix_agentd && sed -i "s#BASEDIR=/usr/local#BASEDIR=$PATH_ZABBIX#g" /etc/init.d/zabbix_agentd && sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,$HOSTNAME/g" /etc/zabbix/zabbix_agentd.conf && sed -i "s/ServerActive\=127.0.0.1/ServerActive\=$HOSTNAME:10051/g" /etc/zabbix/zabbix_agentd.conf && sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/zabbix_agentd.conf && sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf && chkconfig zabbix_agentd on && service zabbix_agentd start if [ $? -ne 0 ];then echo "zabbix_agentd启动失败,请检查错误信息提示......" exit 1 fi iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT service iptables save echo -e "\n---------------------------------------------------" echo "恭喜你,zabbix客户端已安装完成!" echo -e "---------------------------------------------------\n"}################################################################################################# install_server OR install_client #################################################################################################while true;do select var in "我要安装server端" "我要安装client端";do break done if [ "$var"x = "我要安装server端"x -o "$var"x = "我要安装client端"x ];then if [ "$var"x = "我要安装server端"x ];then server_install exit 0 else client_install exit 0 fi else echo "请输入正确的数字序号!" fidone
zabbix_install.conf
# 此文件为zabbix_install.sh的配置文件,你可以在此文件设置安装信息。############################################################## zabbix server or client install config file ############################################################### 此项为server端IP(web端访问)地址,如服务器为双/多网卡需设置,单网卡可为空(client端安装为必填项)。HOSTNAME=# 此项为zabbix安装tar.gz包名,方便更换其它版本的安装。ZABBIX_TAR=zabbix-2.4.7.tar.gz# 此项为zabbix解压后的目录名,方便更换其它版本的安装。ZABBIX_TAR_DIR=zabbix-2.4.7# 此项为安装路径,如路径不存在将自动创建,如此项为空,默认安装在/usr/local/$ZABBIX_TAR_DIR下。ZABBIX_DIR=# 此项为mysql用户,必须具有创建角色和创建database权限,建议使用root用户;# 如使用本机且未安装mysql数据库,请勿修改。MYSQL_USERNAME=root# 此项为上述mysql用户密码(client端安装可为空)。MYSQL_PASSWD=77066188# 此项为运行zabbix需要创建的mysql用户zabbix时所需的密码(client端安装可为空)。ZABBIX_PASSWD=77066188# 此项为如使用远程mysql数据库时所需的服务器IP地址,如使用本机mysql数据库可为空(client端安装可为空)。MYSQL_HOSTNAME=# 此项为mysql数据库使用的端口,默认为3306。MYSQL_PORT=3306
3、./zabbix_install.sh 选择要安装的项目
0 0
- 一键安装zabbix
- zabbix一键安装方式
- zabbix一键安装脚本
- zabbix一键安装脚本
- LNMP+zabbix一键安装部署
- LNMP+zabbix一键安装部署
- CentOS6.x一键部署安装zabbix
- zabbix安装部署一
- Zabbix安装(一)
- zabbix简介及安装(一)
- zabbix agentd客户端插件Shell一键自动安装脚本
- zabbix学习(一)安装和配置zabbix-server
- Zabbix的使用(一)---安装
- 一键部署Zabbix Server
- Zabbix (一)
- zabbix安装
- zabbix 安装
- zabbix安装
- eclipse开发小技巧
- UML---行为图(状态图,活动图)
- 4572: [Scoi2016]围棋
- 顶尖程序员不同于常人的 5 个区别
- [JZOJ3989]Point
- 一键安装zabbix
- win10自带的edge浏览器,显示‘嗯,我们找不到网页’
- CentOS卸载OpenJDK并安装Sun JDK
- 年轻程序员如何快速发展成一名架构师或者技术专家?
- 《汇编语言(第3版)》王爽 第十二章实验
- 成为优秀程序员的18大法则
- 旋转数组的最小值
- Android 6.0 Marshmallow 拨打电话流程
- vim打开文件编辑后无写入权限