編譯安裝Zabbix 5.0 LTS
Z0UKUN編譯安裝ZABBIX 5.0 LTS有4條評論
文章目錄 [點選隐藏]
- Zabbix 5.0 LTS新增功能
- 系統初始化
- 編譯安裝LNMP
- 編譯安裝Nginx v1.18.0
- 編譯安裝PHP v7.2.25
- 安裝MySQL 5.6
- 安裝zabbix
新版本附帶了可用性,安全性和完整性方面的重大改進清單。Zabbix團隊遵循的主要政策是使Zabbix盡可能可用。Zabbix是一種開源,免費的監視解決方案,現在可以在内部和雲中部署。在RedHat / IBM,SuSE,Ubuntu的最新版本的平台,容器和Linux發行版中可用。現在,一鍵式Zabbix部署也可以在Azure,AWS,Google Cloud,IBM / RedHat Cloud,Oracle和Digital Ocean上使用。現在,在Red Hat和Azure市場上提供Zabbix技術支援服務。
此外,Zabbix監視工具還提供了與Messenger,票務和警報系統的大量現成內建。新版本擴充了可以輕松監控的受支援服務和應用程式的清單。
滿足一些新功能:
- 自動化和發現:新的Zabbix版本具有改進的自動化功能。新版本增加了自動發現硬體元件,與Windows相關的資源以及Java度量的進階發現的功能。
- 可擴充性:Zabbix UI已經過優化,可以簡化對數百萬個裝置的監視。
- 新的Zabbix監視代理程式具有“官方支援”狀态。新的可擴充代理為最苛刻的客戶和複雜的用例提供了進階功能。它基于插件體系結構,具有使用各種方法和技術收集度量标準資料的能力。我們相信它是市場上最先進的監控代理。
- 安全性方面的重大改進:新的改進確定所有Zabbix元件以安全的方式進行通信,并且還使用安全協定進行出站通信,而不會以任何方式影響性能。對于在高度敏感的環境中使用Zabbix的使用者而言,可配置的密碼以及為度量定義黑名單和白名單的能力至關重要。
- TimescaleDB的壓縮:時間序列資料壓縮有助于提高性能和效率,同時降低營運成本。
- 可用性改進:新版本針對寬屏進行了優化,除了Zabbix UI的其他增強功能之外,還引入了對第三方UI子產品的支援。
Zabbix 5.0是具有5年官方支援的LTS(長期支援)版本。它結合了創新和穩定性,并包括經過時間檢驗的功能,這些功能已在Zabbix 4.2和4.4的非LTS版本中引入,這使其成為大型企業環境的理想選擇。
注:Zabbix 5.0 版本對基礎環境的要求有大的變化,最大的就是對 php 版本的要求,最低要求 7.2.0 版本,對 php 擴充元件版本也有要求,詳見官網文檔https://www.zabbix.com/documentation/current/manual/installation/requirements
# 配置主機名稱
hostnamectl --static --transient set-hostname ZabbixServer
# 關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
iptables -P FORWARD ACCEPT
# 關閉swap分區
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 關閉SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 配置時鐘同步
# 配置時區
timedatectl set-timezone Asia/Shanghai
# 檢視同步狀态
timedatectl status
# 注:System clock synchronized: yes,表示時鐘已同步; NTP service: active,表示開啟了時鐘同步服務。
# 将目前的 UTC 時間寫入硬體時鐘
timedatectl set-local-rtc 0
# 重新開機依賴于系統時間的服務
systemctl restart rsyslog
systemctl restart crond
# 關閉無關服務
systemctl stop postfix && systemctl disable postfix
# 重新開機主機
sync
reboot
Bash
COPY
Nginx官方網站:http://nginx.org/en/download.html
Nginx v1.18.0下載下傳位址:http://nginx.org/download/nginx-1.18.0.tar.gz
我們直接去上面的位址下載下傳 Nginx v1.18.0 版本、下載下傳完成以後采用下面的指令解壓并編譯安裝Nginx:
# 下載下傳Nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 解壓Nginx
tar -zxvf nginx-1.18.0.tar.gz
# 編譯安裝Nginx
cd nginx-1.18.0
mkdir -p /usr/local/nginx/
./configure --prefix=/usr/local/nginx/ --without-http_rewrite_module --without-http_gzip_module --with-pcre && make && make install
注:如果需要安裝特定子產品也可以自行添加、Nginx支援子產品詳情可以檢視Nginx官方文檔:http://nginx.org/en/docs/
然後我們将Nginx注冊為Centos7系統服務,将下面的内容插入到 /etc/init.d/nginx 檔案中:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
# :set ff=unix
# 修改為實際配置檔案目錄
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
# 修改為實際配置檔案目錄
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -n "$user" ]; then
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
fi
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $prog -HUP
retval=$?
echo
}
force_reload() {
restart
}
configtest() {
nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1