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來着,感覺沒啥區別