shell腳本-zabbix4.4版本自動部署

yum源安裝,非源碼

#!/bin/bash
# zabbix4.4安裝

#檢查操作系統版本,該腳本只能運行在 Centos 7.x 系統上
cat /etc/redhat-release |grep -i centos |grep '7.[[:digit:]]' &>/dev/null
if [[ $? != 0 ]]
then
    echo -e "\e[1;31m不支持的操作系統,該腳本只適用於CentOS 7.x  x86_64 操作系統\e[0m"
    exit 1
fi


echo -e "\e[1;31m請確認本機已配置好epel源和阿里源,如是安裝server端那該機器並未安裝mysql數據庫和nginx(稍後腳本會自動安裝數據庫和httpd)!\n如已準備好,輸入1則開始安裝server端,輸入2則開始安裝agent端,如未準備好則輸入其它任意鍵退出!\e[0m"
read -p "請輸入:"      zbks
case "$zbks" in
1)
#安裝配置server端

#配置安裝zabbix server端所需要的的變量
#本機IP
host_ip=$(ip -4 a|grep inet|head -2|tail -1|awk -F '/' '{print $1}'|awk -F' ' '{print $2}')
#zabbix用戶密碼
zabbix_pwd=zabbix

#安裝mariadb10.1
echo -e "\e[1;31m安裝mariadb10.1中,請稍後..\e[0m"
if [ ! -f "/etc/yum.repos.d/mariadb.repo" ]; then
touch /etc/yum.repos.d/mariadb.repo
fi
cat >> /etc/yum.repos.d/mariadb.repo <<-EOF
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
yum install -y mariadb-server mariadb
systemctl enable mariadb
systemctl start mariadb
if [ $? = 0 ];then 
	echo -e "\e[1;31m數據庫mariadb10.1已安裝完成\n準備開始安裝zabbix4.4 Server端\e[0m"
	# 配置zabbix4.2yum源並下載安裝
	echo -e "\e[1;31m正在配置zabbix4.2的yum源\e[0m"
	cd /etc/yum.repos.d/
	rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
	sed -i 's/repo.zabbix.com/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
	yum clean all
	echo -e "\e[1;31m正在安裝zabbix..\e[0m"
	yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
	# 創建一個zabbix數據庫,用戶並導入數據
	echo -e "\e[1;31m正在導入數據,請稍後..\e[0m"
	mysql -e "create database zabbix character set utf8 collate utf8_bin;"
	mysql -e "grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';"
	mysql -e "flush privileges;"
	zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql zabbix
	# 修改zabbix server
	# 設置啓用icmp協議PING主機方式啓動子進程數量
	sed -i "/^# StartPingers=1/a StartPingers=10" /etc/zabbix/zabbix_server.conf
	# 初始化時啓動子進程數量,數量越多,則服務端吞吐能力越強,對系統資源消耗越大,根據輪詢器實例數量設置
	sed -i "/^# StartPollers=5/a StartPollers=10" /etc/zabbix/zabbix_server.conf
	# Trappers初始子進程數
	sed -i "/^# StartTrappers=5/a StartTrappers=20" /etc/zabbix/zabbix_server.conf
	# 用於存儲主機、監控項、觸發器數據的共享內存大小
	sed -i "/^# CacheSize=8M/a CacheSize=256M" /etc/zabbix/zabbix_server.conf
	# Zabbix 緩存更新頻率, 單位秒
	sed -i "/^# CacheUpdateFrequency=60/a CacheUpdateFrequency=180" /etc/zabbix/zabbix_server.conf
	# 歷史緩存數據大小
	sed -i "/^# HistoryCacheSize=16M/a HistoryCacheSize=64M" /etc/zabbix/zabbix_server.conf
	# 用於索引歷史緩存中歷史數據的共享內存大小
	sed -i "/^# HistoryIndexCacheSize=4M/a HistoryIndexCacheSize=10M" /etc/zabbix/zabbix_server.conf
	# agent, SNMP 設備或外部檢查的超時時長(單位秒)
	sed -i "s/Timeout=4/Timeout=6/" /etc/zabbix/zabbix_server.conf
	# 用於存儲趨勢數據的共享內存大小
	sed -i "/^# TrendCacheSize=4M/a TrendCacheSize=128M" /etc/zabbix/zabbix_server.conf
	# 緩存item歷史數據請求的共享內存大小,當緩存大小超過共享內存時,每5分鐘會向服務器日誌寫入一條警告信息.
	sed -i "/^# ValueCacheSize=8M/a ValueCacheSize=128M" /etc/zabbix/zabbix_server.conf
	# zabbix用戶密碼
	sed -i "/^# DBPassword=/a DBPassword=$zabbix_pwd" /etc/zabbix/zabbix_server.conf
	# 開啓日誌,默認0爲不開啓,設置其它數字爲開啓並按數值輪轉,單位MB
	sed -i "s/LogFileSize=0/LogFileSize=5/" /etc/zabbix/zabbix_server.conf
	# 修改zabbix web
	sed -i 's/# php_value date.timezone Europe\/Riga/php_value date.timezone Asia\/Shanghai/' /etc/httpd/conf.d/zabbix.conf
	# 下面這個文件存放了zabbix的數據庫用戶密碼,如果web界面的初始設置錯誤就可以在這裏修改
	cp /usr/share/zabbix/conf/zabbix.conf.php.example /etc/zabbix/web/zabbix.conf.php
	sed -i "10c \$DB[\"PASSWORD\"]    		= '$zabbix_pwd';" /etc/zabbix/web/zabbix.conf.php
	# 啓動zabbix相關服務並開機自啓
	systemctl enable zabbix-server zabbix-agent httpd
	systemctl start zabbix-server zabbix-agent httpd
	echo -e "\e[1;31m已啓動zabbix服務端,接下來請在$host_ip/zabbix頁面進行web設置\n登錄用戶爲Admin,密碼爲$zabbix_pwd,如果web界面的數據庫IP,密碼端口等信息設置失誤可以在/etc/zabbix/web/zabbix.conf.php文件內修改\n數據庫密碼還未設置,如有需要請手動設置\n如web界面無法連接數據庫,請檢查zabbix用戶是否能登陸數據庫,檢查用戶表將用戶名爲空值的用戶刪掉重啓zabbix即可\n刪除空值用戶命令:delete from mysql.user where user='';\e[0m"
