背景:我使用yum方式安裝軟件時,比如zabbix這種軟件,我們在安裝時一般都是直接到zabbix官網,按照官方的步驟進行安裝,但是有一個問題,官方的服務器不在國內,時常會在安裝時導致超時報錯。此時解決思路就因該是將官方源替換成國內的鏡像源,例如阿里雲、163的鏡像源。要點就是網絡問題!網絡問題!網絡問題!
注意安裝zabbix時也要選擇阿里雲的鏡像repo,地址如下:
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
報錯信息:
安裝 3 軟件包 (+7 依賴軟件包) 總計:7.2 M 總下載量:5.8 M 安裝大小:29 M Is this ok [y/d/N]: y Downloading packages: No Presto metadata available for zabbix zabbix-server-mysql-4.4.6-1.el FAILED 6 kB 00:01:00 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-server-mysql-4.4.6-1.el7.x86_64.rpm: [Errno 14] curl#18 - "transfer closed with 2193329 bytes remaining to read" 正在嘗試其它鏡像。 zabbix-agent-4.4.6-1.el7.x86_6 FAILED 3 kB 01:07:08 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: [Errno 12] Timeout on http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds') 正在嘗試其它鏡像。 zabbix-web-4.4.6-1.el7.noarch. FAILED 0 kB 00:04:53 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-web-4.4.6-1.el7.noarch.rpm: [Errno 14] curl#18 - "transfer closed with 2625420 bytes remaining to read" 正在嘗試其它鏡像。 zabbix-agent-4.4.6-1.el7.x86_6 FAILED 6 kB 00:09:43 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: [Errno 14] curl#18 - "transfer closed with 83410 bytes remaining to read" 正在嘗試其它鏡像。 Error downloading packages: zabbix-web-4.4.6-1.el7.noarch: [Errno 256] No more mirrors to try. zabbix-server-mysql-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try. zabbix-agent-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try.
解決方案大致有三種:
一、更新yum
yum clean all
yum makecache
yum update -y
二、若不行,可能是因為DNS不穩定吧,因為yum安裝時會從三個”repo源“(base,extras,updates)隨機獲取地址
(1)編輯網絡配置:vi /etc/sysconfig/network-scripts/ifcfg-eth0
在本地網關DNS1下,添加aliyun網關 DNS2=223.5.5.5(可以理解為:將base,updates的“repo源”換為aliyun的)
重啟網絡服務:service network restart
(2)上步驟若還不行,請繼續以下步驟(換yum源,可以理解為上一步的plus,再將extras換為aliyun的源)
先備份老源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
CentOS7系統:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
具體方法參考阿里雲官方:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11iDH0bA
(3)刷新並生成緩存
yum clean all
yum makecache
三、分析總結法
首先該問題的出現是由於網絡的震盪導致,這是重點。
(1)將源更換成阿里雲的官方源,步驟參考如上
(2)同時將zabbix的官方源更換成阿里雲里面的zabbix鏡像源,因為zabbix官方源根本網絡不通,因為國家防火牆的攔截,導致網絡不通。
這是阿里源的zabbix鏡像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/
修改系統中早期生成的zabbix.repo文件,如下:主要是把baseurl替換成阿里雲的zabbix鏡像地址即可。
修改完了記得,清理再重組:yum clean all yum makecache
[zabbix] name=aliyun - zabbix - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/$basearch/ enabled=1 gpgcheck=0
如圖示,國內的zabbix鏡像源網絡是通的,所以此時可以正常安裝zabbix,問題得到解決。
驗證:如圖示,zabbix-agent已經可以正常安裝