Project

General

Profile

Cacti のバージョンアップ(source版)

ソースコード版のCactiのバージョンアップ方法について

サービス停止

  1. ポーリングを停止する
    「poller.php」のスケジューリングをコメントアウトする
    # crontab -u apache -e
    -----------------------------
    # */5 * * * * /usr/bin/php /usr/local/cacti/poller.php > /dev/null 2>&1
    
  2. ウェブサーバを停止する
    # systemctl stop httpd
    

バックアップ

  1. MySQLのダンプを取得する
    ダンプファイルが出力されていること(0バイトではないこと)
    # mysqldump -u root -p -l --add-drop-table cacti > mysql.cacti
    Enter password: パスワードを入力
    # ls -l
    -rw-r--r-- 1 root root 290579  4月 19 12:38 2018 mysql.cacti
    
  2. Cactiのコンテンツをバックアップする
    # mv /usr/local/cacti /usr/local/cacti_old
    

新しいCactiの取得

  1. 下記URLから新しいCactiのtarballを取得
    https://www.cacti.net/downloads
  2. サーバに配置
    # wget https://www.cacti.net/downloads/cacti-1.1.xx.tar.gz
    # tar xzf cacti-1.1.xx.tar.gz
    # chown -R apache.apache cacti-1.1.xx
    # mv cacti-1.1.xx /usr/local/cacti
    

データ移行

  1. 旧バージョンのDB接続設定をコピー
    # less /usr/local/cacti_old/include/config.php
    -----------------------------
    $database_type     = 'mysql';
    $database_default  = 'cacti';
    $database_hostname = 'localhost';
    $database_username = 'cacti';
    $database_password = '任意のパスワード';
    $database_port     = '3306';
    $database_ssl      = false;
    
    
  2. 新バージョンのDB接続設定を上記の内容に更新
    # vi /usr/local/cacti/include/config.php
    -----------------------------
    $database_type     = 'mysql';
    $database_default  = 'cacti';
    $database_hostname = 'localhost';
    $database_username = 'cacti';
    $database_password = '任意のパスワード';
    $database_port     = '3306';
    $database_ssl      = false;
    
    
  3. rrdファイルを移行
    # cp -p /usr/local/cacti_old/rra/* /usr/local/cacti/rra/
    
  4. カスタムスクリプトを移行
    # cp -u -p /usr/local/cacti_old/scripts/* /usr/local/cacti/scripts/
    
  5. カスタムリソースXMLファイルを移行
    # cp -u -p -R /usr/local/cacti_old/resource/* /usr/local/cacti/resource/
    
  6. ログファイルの移行
    # cp -u -p /usr/local/cacti_old/log/* /usr/local/cacti/log/
    

データベースのアップグレード

  1. Webサーバの起動
    # systemctl start httpd
    
  2. ブラウザでCactiのweb画面にアクセス
    http://example.com/cacti
  3. インストールウィザードが起動する
    1. ライセンスに同意
    2. プレインストールチェックを確認
    3. インストレーションタイプがアップグレードになっていることを確認
      Installation Type
      Upgrade from 1.1.34 to 1.1.xx
      
    4. アップグレード結果を確認
      各項目が「Success」となっていること
      Upgrade Results
      Database upgrade completed!
      
  4. ログイン後、画面右上のバージョンが正しく更新されていること

Spineの更新

  1. 下記からcactiバージョンと同じspineのソースを取得
    https://www.cacti.net/spine_download.php
  2. cactiサーバにtarballを配置、展開する
    # wget https://www.cacti.net/downloads/spine/cacti-spine-1.1.xx.tar.gz
    # tar xzf cacti-spine-1.1.xx.tar.gz
    # cd cacti-spine-1.1.xx
    
  3. コンパイルおよびインストールを実行
    # ./configure
    # make
    # make install
    
  4. 認証情報を修正(差異があれば)
    # vi /usr/local/spine/etc/spine.conf
    -----------------------------
    DB_Host                 localhost
    DB_Database             cacti
    DB_User                 cacti
    DB_Pass                 任意のパスワード
    DB_Port                 3306
    
    RDB_Host                localhost
    RDB_Database            cacti
    RDB_User                cacti
    RDB_Pass                任意のパスワード
    RDB_Port                3306
    
  5. バージョンが更新されていること
    # /usr/local/spine/bin/spine --version
    SPINE 1.1.xx  Copyright 2004-2017 by The Cacti Group
    
  6. 正しくポーリングが行われること
    # /usr/local/spine/bin/spine --conf=/usr/local/spine/etc/spine.conf
    SPINE: Using spine config file [/usr/local/spine/etc/spine.conf]
    SPINE: Version 1.1.38 starting
    SPINE: Time: 1.0716 s, Threads: 1, Devices: 1
    

ポーリングタスクの開始

  1. ポーリングを再開する
    「poller.php」のスケジューリングのコメントアウトを解除する
    # crontab -e
    -----------------------------
    */5 * * * * /usr/bin/php /usr/local/cacti/poller.php > /dev/null 2>&1
    
  2. 次回ポーリング時に、通常のポーリング間隔以上の未実行状態がWarningとして
    ログに出力されるが、アップグレードのためのポーリング中断のため無視する

以上でアップグレードは完了