Cactiとは
• Webベースのネットワークモニターツール • Pluginを導入することで機能拡張も可能
Cactiとは
便利なツールではあるけど、 • 古臭いデザイン • 古い動作環境条件 • 新機能が追加されない 今となってはレガシーなツールという印象1.0.0がリリースされてました
• 2017年1月30日にリリース
どんどんバージョンが上がってます
• Cacti 1.0.0 2017月1月30日リリース • Cacti 1.1.19 (2017年8月20日時点) • 1.0.0 – 1.1.19までに25回リリース!
何が変わったのか
• 最新の安定板PHPやMySQLで動くように改修した • Pluginで提供されていた機能を取り込んで新機能を増やした - ユーザアクセス権機能強化 - セキュリティ機能強化 - グラフ描画機能強化 - 大規模運用、登録自動化の機能追加Cacti 1.1.xの動作要件
• PHP5.4以降(5.5以上を推奨、7.0まではサポート) • MySQL5.6(MariaDB10.0)以降 • MySQLの標準エンジンをInnoDBに • MySQLの文字コードをutf8mb4に • MySQLに対してタイムゾーン設定の必須 • MySQLの設定についてやや細かい要求 • RRDTool1.3以降(1.7は予備的なサポート)Cacti 1.1.xの新しい機能
• いくつかのPluginがCactiのcoreに取り込まれ、それらが標準 機能として追加されました -Aggregate Plugin 集計グラフの作成 AutoM8 Plugin グラフ作成の自動化 Boost Plugin 高速化等CLog Plugin Cactiのログ参照 Discovery Plugin デバイスの検出 Domains Plugin ADS/LDAPの拡張
DSStats Plugin 新しいクラスのグラフタイプをサポート Logrotate Plugin Cactiのログのローテート Realtime Plugin リアルタイムグラフ表示 Reporting (Nectar)
Plugin Reporting
RRDclean Plugin RRD fileのクリーンアップと管理 Secpass Plugin ユーザーパスワードポリシー強化 Settings Plugin プラグインの共有設定
SNMP Agent Plugin Cacti用SNMPエージェント SpikeKill Plugin グラフから不要なスパイクを削除 SSL Plugin httpsを強制するプラグイン
SuperLinks Plugin Cacti内に外部リンクを追加する UGroup Plugin 権限を持つグループの作成
Cacti 1.1.xの新しい機能
【管理画面表示関係】
• Cacti本体およびpluginの多言語対応 • 複数のテーマを追加
Cacti 1.1.xの新しい機能
【ユーザ、アクセス権関係】 • ロールベースアクセスコントロール • ユーザ グループ パーミッションサポート • ADS/LDAP拡張 • パスワードの複雑さの要求 • 自動ログアウト • ログイン状態の保存Cacti 1.1.xの新しい機能
【グラフ描画等】 • Aggregate Graphs 既存のグラフを1つの集計グラフに集約することができる • RRDTOOLのVDEFのサポート 時系列のデータから、最大値や合計値、線の傾き、相関係数等の値を 得ることができる • グラフ詳細画面でグラフのリアルタイム表示Cacti 1.1.xの新しい機能
【登録自動化、大規模運用】
• Remote data collectors
直接Cacti本体がネットワーク的に到達できない機器の監視に使用
• オートディスカバリー機能
ネットワーク上の特定の条件のデバイスの登録、データソースの登録、 グラフ登録の自動化
• RRDtool Proxy Serverのサポート • Sites
Spine、Plugin、テンプレートについて
• PollerにSpineを使用している場合はSpineも最新版へ • まだCacti1.0以降をサポートしていないPluginもある • テンプレートは今までのものが基本使えるはずです
新規インストール
• PHPはPHP5.4以上をインストール • PHPモジュールとして posix,session,sockets,PDO,pdo_mysql, xml,ldap,mbnstring,pcre,json,openssl,gd,zlibを合わせ てインストール • MySQL5.6(mariadb10.1)以上をインストール • RRDtool、net-snmpもインストールMySQLの設定(my.cnf)
• cactiのインストーラに要求される条件満たす設定する [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 default-time-zone = 'Asia/Tokyo' character-set-server=utf8mb4 collation-server = utf8mb4_unicode_ci max_heap_table_size = 256M max_allowed_packet = 16777216 tmp_table_size = 64M join_buffer_size = 64M innodb_file_per_table = ON innodb_buffer_pool_size = 1024M innodb_doublewrite = OFF innodb_additional_mem_pool_size = 80M innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_large_prefix=ON innodb_file_format=Barracuda innodb_file_format_max=Barracuda [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid [client] default-character-set=utf8mb4 !includedir /etc/my.cnf.d ※1.1.16時点MySQLのtime zone 設定
• タイムゾーンデータのインポートと権限付与
タイムゾーンデータのインポート
/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ./timezone mysql -u root -p -Dmysql < ./timezone
cacti用のDatabaseユーザにタイムゾーンデータを参照できるようにする。 mysql -uroot -p
mysql> use mysql;
mysql> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost; mysql> flush privileges;
インストール初期画面
インストール前のチェック
インストール前のチェック
インストール前のチェック
インストール前のチェック
インストールタイプの選択
関連するパスやバージョンチェック
書き込み権限のチェック
使用する初期テンプレートの選択
0.8.xからのアップグレード
• 0.8.x時代からあるアップグレード手順 1. DBをバックアップ 2. Cactiのプログラムを新しいバージョンに差し替え 3. DB設定やRRDのデータ等を新しいバージョンのディレクトリに配置 4. http://example.com/cacti/ などでCactiにアクセスして、 アップデートウィザードに従う アップグレードプログラムも0.8.x -> 1.1.xのための処理も実装されている… が、 https://www.cacti.net/downloads/docs/html/upgrade.html0.8.xからのアップグレード
*現時点*ではお勧めしません
0.8.8xからのアップグレード
0.8.8からのアップグレード
0.8.8からのアップグレード
新旧DBのエンジンとエンコードが混在
• 0.8.xから存在したテーブルに関しては、
MyISAM、utf8のままとなる
それ以外にも
• 一部テーブルのデータタイプ、桁数、 DEFAULT制約の値が
一致していないものがありました
例えば
• mysql 5.7 compatibility
例えば
• Change default of data_source_profile_id to 1
「All templates being imported throws error message:
03/23/2016 11:19:21 AM - CMDPHP ERROR: There are no RRA's assigned to local_data_id: x. You have to resave them to make them work.」
これから試す人たちへ
• 最新版のCacti1.1.xを試しましょう、比較的動作は安定しているはず (1.0.0からだいぶBugfixが入っているので) • おかしいなと思ったら、暫くして出る新しいバージョンを試してみましょう (バグは次のリリースできっと直っているでしょう多分) • Pluginは、Cacti1.xに対応しているかよく確認しましょう • 新機能 あると思うな ドキュメント (新機能を実現しているPlugin名で検索すると使い方がわかることがあります) • 腕に覚えのある人は、0.8.x -> 1.1.xにチャレンジしよう! 活動が活発な今ならissue上げるとすぐ修正してくれると思うよ0.8.8xを使い続けようとする場合
• 遅かれ早かれ1.xに上げるか、別のツールに切り替えるかの選択
をする必要がある
• 0.8.8xを動かす場合、少なくともMySQLは5.7以前を使ったほ