天天看點

編譯安裝Zabbix 5.0 LTS

編譯安裝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