Saminnet-Search Article Wiki Forum Blog SNS Cloud
Cacti IIS

  • Data-Articles
    • Kidney test method Thu13,09:39am

      There are different tests that healthcare professionals use to measure kidney function. Overall, these blood and urine tests are used to find out how well your kidneys are working, check for signs of kidney disease, and look for any changes in a person’s kidney health over time. The earlier kidney disease is found, the better the chance of slowing or stopping it from getting worse.     Serum…

      Read More...

Cacti IIS

IISをインストールします。インストール手順はこちらの記事を参照してください。

Active Perlのインストール

Active Perlをインストールします。インストール手順はこちらの記事を参照してください。

PHPのインストール

PHPをインストールします。バージョンは5系のものを利用します。インストール手順はこちらの記事を参照してください。

補足:Visual Studio 2015 の Visual C++ 再頒布可能パッケージ のインストール

必要に応じて、「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ」をインストールします。

MariaDB のインストール

MariaDBをインストールします。インストール手順はこちらの記事を参照してください。

RRDTool のインストール

RRDtoolをインストールします。インストール手順はこちらの記事を参照してください。

net-snmp のインストール

net-snmpをインストールします。インストール手順はこちらの記事を参照して下さい。

Cactiのダウンロードとインストール

CactiのWebサイト(https://www.cacti.net/)にアクセスします。左側のメニューの[Downloads]セクションの[Cacti]リンクをクリックします。


ダウンロードページが表示されます。[Windows in ZIP format]のリンクをクリックすると、Windows版のCactiをダウンロードできます。


Windows版のCactiをダウンロードできました。


ZIPファイルを展開します。


展開したファイルを"C:\inetpub\wwwroot\cacti" ディレクトリに配置します。

Spineのダウンロードとインストール

Spineをダウンロードしてインストールします。手順の詳細はこちらの記事を確認してください。

各種設定

IISのデフォルトドキュメントの設定

PHPのファイル名(index.php)をデフォルトドキュメントに設定します。設定手順の詳細はこちらの記事を参照してください。

PHP snmpモジュールの有効化

こちらの記事の手順を参照して、PHPのsnmpモジュールを有効化します。

php.ini の設定

php.iniファイルを編集して、モジュール等を読み込む設定にします。php.iniファイルが存在しない場合は、php.exe ファイルがあるディレクトリと同じ位置にphp.iniファイルを作成して配置します。

php.ini 変更後
[PHP]
extension_dir = "ext"

extension=php_pdo_mysql.dll
extension=php_com_dotnet.dll
extension=php_sockets.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_openssl.dll
extension=php_gd2.dll
extension=php_snmp.dll
extension=php_gmp.dll

max_execution_time = 30

file_uploads = On
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
error_log = C:\inetpub\wwwroot\log\php_errors.txt

[Date]
date.timezone = "Asia/Tokyo"

MariaDB(MySQL) タイムゾーンの設定

MariaDBのタイムゾーンの設定をします。手順の詳細はこちらの記事を確認してください。

MySQLのサイトからタイムゾーンのファイルをダウンロードします。ダウンロード後、MySQLのコマンドプロンプトから、

  mysql --user=root --password mysql < c:\timezone_posix.sql

コマンドを実行します。
続いてSQLのプロンプトから

  show variables like '%time_zone%';

コマンドを実行します。下記の結果が返ります。

+------------------+---------------+
| Variable_name    | Value         |
+------------------+---------------+
| system_time_zone | ???? (?W????) |
| time_zone        | Asia/Tokyo    |
+------------------+---------------+
2 rows in set (0.01 sec)

time_zone の値が "Asia/Tokyo" に設定されていればOKです。

my.ini (my.cnf) の設定

my.ini ファイルを変更します。"default-time-zone"を追記し、タイムゾーンの設定をします。また、Cactiに適したデータベースのパラメーターをmy.iniファイルに記述します。デフォルトでは"C:\Proguram Files\MariaDB XX.X\data" ディレクトリにあります。

my.ini 変更前
[mysqld]
datadir=C:/Program Files/MariaDB 10.2/data
port=3306
innodb_buffer_pool_size=255M
character-set-server=utf8
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin
my.ini 変更後
[mysqld]
datadir=C:/Program Files/MariaDB 10.2/data
port=3306
default-time-zone='Asia/Tokyo' #データベースのタイムゾーン設定を入れ終わるまで有効化しない (DBが起動できなくなる。)
collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
character-set-client=utf8mb4

max_heap_table_size=98M
tmp_table_size=64M
join_buffer_size=64M
innodb_buffer_pool_size=489M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16

[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin

データベースの作成

SQLのコマンドプロンプトで下記のコマンドを実行します。

create database cacti;

補足:操作方法

スタートメニューの[MariaDB]またはMySQLのプログラムメニューの"MySQL Client"をクリックします。


パスワード入力プロンプトが表示されます。インストール時に設定した、Rootのパスワードを入力します。


認証が通ると、SQLの入力プロンプトが表示されます。


"create database cacti;"SQLコマンドを入力します。


[Enter]キーを押してSQLを実行します。Query OK のメッセージが表示されます。

テーブル等の作成

MySQL/MariaDB のコマンドプロンプトで下記のコマンドを実行します。

mysql --user=root --password cacti < C:\Inetpub\wwwroot\cacti\cacti.sql

補足:操作方法

スタートメニューの[MariaDB]またはMySQLのプログラムメニューの"Command Prompt"をクリックします。


MariaDB用のコマンドプロンプトのウィンドウが表示されます。



"mysql --user=root --password cacti < C:\Inetpub\wwwroot\cacti\cacti.sql"コマンドを実行します。 


"Enter password:"のパスワード入力プロンプトが表示されます。MariaDBのrootのパスワードを入力します。


処理には若干の時間がかかります。処理が完了するとコマンド入力待ちの状態になります。

データベース ユーザーの作成

SQLのコマンドプロンプトで下記のコマンドを実行します。

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY '(cactiuserのパスワード)';
FLUSH privileges;

(cactiuserのパスワード)の部分に任意のパスワードを設定します。

補足:操作方法

"MySQL Client"を起動し、SQLコマンドプロンプトに、"GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY '(cactiユーザーのパスワード)'"のコマンドを入力します。


SQLを実行します。正常に実行できると"Query OK" のメッセージが表示されます。


"FLUSH privileges;" のコマンドを続けて実行します。


データベースユーザーの権限設定

作成した cactiuser のアカウントが TimeZoneテーブルにアクセスできるよう下記のコマンドを実行します。

  grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by '(cactiuser のパスワード)';

config.php の修正

C:\InetPub\wwwroot\cacti\include\config.php ファイルを修正します。

config.php 変更前
<?php
/*
 +-------------------------------------------------------------------------+
 | Copyright (C) 2004-2017 The Cacti Group                                 |
 |                                                                         |
 | This program is free software; you can redistribute it and/or           |
 | modify it under the terms of the GNU General Public License             |
 | as published by the Free Software Foundation; either version 2          |
 | of the License, or (at your option) any later version.                  |
 |                                                                         |
 | This program is distributed in the hope that it will be useful,         |
 | but WITHOUT ANY WARRANTY; without even the implied warranty of          |
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           |
 | GNU General Public License for more details.                            |
 +-------------------------------------------------------------------------+
 | Cacti: The Complete RRDTool-based Graphing Solution                     |
 +-------------------------------------------------------------------------+
 | This code is designed, written, and maintained by the Cacti Group. See  |
 | about.php and/or the AUTHORS file for specific developer information.   |
 +-------------------------------------------------------------------------+
 | http://www.cacti.net/                                                   |
 +-------------------------------------------------------------------------+
*/

/* make sure these values reflect your actual database/host/user/password */

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
$database_port     = '3306';
$database_ssl      = false;

/* when the cacti server is a remote poller, then these entries point to
 * the main cacti server.  otherwise, these variables have no use. 
 * and must remain commented out. */

#$rdatabase_type     = 'mysql';
#$rdatabase_default  = 'cacti';
#$rdatabase_hostname = 'localhost';
#$rdatabase_username = 'cactiuser';
#$rdatabase_password = 'cactiuser';
#$rdatabase_port     = '3306';
#$rdatabase_ssl      = false;

/* the poller_id of this system.  set to '1' for the main cacti
 * web server.  otherwise, you this value should be the poller_id
 * for the remote poller. */

$poller_id = 1;

/* set the $url_path to point to the default URL of your cacti 
 * install ex: if your cacti install as at 
 * http://serverip/cacti/ this would be set to /cacti/.
*/

$url_path = '/cacti/';

/* default session name - session name must contain alpha characters */

$cacti_session_name = 'Cacti';

/* save sessions to a database for load balancing */

$cacti_db_session = false;

/* optional parameters to define scripts and resource paths.  these
 * variables become important when using remote poller installs
 * when the scripts and resource files are not in the main cacti
 * web server path. */

//$scripts_path = '/var/www/html/cacti/scripts';
//$resource_path = '/var/www/html/cacti/resource/';


今回変更する場所は "$database_password"のパスワード部分を変更します。

$database_password = '(データベースユーザー作成時に設定したパスワードを指定する)';

ログファイルの設置

C:/inetpub/wwwroot/cacti/log/cacti.log

に空のログファイルを作成します。

ディレクトリのアクセス権の設定

ディレクトリのアクセス権を設定します。wwwroot(c:\Inetpub\wwwroot)に設置したcactiのディレクトリの"resource"ディレクトリをクリックして選択します。


右クリックしてポップアップメニューを表示します。メニューの[プロパティ]をクリックします。


ディレクトリのプロパティダイアログが表示されます。


[セキュリティ]のタブをクリックします。下図の画面が表示されます。[編集]ボタンをクリックします。アクセス許可ダイアログが表示されます。


上部の[グループまたはユーザー名]のリストボックスから"IIS_IUSRS"のユーザーをクリックして選択します。下部の[アクセス許可]の項目で[フル コントロール]または、[変更]にチェックを入れます。


同様の手順でアクセス権を変更し

  • c:\Inetpub\wwwroot\cacti\resource
  • c:\Inetpub\wwwroot\cacti\scripts
  • c:\Inetpub\wwwroot\cacti\log
  • c:\Inetpub\wwwroot\cacti\rra
  • c:\Inetpub\wwwroot\cacti\plugins

のディレクトリに対して書き込み権限を追加します。

Cactiのセットアップ

WebブラウザでCactiのディレクトリ(http://(ホスト名)/cacti/)にアクセスします。下図の[License Agreement]の画面が表示されます。


画面下部の[Accept GPL License Agreement]のチェックボックスにチェックをします。チェック後、画面の下部の[Next]ボタンをクリックします。


[Pre-Installation Checks]画面が表示されます。設定が正しくできていれば、下図の画面が表示され、次の画面に進めます。画面の最下部の[Next]ボタンをクリックします。


タイムゾーンの設定ができていない場合、下図のエラーが表示され、次に進むことはできません。

MySQL TimeZone SupportERROR: Your Cacti database login account does not have access to the MySQL TimeZone database. Please provide the Cacti database account "select" access to the "time_zone_name" table in the "mysql" database, and populate MySQL's TimeZone information before proceeding.





[Installation Type]の画面が表示されます。


コンボボックスには"New Primary Server" と "New Remote Poller" の選択肢があります。今回は最初のサーバーですので、"New Primary Server" を選択します。選択後[次に]のボタンをクリックします。
https://ipentec.azureedge.net/document/image/windows-install-cacti-windows-server-2016-26?maxwidth=640 2x" style="border-style:none;margin:4px auto;max-width:95%;font-family:segoe-ui_normal, 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', Helvetica, sans-serif;font-size:16px;background-color:rgb(255, 255, 255)">

[Critical Binary Locations and Versions]の画面が表示されます。必要なバイナリがインストールされていればグリーンのチェックのマークが表示されます。赤のアイコンが表示されている場合は、インストールされているかの確認、またはインストールパスを設定します。設定後[Next]ボタンをクリックします。


[Directory Permission Checks]の画面が表示されます。書き込み権限が付与されているかのチェックが実行されます。書き込み権限がついていない場合は、ディレクトリのアクセス権を変更します。設定後[Next]ボタンをクリックします。


[Template Setup]の画面が表示されます。


インストールするテンプレートにチェックをつけます。チェック後[Finish]ボタンをクリックします。

補足

Windows版のCactiの場合、PHPの実行時間タイムアウト("Fatal error: Maximum execution time of 50 seconds exceeded.")や、500エラーが発生する可能性があります。その場合は、インストールするテンプレートにチェックをせず、設定完了後にテンプレートをインストールします。

設定が完了すると、下図のログイン画面が表示されます。初期ID"Admin" 初期パスワード"admin" を入力してログインボタンをクリックします。


[Change Password]のダイアログが表示されます。新しいパスワードを設定します。


変更後、下図のCactiの画面が表示されます。

Pollerの定期実行

Pollerを定期実行するための設定をします。

タスクスケジューラーでの設定

タスクスケジューラーを利用して、5分ごとに

c:\php\php.exe C:\inetpub\wwwroot\cacti\poller.php

のコマンドを実行します。一見問題なさそうですが、この方法ではタスクが停止し、うまく実行できない場合がありました。

タスクスケジューラー+プログラムでの設定

1分間隔でPollerを実行する下記のプログラムを作成します。

コード

C#でコンソールアプリケーションを作成し、下記のコードを記述します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;


namespace CactiPollerExec
{
  class Program
  {
    static void Main(string[] args)
    {
      while (true) {
        FileStream fs = new FileStream("log.txt", FileMode.Append);
        StreamWriter sw = new StreamWriter(fs);
        try {
          string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
          sw.WriteLine("{0} - Exec Cacti Poller", dt);
          Process.Start("c:\\php\\php.exe", @"C:\inetpub\wwwroot\cacti\poller.php");
          sw.Flush();
          System.Threading.Thread.Sleep(1000 * 60);
        }
        finally {
          sw.Close();
          fs.Close();
        }
      }
    }
  }
}


上記のプログラムをタスクスケジューラーでWindowsの開始時に実行する設定にします。


以上でインストールは完了です。

Comments   

 
0 #1 Guest 2018-11-27 20:25
I wanted to visit and let you know how considerably I liked discovering your web blog today.
I'd personally consider it the honor to do things
at my workplace and be able to make use of the tips discussed on your website and also be
involved in visitors' opinions like this. Should a position associated with guest writer become available at your end, please
let me know.

Feel free to surf to my homepage www.youtube.com/.../
Quote
 

Articles by Date

TweetTweet Share on LinkedInShare on LinkedIn Share on Google+Google+ Submit to RedditReddit Publish on WordPress WordPress Send emailSend email