CentOS Stream 8
Sponsored Link

Cacti : インストール2021/06/07

 
Cacti をインストールして、システムの状態を監視します。
[1]
[2]
[3]
[4] Cacti および SNMP をインストールします。
# EPEL からインストール

[root@dlp ~]#
dnf --enablerepo=epel -y install cacti net-snmp net-snmp-utils php-mysqlnd php-snmp php-bcmath rrdtool
[5] SNMP (Simple Network Management Protocol) を設定します。
[root@dlp ~]#
vi /etc/snmp/snmpd.conf
# 41行目 : コメントにする
#com2sec notConfigUser  default       public

# 74,75行目 : コメント解除して変更
# mynetwork は自ネットワークに変更
# コミュニティ名は public, private 以外に変更
##       sec.name  source          community
com2sec local     localhost       Serverworld
com2sec mynetwork 10.0.0.0/24     Serverworld

# 78,79行目 : コメント解除して変更
##     group.name sec.model  sec.name
group MyRWGroup  v2c        local
group MyROGroup  v2c        mynetwork

# 85行目 : コメント解除
##           incl/excl subtree                          mask
view all    included  .1                               80

# 93,94行目 : コメント解除して変更
##                context sec.model sec.level prefix read   write  notif
access MyROGroup ""      v2c       noauth    exact      all    none   none
access MyRWGroup ""      v2c       noauth    exact      all    all    all

[root@dlp ~]#
systemctl enable --now snmpd
# 動作確認

# [Serverworld] の箇所は設定したコミュニティ名を指定

[root@dlp ~]#
snmpwalk -v2c -c Serverworld localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux dlp.srv.world 4.18.0-305.el8.x86_64 #1 SMP Tue May 18 14:52:12 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1250) 0:00:12.50
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: dlp.srv.world
.....
.....
[6] MariaDB の一部設定を Cacti 推奨の値に変更します。
[root@dlp ~]#
vi /etc/my.cnf.d/mariadb-server.cnf
# [mysqld] セクションに追記

[mysqld]
.....
.....
default-time-zone='Asia/Tokyo'
character-set-server=utf8mb4
character_set_client=utf8mb4
collation-server=utf8mb4_unicode_ci

max_heap_table_size=128M
tmp_table_size=128M
join_buffer_size=256M
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_buffer_pool_size=2048M
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=17
innodb_io_capacity=5000
innodb_io_capacity_max=10000

# タイムゾーン設定反映

[root@dlp ~]#
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Enter password:
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
[root@dlp ~]#
systemctl restart mariadb
[7] Cacti 用のユーザーとデータベースを MariaDB に登録して、テーブルをインポートしておきます。
[root@dlp ~]#
mysql -u root -p

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# [Cacti] データベース作成
# [password] の箇所は設定したいパスワードに置き換え
MariaDB [(none)]> create database cacti; 
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on cacti.* to cacti@'localhost' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)

# Cacti 動作要件として [mysql] DB の [time_zone_name] に [select] 権限付与
MariaDB [(none)]> grant select on mysql.time_zone_name to cacti@'localhost'; 

MariaDB [(none)]> exit 
Bye

[root@dlp ~]#
mysql -u cacti -p cacti < /usr/share/doc/cacti/cacti.sql

Enter password:  
# cacti ユーザーのパスワード
[8] SELinux を有効にしている場合は、ポリシーの変更が必要です。
[root@dlp ~]#
setsebool -P httpd_can_network_connect on

[root@dlp ~]#
setsebool -P httpd_unified on

[root@dlp ~]#
setsebool -P domain_can_mmap_files on

[root@dlp ~]#
vi cacti-phpfpm.te
# 以下の内容で新規作成

module cacti-phpfpm 1.0;

require {
        type admin_home_t;
        type httpd_t;
        type httpd_log_t;
        class file { getattr map open read unlink write };
        class dir { remove_name };
}

#============= httpd_t ==============
allow httpd_t admin_home_t:file map;
allow httpd_t admin_home_t:file { getattr open read };
allow httpd_t httpd_log_t:dir remove_name;
allow httpd_t httpd_log_t:file { unlink write };

[root@dlp ~]#
checkmodule -m -M -o cacti-phpfpm.mod cacti-phpfpm.te

checkmodule: loading policy configuration from cacti-phpfpm.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to cacti-phpfpm.mod
[root@dlp ~]#
semodule_package --outfile cacti-phpfpm.pp --module cacti-phpfpm.mod

[root@dlp ~]#
semodule -i cacti-phpfpm.pp

[9] Cacti および その他の設定です。
[root@dlp ~]#
vi /etc/cron.d/cacti
# コメント解除

*/5 * * * *     apache  /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

[root@dlp ~]#
vi /usr/share/cacti/include/config.php
// 29行目 : データベース接続情報を変更

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "
cacti
";
$database_password = "
password
";
$database_port = "3306";
$database_ssl = false;
[root@dlp ~]#
vi /etc/php.ini
;; 388行目 : Cacti 推奨値に変更

max_execution_time =
60
;; 409行目 : Cacti 推奨値に変更

memory_limit =
512M
;; 923行目 : コメント解除してデフォルトタイムゾーン設定

date.timezone =
Asia/Tokyo
[root@dlp ~]#
vi /etc/httpd/conf.d/cacti.conf
# 17行目 : 必要に応じてアクセス許可範囲を追記

Require host localhost
Require ip 10.0.0.0/24
[root@dlp ~]#
systemctl restart httpd php-fpm

関連コンテンツ