else
	echo -e "\e[1;31m mariadb啓動失敗,請檢查環境!\e[0m"
fi
;;

2)
#安裝配置agent端

#本機IP
a_host_ip=$(ip -4 a|grep inet|head -2|tail -1|awk -F '/' '{print $1}'|awk -F' ' '{print $2}')

#配置zabbix4.2yum源並下載安裝
echo -e "\e[1;31m正在配置zabbix4.2的yum源\e[0m"
cd /etc/yum.repos.d/
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
sed -i 's/repo.zabbix.com/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
yum clean all
echo -e "\e[1;31m正在安裝zabbix-agent請稍後\e[0m"
yum -y install zabbix-agent
while [ 1 ]
do
read -p "請輸入server端IP:" sip
echo -e "\e[1;31m server端IP爲$sip,如果正確請按y繼續配置,其它任意鍵重新輸入\e[0m"
read -p "是否正確:"  zq
if [ $zq = y ];then
	#設置server端IP,被動模式
	sed -i "s/Server=127.0.0.1/Server=$sip/" /etc/zabbix/zabbix_agentd.conf
	#設置server端IP,主動模式,當和上一行一起啓動時,認爲主動
	sed -i "s/ServerActive=127.0.0.1/ServerActive=$sip/" /etc/zabbix/zabbix_agentd.conf
	#指定當前主機的主機名,server端通過此參數對應的主機名識別當前主機(主動模式)
	sed -i "/^Hostname=/d" /etc/zabbix/zabbix_agentd.conf
	sed -i "/^# Hostname=/a Hostname=$a_host_ip" /etc/zabbix/zabbix_agentd.conf
	#添加是否限制用戶自定義 keys 使用特殊字符
	sed -i "/^# UnsafeUserParameters=0/a UnsafeUserParameters=1" /etc/zabbix/zabbix_agentd.conf
	systemctl enable zabbix-agent
	echo "UserParameter=mem.free,/usr/bin/free -m | awk '/^Mem/{print \$4}'" >> /etc/zabbix/zabbix_agentd.d/userparameter_mem.conf
	systemctl start zabbix-agent
	if [ $? = 0 ];then
		echo -e "\e[1;31m agent端已安裝完成,默認主動模式,如需更改爲被動模式則將/etc/zabbix/zabbix_agentd.conf文件內的ServerActive=$sip註釋掉,端口默認爲10050\n接下來請在server端使用zabbix_get -s $a_host_ip -p 10050 -k mem.free命令測試是否能拉取到本機的剩餘內存\e[0m"
	else
		echo -e "\e[1;31m啓動失敗,請查看報錯信息。\e[0m"	
	fi
	exit
fi
done
;;

*)
echo -e "\e[1;31m已退出\e[0m"
	exit 
esac

2020.5.14

今天用這個腳本裝agent的時候出現如下錯誤

更新了下yum源,即可正常安裝

yum update

 

2020/5/15

把yum源改爲4.4了,先前是用的4.2來着,感覺沒啥區別

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章