安裝 Zabbix 監控系統

  • CentOS 6.8 x86_64 / CentOS 5.11 x86_64
  • 預計安裝
    • 一台 zabbix-server + agent
    • 多台 zabbix-proxy + agent
    • 多台 zabbix-agent
  • CentOS 5 x86_64 -
    rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/5/x86_64/zabbix-release-2.4-1.el5.noarch.rpm
  • CentOS 6 x86_64 -
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
  • 安裝相關套件
    yum install zabbix-server-mysql zabbix-web-mysql
  • 在 MySQL 建立相關 DB Schema
    shell> mysql -uroot -p<password>
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
    mysql> quit;
  • 匯入 Zabbix DB Schema
    shell> mysql -uzabbix -p<password> zabbix < /usr/share/doc/zabbix-server-mysql-2.4.5/create/schema.sql
    # stop here if you are creating database for Zabbix proxy
    shell> mysql -uzabbix -p<password> zabbix < /usr/share/doc/zabbix-server-mysql-2.4.5/create/images.sql
    shell> mysql -uzabbix -p<password> zabbix < /usr/share/doc/zabbix-server-mysql-2.4.5/create/data.sql
  • 啟動 zabbix-server
    vi /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=<password>
    service zabbix-server start
    chkconfig zabbix-server on
  • 編輯 php 相關設定
    vi /etc/httpd/conf.d/zabbix.conf
    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value date.timezone ASIA/Taipei
    service httpd restart
  • 透過網頁登入 Exp.
  • 當登入後發現一直出現
    “Zabbix server is not running: the information displayed may not be current”
    可透過調整 selinux 解決
    getsebool httpd_can_network_connect
    httpd_can_network_connect --> off
    setsebool -P httpd_can_network_connect on
  • 開啟 iptables 讓外部 zabbix-agent 可以回報
    vi /etc/sysconfig/iptables
    :
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    :
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
    :
    service iptables restart
  • zabbix-server 相關重要檔案路徑如下:
    • log - /var/log/zabbix/zabbix_server.log
    • conf - /etc/zabbix/zabbix_server.conf
當使用的 DB 並不安裝在本機內
  • 修改 /etc/zabbix/zabbix_server.conf
    :
    DBHost=**192.168.11.xxx**
    DBUser=zabbix
    DBPassword=**zabbix_password**
    #DBSocket=/var/lib/mysql/mysql.sock
    DBPort=3306
    :
  • 修改 /usr/share/zabbix/conf/zabbix.conf.php
    :
    $DB["TYPE"]                             = 'MYSQL';
    $DB["SERVER"]                   = '**192.168.11.xxx**';
    $DB["PORT"]                             = '3306';
    $DB["DATABASE"]                 = 'zabbix';
    $DB["USER"]                             = 'zabbix';
    $DB["PASSWORD"]                 = '**zabbix_password**';
    :
  • 安裝相關套件
    yum install -y sqlite zabbix-proxy-sqlite3 
    mkdir /var/lib/sqlite 
    vi /etc/zabbix/zabbix_proxy.conf
    :
    #DBName=zabbix_proxy
    DBName=/var/lib/sqlite/zabbix.db
    :
    #Server=127.0.0.1
    Server=zabbix.ichiayi.com
    :
    #Hostname=Zabbix proxy
    Hostname=Zabbix Everplast Proxy
    :
    chown -R zabbix:zabbix /var/lib/sqlite/
    service zabbix-proxy start
    chkconfig zabbix-proxy on
  • 如果啟動無法建立 sqlitedb 時, 請檢查是否是 selinux 的限制問題
  • 可以先將 /etc/selinux/config 內設定 SELINUX=disabled
  • 安裝相關套件
    yum install zabbix-agent
  • 設定相關參數
    vi /etc/zabbix/zabbix_agentd.conf
    :
    Server=140.92.143.57
    :
    ServerActive=140.92.143.57
    :
    Hostname=percona-xc2
    :
    service zabbix-agent start
    chkconfig zabbix-agent on
  • 開啟 iptables 讓外部 zabbix-server 可以詢問
    vi /etc/sysconfig/iptables
    :
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    :
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
    :
    service iptables restart
  • zabbix-agent 相關重要檔案路徑如下:
    • log - /var/log/zabbix/zabbix_agentd.log
    • conf - /etc/zabbix/zabbix_agent.conf
  • 解開後將 bin 目錄內依照 Windows 屬於 32bits (win32) 或 64bits (win64) 複製到 c:\zabbix
    • Exp. 64bits Windows 複製後會看到類似以下的目錄檔案
      C:\ZABBIX
      │  zabbix_agentd.exe
      │  zabbix_get.exe
      │  zabbix_sender.exe
      │
      └─dev
              zabbix_sender.dll
              zabbix_sender.lib
  • 以 Administrator 身份執行 cmd 來產生相關的設定檔與建立 Windows Service
    • 產生 zabbix_agentd.conf 設定檔
      echo LogFile=c:\\zabbix\\zabbix_agentd.log > c:\zabbix\zabbix_agentd.conf
      echo Server=zabbix.server.name.or.ip >> c:\zabbix\zabbix_agentd.conf
      echo ServerActive=zabbix.server.name.or.ip >> c:\zabbix\zabbix_agentd.conf
      echo Hostname=Windows_Server_or_PC_name >> c:\zabbix\zabbix_agentd.conf
    • 註冊 Zabbix Agent 為 Windows 服務
      c:\zabbix\zabbix_agentd.exe --config c:\zabbix\zabbix_agentd.conf --install
    • 啟動 Zabbix Agent 服務
      net start "Zabbix Agent"
    • 開機自動啟動 Zabbix Agent 服務 (注意 start= 後面有一個空格)
      sc config "Zabbix Agent" start= auto
    • 到控制台手動操作防火牆設定, 允許 C:\zabbix\zabbix_agentd.exe 通過防火牆, 或開放 TCP 10050 port
  • 啟動之後可以觀察 c:\zabbix\zabbix_agentd.log 內的紀錄
  • 如果 Server IP 或 Hostname 要修改 可以直接使用記事本更改 c:\zabbix\zabbix_agentd.conf 修改後需要到控制台→服務 重新啟動 Zabbix Agent 才會生效
  • tech/zabbix.txt
  • 上一次變更: 2021/01/16 14:51
  • jonathan