Project

General

Profile

Cacti-install

WebモニタリングツールCactiのインストールを行います。
https://www.cacti.net/

インストール

  • EPELリポジトリを追加します
    # rpm -ivh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
    
  • remiリポジトリを追加(RHELのみ。CentOSなら標準のPHPで対応できる)
    # rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
  • 必要なパッケージをインストールします
    # yum --enablerepo=epel,remi,remi-php71 install libc-client libc-client-devel httpd mod_ssl mariadb-server php php-gmp net-snmp
    
  • cacti本体をインストールします
    # yum --enablerepo=epel,remi,remi-php71 install cacti
    

サービス起動

  • Webサービス・DBサービスを起動し、起動設定を行います。
    systemctl start httpd
    systemctl start mariadb
    systemctl start snmpd
    
    
  • 起動に問題がなければサービスの起動設定を行います。
    systemctl enable httpd
    systemctl enable mariadb
    systemctl enable snmpd
    
    

データベース作成

  • データベースのパスワード設定
    # mysql -u root
    MariaDB [(none)]> set password for root@localhost=password('任意のパスワード');
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> quit
    Bye
    
  • データベースの作成
  • DB認証の確認およびデータベース作成
    # mysql -u root -p
    Enter password: 設定したパスワード
    
    MariaDB [(none)]> create database cacti default character set=utf8;
    MariaDB [(none)]> grant all privileges on cacti.* to "cactiuser"@"localhost" identified by "設定するパスワード";
    MariaDB [(none)]> quit
    Bye
    

設定

  • phpの設定を変更する
    [Date]
    date.timezone = Asia/Tokyo
    
  • 下記コマンドでタイムゾーンテーブルを作成する
    # mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
    
  • 下記コマンドで作成したテーブルのアクセス権を設定する
    # mysql -u root -p
    MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by '任意のパスワード';
    MariaDB [(none)]> quit
    
  • 下記設定ファイルを設定する
    # vi /etc/my.cnf
    
    [mysqld]
    default-time-zone = 'Asia/Tokyo'
    
    [mysqld_safe]
    timezone = UTC
    
  • DBサービスを再起動する
    # systemctl restart mariadb
    # systemctl restart httpd
    
    
  • 下記設定ファイルを編集する
    # vi /etc/cacti/db.php
    -----------------------------
    $database_type     = 'mysql';
    $database_default  = 'cacti';
    $database_hostname = 'localhost';
    $database_username = 'cacti';
    $database_password = '設定したパスワード';
    $database_port     = '3306';
    $database_ssl      = false;
    
  • 下記のコマンドでデータベースに初期データを投入する
    「1.1.24」部分はバージョンによって異なる
    # mysql -u cactiuser -p cacti < /usr/share/doc/cacti-1.1.24/cacti.sql
    
  • httpdの設定ファイルを編集する
    「Allow from」にブラウザアクセスする端末のネットワークアドレスを追加する
    Apacheのバージョンに合わせて不要なほうのアクセス制限記述をコメントアウトする
    # vi /etc/httpd/conf.d/cacti.conf
    
            <IfModule mod_authz_core.c>
                    # httpd 2.4
                    Require host localhost
                    Require ip 192.168.0.0/24
            </IfModule>
    #        <IfModule !mod_authz_core.c>
    #                # httpd 2.2
    #                Order deny,allow
    #                Deny from all
    #                Allow from localhost
    #                Allow from 192.168.0.0/24
    #        </IfModule>
    
  • cron設定を編集する
    # vi /etc/cron.d/cacti
    
    */5 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    
  • httpdサービスを再起動する
    # systemctl restart httpd
    

初回アクセス

  • Webブラウザで下記のアドレスにアクセスする
    http://サーバのIPアドレス/cacti
    
  • インストールウィザード画面が表示される
  • ライセンスに同意する
  • Pre-installation Checksを確認する。必要があればMariaDBのチューニングを行う
  • New Primary Server を選択して次に進む
  • Spineのパス指定エラーは無視して次に進む
  • Directory Permission Checksを確認する
  • Template Setupから必要なものをチェックしてFinishを行う
    とりあえず「Local Linux Machine」だけは入れておく。何もいれなかったらcronがエラーになるほか、標準的なグラフが何も出ない
    • Cisco Router
    • Generic SNMP Device
    • Local Linux Machine
    • Net-SNMP Device
    • Windows Device
  • ユーザ名パスワード共に「admin」でログインする
  • 現在のパスワードと新しいパスワードを指定する
    • 8ケタ以上大文字小文字混在が必要
  • ログインする

動作確認

  • WebUIにログインして「Management」→「グラフ」にグラフが表示されること
  • 「/var/log/cacti/cacti.log」を確認し、cronジョブが正しく実装されていること