install_zabbix.sh

#!/ 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



おすすめ

転載: blog.51cto.com/13768323/2678483