Cactiのインストール RRDToolを利用したサーバ監視ツール
CactiとはRRDToolを利用したサーバ監視ツールで、サーバ負荷やネットワークなどの状況をグラフ化して時系列に表示させることができるwebツールです。
[参考記事] ログをリアルタイムに表示させて監視する方法
[参考記事] PHPでロードアベレージを表示させる方法
[参考記事] サーバの負荷や使用率などを見るコマンドの一覧
[参考記事] 負荷が高いときには503エラーを返す方法
[参考記事] HEADリクエストを排除してサーバ負荷を軽減させる
Cacti公式サイト
RRDTool公式サイト
使用するには
RRDTool
PHP
webサーバ(ApacheやIIS)
MySQL
が必要です。
MRTGを利用したトラフィック(ネットワークの負荷)を監視をするにはSNMP,SNMPDが必要です。
インストールはすべてyumで可能です。
[参考記事] Apacheをyumでインストールする
[参考記事] PHPをyumでインストールする
[参考記事] MySQLのインストール
RRDToolのインストール
yum install rrdtool
SNMPのインストール
yum install net-snmp
Cactiのインストール
yum install cacti
SNMPの設定ファイルは/etc/snmp/snmpd.confです。必要があれば設定を変更します。
SNMPDを起動します。
/etc/rc.d/init.d/snmpd start
OS再起動時にも自動でSNMPDが立ち上がるように設定します。
chkconfig snmpd on
MySQLにCacti用のデータベース、ユーザを作成します。
データベース名 cacti
ユーザ名 cactiuser
とします。
# mysql --u root -p mysql mysql> create database cacti; mysql> grant all on cacti.* to cactiuser@localhost identified by '【パスワード】'; mysql> flush privileges; mysql> \q
Cactiの初期データをデータベースに登録します。
Cactiインストール時にcacti.sqlが保存されるので、そのSQLを取り込みます。
cacti.sqlファイルを探します。
# updatedb # locate cacti.sql /usr/share/doc/cacti-0.8.7g/cacti.sql
cacti.sqlファイルを取り込みます。
# mysql -u root -p -D cacti < /usr/share/doc/cacti-0.8.7g/cacti.sql
Cactiをyumでインストールすると、/usr/share/cacti/以下にインストールされます。
このディレクトリ以下に設定ファイルがあるので、MySQLの接続情報の設定をします。
include/config.php
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; $database_port = "3306";
実際にはこのconfig.phpは/etc/cacti/db.phpのシンボリックリンクになっていて、権限はユーザ名cactiグループ名apacheになっています。
次にApacheの設定をします。
Cactiをインストールすると/etc/httpd/conf.d/cacti.confが作成されますが、アクセス制限が127.0.0.1のみアクセス可能になっています。
ローカル以外からアクセスする場合にはアクセス制限を修正します。
vi /etc/httpd/conf.d/cacti.conf Alias /cacti /usr/share/cacti <Directory /usr/share/cacti/> Order Deny,Allow Deny from all Allow from 127.0.0.1 # ここにアクセス可能なIPを設定します。 Allow from xxx.xxx.xxx.xxx </Directory>
設定を変更したらApacheを再起動します。
/etc/init.d/httpd restart
この設定だとAliasを使用しているため、バーチャルホストを使用して複数のドメインを管理している場合、どのドメインからもアクセスできてしまうので、シンボリックリンクによって指定する方法もあります。
ln -s /usr/share/cacti /var/www/html/cacti
これで次のアドレスでサーバにアクセスするとcactiのインストール画面が表示されます。
http://www.example.com/cacti/
ここでインストール画面が表示されず、次のようなエラーが出るときにはMySQLに接続できていません。
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php'
include/config.phpやMySQLの設定を確認します。
それでも同じエラーが出る場合は、一旦include/config.phpのhostnameの設定をlocalhost以外にしてみてください。
このときも
MySQL server on 'localhost'
と出る場合には、include/config.phpが読み込めていません。
include/config.phpの権限設定を確認してApacheからアクセスできるようにします。
Cactiをyumでインストールするとinclude/config.phpの実体が/etc/cacti/db.phpなので、注意してください。
うまく設定できると次のような画面が出ます。
新規インストールを選択します。
各パス設定を確認します。
インストールが完了すると、ログイン画面になります。
初期アカウント: admin
初期パスワード: admin
ただこのとき、まだグラフは表示されません。(これは正常です。)
グラフを生成するにはpoller.phpを実行する必要があります。
poller.phpの実行にはroot権限で実行する方法とcactiuserを作成して実行する方法があります。
cacti用のユーザを作成する場合
useradd cactiuser
rraディレクトリとlogディレクトリに書き込み権限を与えます。
chown -R cactiuser:cactiuser rra/ log/
cactiuserになり、poller.phpが実行できることを確認します。
# su cactiuser $ /usr/bin/php /usr/share/cacti/poller.php
5分ごとにpoller.phpが実行されるようにcronを設定します。
cronの設定は次の方法のいずれか1つを指定します。
cacti用のcronを作成するには/etc/cron.d/cactiを作成して設定します。
# vi /etc/cron.d/cacti */5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
rootのcronに指定するには、実行権限をcactiuserに指定して設定します。
crontab -e */5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1
rootユーザの状態で、cactiuserのcronに指定するには次のコマンドで指定できます。
crontab -u cactiuser -e */5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
rootでpoller.phpを実行すると、ログファイルなどがroot権限になってしまうので、cactiuserで上書きできなくなるので注意してください。
標準でpoller.phpはcmd.phpを使用しますが、このcacti-spineを使用するとpoller.phpの実行が早くなります。
5分に1回実行するものなので、より早いものを使用したほうがいいです。
yumでインストールすることができますが、SNMPとのバージョンが合わなくて次のような実行エラーが出ることがあります。
SPINE: Poller[0] ERROR: SNMP Library Version Mismatch (5.3.1 vs 5.3.2.2) (Spine parent)
標準のリポジトリにはないので、サードパーティのインストールになります。
[参考記事] Repoforge(RPMForge) 基本リポジトリで提供されていないパッケージのyumインストール
yum install cacti-spine
バージョンが合わない場合にはソースから最新のcacti-spineをインストールします。
ソースからインストールするときにはmysql-develが必要です。
$ cd /usr/local/src $ wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz $ tar -zxvf cacti-spine-0.8.7g.tar.gz $ cd cacti-spine-0.8.7g # ./configure # make # make install
configureで次のようなエラーが出るときにはmysql-develがインストールされていません。
configure: error: Cannot find MySQL headers.
cacti-spineにもMySQLへの接続設定をします。
vi /etc/spine.conf DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306
web画面上でcacti-spineを使用する設定をします。
Setting → Pathタブでspineのパスを設定します。
pollerの実行をcmd.phpからspineに変更します。
グラフが生成されないときはログファイルlog/cacti.logを確認します。
またSNMPが実行できるか確認します。
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0
$ snmpwalk -c public 127.0.0.1 .1.3.6.1.4.1.2021.2.1
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0
$ snmpwalk -v 1 localhost -c private
次のエラーが出るときにはMIBが設定されていません。
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. Failed object: UCD-SNMP-MIB::ssCpuRawUser.0
関連記事
- PHPのPEARは2019年に改ざんされたことがあります
- SSDの現在のTBWを調べる方法 SSDの残り寿命 (Windows Linux CentOS)
- RAIDの種類
- NTFSのディスクをLinuxにマウントすると読み込み専用でマウントされてしまう
- Ubuntu/Debian/Raspberry PiでChia Network(XCH)をHDDマイニングする方法
- CentOSでChia Network(XCH)をHDDマイニングする方法
- 仮想通貨Chia Network(XCH)とは 多くの報酬を得る方法
- PCやスマホがネットワーク内にあるかどうかを調べる(在宅かどうかの判断)
- Raspberry Piを使用するときに必要なもの
- Raspberry Piで使えるmicroSDカードの容量(最小容量 最大容量)
- FAT(File Allocation Table)ファイルシステムの仕様 FAT16 FAT32 exFAT VFAT
- Raspberry Pi 4 Model Bのチップ・無線LANアンテナ
- Raspberry Pi Zero WHのチップ・無線LANアンテナ(大きなチップはCPUではありません)
- Raspberry Piの選び方・用途別のおすすめモデル
- Raspberry Piの各モデルスペック比較
- GnuTLS: The Diffie-Hellman prime sent by the server is not acceptable (not long enough).の解決法
- Linux・WindowsでMTUを変更する方法(ジャンボフレーム)
- LinuxでPDFを画像に変換したりテキストを抽出する方法
- Linuxにffmpegをインストールする方法 CentOS Stream
- SELinuxの管理で使用するsemanageコマンドをインストールする方法
- LinuxにImageMagickをインストールする方法 CentOS Stream
- Linuxでrarファイルを圧縮・解凍する方法(CentOS)
- Linuxで接続されているUSBのバージョンを確認する方法
- Linuxでストレージの型番やシリアルを確認する方法(HDD SSD NVMe)
- CPUやストレージの温度を調べる方法(CPU HDD SSD NVMe)
- CentOS7からCentOS8へのアップグレード
- 各ストレージの速度一覧 規格速度や実効速度(HDD/SSD/M2/NVMe/USBメモリ)
- Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)
- VirtualBox Interfaceが起動していてシャットダウンができないとき
- HPのパソコンでVirtualBoxが起動しない(HP ProtectTools Security Manager)
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- ホスト名(ドメイン)をローカルIPに名前解決させる方法(ローカルDNS不要)
- SONYのnasneをLinuxにマウントする方法
- 数日おきに設定したcronの実行が1日ずれる理由
- LinuxでNTFS(Windows形式)のフォーマットをする方法
- target is busyやdevice is busyをumountする方法
- /dev/random と /dev/urandom の違い
- 2TBを超えるHDDを増設する方法(パーティション・フォーマット)
- 破損したストレージからのデータ復旧
- HDDやSSDなどのストレージをリスト形式で表示する方法
- blkidコマンドでUUIDが表示されない場合
- HDDやSSDなどのストレージのUUIDを調べる方法
- glibcを更新するとdateコマンドが新元号の令和に対応します
- ata1.00: SRST failed(errno=-16) と出る場合
- cron設定ファイルの実体の保存先
- Fail2ban ログを集計して不正アクセスを防ぐ
- CD-RやDVD-Rを使わずUSBメモリでLinuxをインストールする方法(ISO boot)
- VBoxGuestAdditions.iso の場所
- 『Table is marked as crashed and should be repaired』の修復方法
- PostfixサーバからGmailサーバへメールを送信できない場合の対処法
- Apacheをコマンドプロンプトから起動・停止・再起動する方法
- wgetが遅い場合の対処法
- WgetがFTPでダウンロードできない場合
- WgetがSSLでダウンロードできない場合
- Wgetの基本的な使い方など(ユーザーエージェントの設定・POSTデータの送信)
- lsコマンドで秒を表示する方法(タイムスタンプの書式指定)
- PDO_MYSQLをインストールする方法
- PEAR・PECLをインストールする方法
- シェルスクリプトを実行すると『そのようなファイルやディレクトリはありません』や『コマンドが見つかりません』と出る場合
- 画面のバックライトを消す方法(モニタ電源を消す) vbetool
- telnetの反応がなくなった時に接続を強制的に切断する方法
- サーバの負荷や使用率などを見るコマンドの一覧
- PHPでロードアベレージを表示させる方法
- Apacheで出力されるログを変更する方法 レスポンスにかかった時間やリファラ、ユーザーエージェントを記録する
- ログをリアルタイムに表示させて監視する方法
- 起動時にネットワークを有効にする方法(eth0を起動する方法)
- IPアドレスを変更する方法
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- [warn] _default_ VirtualHost overlap on port 80, the first has precedence エラー
- Zend Serverとは
- 特定のディレクトリのみベーシック認証を外す方法
- svn: '/home' does not appear to be a URL 同サーバ内にあるリポジトリの指定
- SVNリポジトリを別のサーバに移行する方法
- svn: Repository moved temporarily; please relocate PROPFIND request failed
- PEARを更新する方法
- locateデータベースの更新
- JP106キーボードを使用する設定
- VirtualBoxでホストOSと同じネットワークにする方法
- VMware Serverのファイル・サービス
- VirtualBox、仮想OSのインストール
- IPアドレス制限とベーシック認証を併用する方法
- memcachedの仕組み(オンメモリストレージ・Slab Allocator)
- 会員専用ページを作る方法 (ベーシック認証 / Basic認証 / 基本認証)
- CGI(Perl)をApacheで使用するときの設定
- NTPサーバで時計を調節する (the NTP socket is in use, exiting とは)
- CVSについて
- Oracle Berkeley DBのインストール
- VMware Serverの使い方
- VMWare Serverのインストール
- webサーバーのレスポンスコード
- Linux [Red Hat/CentOSなど]
- Windows
- Mercurial
- FreeBSD
- SVN(Subversion/サブバージョン)
- cron
- Vagrant(ベイグラント)
- Git
- AWS
- Samba
- HomeBridge
スポンサーリンク