#!/ binに/、bashの 関数MEMU(){ 猫<< EOF 1.install zabbix_server 2インストールzabbix_agent EOF } MEMU "あなたがまたはZABBIXエージェント、してください入力1または2 zabbix_serverインストールする必要があります:" -p読みNUMを 場合[-z $ NUM]; then echo "请今入{1 | 2}" exit 1 fi if [$ NUM -eq 1]; then echo "start install zabbix_server" system_version = `cat / etc / redhat-release | sed- r's /.*([0-9 ] +)\ .. * / \ 1 / '` yum_dir = / installzabbix #pack_deposit_dir = / usr / local / src pack_name = install-zabbbix.tar.gz FILE =` date +%F_%T`_install_zabbix.log touch / tmp / $ {FILE} INSTALLLOG = / tmp / $ {FILE} if [-e $ {yum_dir}];その後 echo "$ {yum_dir} dirは既に存在します" >> $ {INSTALLLOG} echo "yum_dir名を変更してください" exit 1; else mkdir -pv $ {yum_dir}&> / dev / null if [-e $ {yum_dir}]; then echo "$ {yum_dir} dir create finish" >> $ {INSTALLLOG} fi fi for i in / etc / passwd / etc / shadow / etc / group / etc / gshadow do if [`lsattr $ {i} | cut -c 5` = i]; then / usr / bin / chattr -i $ i / usr / bin / lsattr $ i >> $ {INSTALLLOG} else echo "$ i不存在i安全番号" >> #createrepoパッケージをを生成します yum -y install createrepo yum-utils if [$?-eq 0]; then echo "createrepoパッケージはすでにインストール完了です" >> $ {INSTALLLOG} else echo "createrepoパッケージのインストールに失敗しました" >> $ {INSTALLLOG} exit 1 fi # /etc/yum.repos.d/ディレクトリにリポジトリファイルを生成します yum-config-manager--add-repo = file:// $ {yum_dir} if [-e /etc/yum.repos.d${yum_dir } .repo]; then echo "リポジトリファイルが生成されました" >> $ {INSTALLLOG} else echo "リポジトリファイルが生成されていません" >> $ {INSTALLLOG} exit 1 fi #generate repodata createrepo $ {yum_dir} if [-e $ {yum_dir} / repodata]; then echo "リポジトリが生成されました" >> $ {INSTALLLOG} else echo "repodataは生成されません」>> $ {INSTALLLOG} fi yum repolist | grep $ {yum_dir} if [$?-eq 0]; then echo "yumsourcepositionpresent" >> $ {INSTALLLOG} else echo "yumsourceplication失败" >> $ {INSTALLLOG} exit fi echo "------------- --------------------------------- ">> $ {INSTALLLOG} echo" gpgcheck = 0 ">> / etc /yum.repos.d/${yum_dir}.repo #安装包 なら[$ {system_version} -eq 6];次に、 yumをインストール-yのhttpd PHP PHP-MySQLのPHP-LDAP PHP-GD PHP-bcmathのPHP-mbstringのPHP -xml libaio libaio-devel yum -y install zabbix-server zabbix-agent zabbix-java-gateway zabbix-web-mysql zabbix-get fi if [$ {system_version} -eq 7]; then yum -y install httpd php php-pecl-mysql php-mysqlnd php-ldap php-gd php-bcmath php-mbstring php-xml libaio libaio-devel id $ mysql_user&> / dev / null if [$?= 0];次に yum -y install zabbix-server zabbix-agent zabbix-java-gateway zabbix-web-mysql zabbix-get fi # 安装mysql mysql_version = 5.7.24 mysql_user = mysql mysql_install_dir = / app / database mysql_root_passwd = centos base_dir = $ {mysql_install_dir} / $ {mysql_user} mysql_data_dir = / data / mysql mysql_logs = $ mysql_install_dir / logs error_logs = $ {mysql_logs} /mysqld.log mysql_pid = $ {mysql_install_dir} / $ {mysql_user} /mysqld.pid socket_file = $ {base_dir} / mysql .sock yum -y install libaio * echo "$ mysql_userユーザーはすでに存在しました" exit 1 else useradd -r $ mysql_user -s / sbin / nologin fi if [-e $ {mysql_install_dir}]; then echo "$ {mysql_install_dir} dirはすでに存在しました" exit 1 else mkdir -p $ mysql_data_dir mkdir -p $ mysql_logs touch $ mysql_logs / mysqld.log fi if [-e mysql- $ {mysql_version} -linux-glibc2.12-x86_64.tar]; then tar xvf mysql- $ {mysql_version} -linux-glibc2.12-x86_64.tar tar xvf mysql- $ {mysql_version} -linux-glibc2.12-x86_64.tar.gz -C $ {mysql_install_dir} else echo "packages inexistence " exit 1 fi cd $ {mysql_install_dir} mv mysql-5.7.24-linux-glibc2.12-x86_64 $ {mysql_user} のchown -R $ {mysql_user} $ {mysql_user} $ {mysql_install_dirは} -R 755ます。chmod $ {mysql_install_dir} cat> /etc/my.cnf << EOF [クライアント] ポート= 3306 ソケット= / tmp / mysql.sock [mysqld] default_password_lifetime = 360 character_set_server = utf8 init_connect = 'SET NAMES utf8' basedir = $ {base_dir} datadir = $ {mysql_data_dir} socket = $ {socket_file} log-error = $ {error_logs} PIDファイル= $ {mysql_pid} #不区分大小写 はlower_case_table_names = 1 sql_modeの= STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTIONの MAX_CONNECTIONSは= 5000 デフォルト-TIME_ZONE = '+8:00' EOF $ {base_dir} / bin / mysqld --initialize --user = $ mysql_user --basedir = $ {base_dir} --datadir = $ {mysql_data_dir} echo "PATH = $ {base_dir} / bin:$ PATH"> /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh cp $ {base_dir} /support-files/mysql.server / etc / init.d / mysqld ln -sv $ {socket_file} /tmp/mysql.sock chkconfig --add mysqld chkconfig mysqld on service mysqld start sleep 5 #cat /var/log/mysqld.log | awk '/ root @ localhost / {print $ NF}' #root_init_passwd = `cat $ {mysql_logs} /mysqld.log | awk '/ root @ localhost / {print $ NF}' ` root_init_passwd =` cat $ {mysql_logs} /mysqld.log | grep '一時パスワード' | awk '{print $ NF}' ` #/ usr / local / mysql / bin / mysql -uroot -p $ {root_init_passwd} -e "root @ localhost = password( 'centos');のパスワードを設定します。" $ {base_dir} / bin / mysql -uroot -p $ {root_init_passwd} --connect-expired-password -e "set password = password( '$ {mysql_root_passwd}');" $ {base_dir} / bin / mysql -uroot -p $ {mysql_root_passwd} --connect-expired-password -e "フラッシュ特権;" #创建zabbix用 户$ {base_dir} / bin / mysql -uroot -p $ {mysql_root_passwd} -e "データベースzabbixを作成します; zabbix。*のすべてを 'zabbix'で識別されるzabbix @ 'localhost'に付与します;" $ {base_dir} / bin / mysql -uroot -p $ {mysql_root_passwd} -e "特権のフラッシュ;" #導入zabbixデータズキャット /usr/share/doc/zabbix-server-mysql*/create.sql.gz | $ {base_dir} / bin / mysql -uzabbix -hlocalhost -pzabbix zabbix #修改zabbix_server配置文件 if [$ {system_version} -eq 6]; then sed -i's /#DBHost = localhost / DBHost = localhost / g ' / etc / zabbix / zabbix_server.conf sed -i's /#DBname = zabbix / DBname = zabbix / g '/ etc / zabbix / zabbix_server.conf sed -i' s /#DBPassword = / DBPassword = zabbix / g '/ etc / zabbix / zabbix_server.conf sed -i' s /#ListenPort = 10051 / ListenPort = 10051 / g '/ etc / zabbix / zabbix_server.conf sed -i' s /#DBSocket = \ / tmp \ /mysql.sock/DBSocket=\/tmp\/mysql.sock/g'/etc/zabbix/zabbix_server.conf ls /etc/zabbix/zabbix_server.conf >> $ {INSTALLLOG} egrep -v "^ $ | ^#" /etc/zabbix/zabbix_server.conf >> $ {INSTALLLOG} echo "--------- ------------------------------------- ">>$ {INSTALLLOG} fi if [$ {system_version} -eq 7]; then sed -i 's /#DBHost = localhost / DBHost = 127.0.0.1 / g '/ etc / zabbix / zabbix_server.conf sed -i's /#DBname = zabbix / DBname = zabbix / g '/ etc / zabbix / zabbix_server.conf sed -i's /#DBPassword = / DBPassword = zabbix / g' / etc / zabbix / zabbix_server.conf sed -i's /#ListenPort = 10051 / ListenPort = 10051 / g '/ etc / zabbix / zabbix_server.conf sed -i's /#DBSocket = \ / tmp \ /mysql.sock/DBSocket=\/tmp\/mysql .sock / g '/ etc / zabbix / zabbix_server.conf ls /etc/zabbix/zabbix_server.conf >> $ {INSTALLLOG} egrep -v "^ $ | ^#" /etc/zabbix/zabbix_server.conf >> $ { INSTALLLOG} echo "---------------------------------------------- ">> $ {INSTALLLOG} fi #修改zabbix_agent配置文件 if [$ {system_version} -eq 6]; then sed -i's / Hostname = Zabbix server /#Hostname = Zabbix server / g '/ etc / zabbix / zabbix_agentd 。conf sed -i's /#HostnameItem = system.hostname / HostnameItem = system.hostname / g '/ etc / zabbix / zabbix_agentd.conf ls /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} egrep -v "^ $ | ^# "/etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} echo" ------------------------------ ---------------- ">> $ {INSTALLLOG} fi if [$ {system_version} -eq 7]; then sed -i's / Hostname = Zabbix server /#Hostname = Zabbix server / g ' / etc / zabbix / zabbix_agentd.conf sed -i' s /#HostnameItem = system.hostname / HostnameItem = system.hostname / g ' / etc / zabbix / zabbix_agentd.conf ls / etc / zabbix / zabbix_agentd conf >> $ {INSTALLLOG} egrep -v "^ $ | ^#" /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} echo "---------------------------------------------- ">> $ {INSTALLLOG} fi #修改php.ini if [$ {system_version} -eq 6]; then cp / usr / share / doc / zabbix-web-3.4.15 / httpd22-example.conf / etc / httpd / conf.d / zabbix。 conf sed -i's /#php_value date.timezone Europe \ / Riga / php_value date.timezone Asia \ / Shanghai / g ' / etc / httpd / conf.d / zabbix.conf sed -i's / mysqli.default_socket = /mysqli.default_socket = \ / tmp \ /mysql.sock/g'/etc/php.ini sed -i "/ post_max_size / s / 8/16 / g" /etc/php.ini sed -i "/ max_execution_time / s / 30/300 / g "/etc/php.ini sed -i" / max_input_time = 60 / s / 60/300 / g "/etc/php.ini sed -i's /; date.timezone = / date .timezone = \ "Asia \ / Shanghai \" / g '/ etc / php.ini chown -Rapache 。apache / etc / zabbix / web fi if [$ {system_version} -eq 7]; then sed -i's / mysqli.default_socket = /mysqli.default_socket = \ / tmp \ /mysql.sock/g '/etc/php.ini sed -i' / <IfModule mod_php5.c> / c \ <IfModulemod_php7。 c> ' / etc / httpd / conf.d / zabbix.conf sed -i' s /#php_value date.timezone Europe \ / Riga / php_value date.timezone Asia \ / Shanghai / g '/ etc / httpd / conf.d /zabbix.conf fi #修改http默认访问路角是zabbix的页面 -i -r '/ ^ DocumentRoot / c \ DocumentRoot "/ usr / share / zabbix"' /etc/httpd/conf/httpd.conf if [$ {system_version} -eq 6]; then #启PHPhttpd service httpd start chkconfig --add httpd chkconfig httpd on #启PIN本地zabbix_server和zabbix_agent / etc / init.d / zabbix-server start / etc / init。d / zabbix-agent start chkconfig --add zabbix-server chkconfig zabbix-server on chkconfig --add zabbix-agent chkconfig zabbix-agent on fi if [$ {system_version} -eq 7]; then systemctl start httpd systemctl enable httpd systemctl start zabbix-server zabbix-agent systemctl enable zabbix-server zabbix -agent Fiの 私で/ etc / passwdファイルは/ etc / shadowを/ etc / groupのは/ etc / gshadowのために 行う [ `たlsattr $ {I}場合| cut -c 5` = i]; then echo "$ {i}存在安全言語" >> $ {INSTALLLOG} else chattr + i $ i lsattr $ i >> $ {INSTALLLOG} fi done echo "---- ------------------------------------------ ">> $ {INSTALLLOG} echo "访问地址是zabbix-serverip地址" >> echo "zabbix Webページのデフォルトのログインアカウントはadminで、パスワードはzabbixです" >> $ {INSTALLLOG} echo "mysqlユーザー名は$ {mysql_user}" >> $ {INSTALLLOG} echo "mysql_root_passwdは$ {に変更されますmysql_root_passwd} ">> $ {INSTALLLOG} echo" mysql_install_dir is $ {mysql_install_dir} ">> $ {INSTALLLOG} echo -e" \ 033 [1; 34m zabbix-serverのインストールが完了し、出力は$ {INSTALLLOG}にあります/ tmpディレクトリ内のファイル\ 033 [0m " fi if [$ NUM -eq 2]; then echo" start install zabbix_agent " read -p" zabbix_server IPを入力してください: "zabbixserverIP system_version =` cat / etc / redhat-release | sed -r's /.*([0-9] +)\ .. * / \ 1 / '` yum_dir = / installzabbix #pack_deposit_dir = / usr / local / src pack_name = install-zabbbix.tar。gz FILE = `date +%F_%T`_install_zabbix.log touch / tmp / $ {FILE} INSTALLLOG = / tmp / $ {FILE} if [-e $ {yum_dir}]; then echo "$ {yum_dir} dirはすでに存在していました" >> $ {INSTALLLOG} #exit 1; else mkdir -pv $ {yum_dir}&> / dev / null if [-e $ {yum_dir}]; then echo "$ {yum_dir} dir create finish" >> $ {INSTALLLOG} fi fi for i in / etc / passwd / etc / shadow / etc / group / etc / gshadow do if [`lsattr $ {i} | cut -c 5` = i]; then / usr / bin / chattr -i $ i / usr / bin / lsattr $ i >> $ {INSTALLLOG} else echo "$ i不存在i安全言語" >> $ {INSTALLLOG } fi done #解圧安装包 tar xvf $ {pack_name} tar xvf c $ {system_version} packges.tar。 cd $ {yum_dir} yum -y install createrepo yum-utils if [$?-eq 0]; then echo "createrepoパッケージはすでにインストール完了です" >> $ {INSTALLLOG} else echo "createrepoパッケージのインストールに失敗しました" >> $ {INSTALLLOG } fi #/ etc / yum.repos.d /ディレクトリにリポジトリファイルを生成します yum-config-manager--add-repo = file:// $ {yum_dir} if [-e /etc/yum.repos.d $ {yum_dir} .repo]; then echo "リポジトリファイルが生成されました" >> $ {INSTALLLOG} else echo "リポジトリファイルが生成されていません" >> $ {INSTALLLOG} fi #generate repodata createrepo $ {yum_dir} if [- e $ {yum_dir} / repodata]; then echo "レポデータが生成されました" >> $ {INSTALLLOG} else echo "repodataは生成されません」>> $ {INSTALLLOG} fi yum repolist | grep $ {yum_dir} if [$?-eq 0]; then echo " yumsourceproduction] >> $ {INSTALLLOG} else echo" yumsource極失败 ">> $ {INSTALLLOG} exit fi echo" ------------- --------------------------------- ">> $ {INSTALLLOG} echo" gpgcheck = 0 ">> / etc /yum.repos.d/${yum_dir}.repo #安装包 のyum -y ZABBIXエージェントをインストールする [$場合は?-eq 0]; then echo "zabbix-agent install finish" >> $ {INSTALLLOG} else echo "zabbix-agent install failed" >> $ {INSTALLLOG} exit 1 fi echo "---------- ------------------------------------ ">> $ {INSTALLLOG} #コレクションzabbix-agentd。 sed -i "s / Server = 127.0.0.1 / Server = $ zabbixserverIP / g" /etc/zabbix/zabbix_agentd.conf sed -i's /#ListenPort = 10050 / ListenPort = 10050 / g '/ etc / zabbix / zabbix_agentd .conf sed -i "s / ServerActive = 127.0.0.1 / ServerActive = $ zabbixserverIP / g" /etc/zabbix/zabbix_agentd.conf sed -i's / Hostname = Zabbix server /#Hostname = Zabbix server / g '/ etc /zabbix/zabbix_agentd.conf sed -i's /#HostnameItem = system.hostname / HostnameItem = system.hostname / g '/ etc / zabbix / zabbix_agentd.conf ls /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} egrep -v "^ $ | ^#" /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} echo "------------------------ ---------------------- ">>$ {INSTALLLOG} fi if [$ {system_version} -eq 7]; then sed -i "s / Server = 127.0.0.1 / Server = $ zabbixserverIP / g" /etc/zabbix/zabbix_agentd.conf sed -i's /#ListenPort = 10050 / ListenPort = 10050 / g '/ etc / zabbix / zabbix_agentd .conf sed -i "s / ServerActive = 127.0.0.1 / ServerActive = $ zabbixserverIP / g" /etc/zabbix/zabbix_agentd.conf sed -i's / Hostname = Zabbix server /#Hostname = Zabbix server / g '/ etc /zabbix/zabbix_agentd.conf sed -i's /#HostnameItem = system.hostname / HostnameItem = system.hostname / g '/ etc / zabbix / zabbix_agentd.conf ls /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} egrep -v "^ $ | ^#" /etc/zabbix/zabbix_agentd.conf >> $ {INSTALLLOG} echo "------------------------ ---------------------- ">>$ {INSTALLLOG} fi #启PINzabbix -agent if [$ {system_version} -eq 6]; then /etc/init.d/zabbix-agent start chkconfig --add zabbix-agent chkconfig zabbix-agent on fi if [$ {system_version} -eq 7]; then systemctl start zabbix-agent systemctl enable zabbix-agent fi for i in / etc / passwd / etc / shadow / etc / group / etc / gshadow do if [`lsattr $ {i} | cut -c 5` = i]; then echo "$ {i}在i安全言語" >> $ {INSTALLLOG} else chattr + i $ i lsattr $ i >> $ {INSTALLLOG} fi done echo -e "\ 033 [1; 34m zabbix-agent安装完成、輸出出果在/ tmp目录下$ {INSTALLLOG}文件中\ 033 [0m " fi
install_zabbix.sh
おすすめ
転載: blog.51cto.com/13768323/2678483
ランキング