[monitoring] Centos7 cacti install

Centos7 cacti install

 

cacti-spine 설치시 mariadb 10.2 Version 에서 컴파일 오류가 발생 합니다. 

다른방법을 찾지 못하여 mariadb 10.2 를 삭제 하고 mariadb 10.1 로 테스트후 설치를 진행 하였습니다.

cacti-spine 을 사용하시지 않는다면 아래 내용은 skip 하셔도 무방합니다.

[root@centos74 mariadb]# yum remove mariadb
MariaDB-client
MariaDB-server


[root@centos74 ~]# cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@centos74 ~]# yum clean all && yum list

[root@centos74 ~]# yum install -y mariadb-server

참고 내용: https://forums.cacti.net/viewtopic.php?f=2&t=57563&start=15

 

패키지 설치

[root@centos74 ~]# yum install -y httpd httpd-devel mariadb-server php-mysql php-pear php-common php-gd \
php-devel php php-mbstring php-cli php-snmp net-snmp-utils net-snmp-libs rrdtool cacti

 

Service Start & enable 

[root@centos74 ~]# systemctl start httpd
[root@centos74 ~]# systemctl start mariadb
[root@centos74 ~]# systemctl start snmpd
[root@centos74 ~]# systemctl enable httpd
[root@centos74 ~]# systemctl enable mariadb
[root@centos74 ~]# systemctl enable snmpd

 

db 생성

[root@centos74 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.2.11-MariaDB MariaDB Server

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

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

MariaDB [(none)]> create database cacti;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye
[root@centos74 ~]#

 

cacti db 작업

[root@centos74 ~]# rpm -ql cacti | grep cacti.sql
/usr/share/doc/cacti-1.1.28/cacti.sql
[root@centos74 ~]#

[root@centos74 ~]# mysql -u root -p cacti < /usr/share/doc/cacti-1.1.28/cacti.sql
Enter password:
[root@centos74 ~]#



[root@centos74 ~]# vi /etc/cacti/db.php
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';

 

apache 설정 및 crond 설정

Apache 설정
[root@centos74 ~]# vi /etc/httpd/conf.d/cacti.conf

Require all granted
Allow from 192.168.0.0/24

[root@centos74 ~]# systemctl restart httpd

crond 설정  # 주석을 제거 합니다.
[root@centos74 ~]# cat /etc/cron.d/cacti
*/5 * * * *    cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
[root@centos74 ~]#

 

 

cacti 설정을 진행 합니다. http://serverip/cacti 로 접속 하시면 됩니다.

 

MySQL TimeZone Support

ERROR: 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.

PHP Timezone Support

ERROR: Your Web Servers PHP Timezone settings have not been set. Please edit php.ini and uncomment the ‘date.timezone’ setting and set it to the Web Servers Timezone per the PHP installation instructions prior to installing Cacti.

 

MySQL TimeZone Support  Error message 

[root@centos74 my.cnf.d]# 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@centos74 ~]# vi /etc/my.cnf

[mysqld]
default_time_zone=Asia/Seoul


[root@centos74 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.11-MariaDB MariaDB Server

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

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

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye
[root@centos74 my.cnf.d]# systemctl restart mariadb

 

 

PHP Timezone Support Error message 

[root@centos74 ~]# vi /etc/php.ini

date.timezone =Asia/Seoul
[root@centos74 ~]# systemctl restart httpd

 

Optional Modules gmp support

[root@centos74 ~]# yum install -y php-gmp
[root@centos74 ~]# systemctl restart httpd

 

 Cacti Recommended MySQL

 

Cacti Recommended 적용

[root@centos74 ~]# cd /etc/my.cnf.d/
[root@centos74 my.cnf.d]# vi server.cnf
[mysqld]
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
max_heap_table_size = 185M
tmp_table_size = 64M
join_buffer_size= 64M
innodb_buffer_pool_size = 925M
innodb_doublewrite = OFF
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
max_heap_table_size = 200M
max_allowed_packet = 16777216
innodb_buffer_pool_size = 930M
innodb_additional_mem_pool_size = 85M

[root@centos74 my.cnf.d]# vi mysql-clients.cnf
[mysql]
default-character-set = utf8mb4

[root@centos74 my.cnf.d]# systemctl restart mariadb

 

확인

 

Next 를 눌러 다음을 설정 합니다.

 

Next 를 눌러 다음을 설정 합니다.

cacti-spine 의 경우 Compile 설치를 진행 해야 합니다.

https://www.cacti.net/downloads/spine/ 에서 최신버젼을 확인할수 있습니다.

[root@centos74 ~]# yum install -y gcc mysql-devel net-snmp-devel autoconf automake libtool dos2unix help2man
[root@centos74 ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-1.1.28.tar.gz
[root@centos74 ~]# tar xvf cacti-spine-1.1.28.tar.gz
[root@centos74 ~]# cd cacti-spine-1.1.28/
[root@centos74 cacti-spine-1.1.28]# ./bootstrap
[root@centos74 cacti-spine-1.1.28]# ./configure
[root@centos74 cacti-spine-1.1.28]# make && make install

 

cacti-spine 설정

[root@centos74 ~]# cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
[root@centos74 ~]# vi /usr/local/spine/etc/spine.conf
DB_Host                 localhost
DB_Database             cacti
DB_User                 cacti
DB_Pass                 password
DB_Port                 3306
[root@centos74 log]# /usr/local/spine/bin/spine
2017-12-22 18:30:34 - SPINE: Poller[1] FATAL: Unable to read configuration file! (Spine init)

[root@centos74 ~]# cp /usr/local/spine/etc/spine.conf /etc/

[root@centos74 ~]# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 1.1.28 starting
SPINE: Time: 4.0303 s, Threads: 16, Devices: 1
[root@centos74 ~]#

 

spine 경로를 아래와 같이 바꿔 줍니다.

/usr/local/spine/bin/spine

Next 를 눌러 다음을 설정 합니다.

Next 를 눌러 다음을 설정 합니다.

Finish  를 눌러 설정을 마무리 합니다.

 

admin:admin 으로 로그인 하여 admin  패스워드를 설정 합니다.

 

admin 계정이 사용할 패스워드를 설정 합니다.

패스워드 설정시 대문자 소문자 특수문자로 패스워드를 설정합니다.

 

 

 

Cacti 설정 화면

 

 

Management -> Graphs 로 이동하여 그래프를 삭제 합니다.

 

 

Management -> Devices 에서 기본 Device 를 삭제 합니다.

 

우측상단 + 를 눌러 새로운 Device 를 추가합니다.

 

Description : 장비명이나 서비스명을 입력하시면 됩니다.

Hostname: ip 나 hostname 정보를 입력하시면 됩니다.

Device Template : Net-SNMP Device

SNMP Version : Version 2

 

snmpd 설정

[root@centos74 ~]# vi /etc/snmp/snmpd.conf
#       sec.name  source          community
com2sec public  default       public


#       groupName      securityModel securityName
group   public v1           public
group   public v2c          public

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
#view    systemview    included   .1.3.6.1.2.1.1
#view    systemview    included   .1.3.6.1.2.1.25.1.1
view     all           included    .1


#       group          context sec.model sec.level prefix read   write  notif
#access  notConfigGroup ""      any       noauth    exact  systemview none none
access  public ""      any       noauth    exact  all none none

[root@centos74 ~]# systemctl restart snmpd

확인
[root@centos74 ~]# snmpwalk -v2c -c public 192.168.0.10

 

 

아래와 같이 SNMP Information 이 정상적으로 출력이 되면 됩니다.

SNMP error 발생시 snmpd.conf 설정내역을 한번더 확인하시기 바랍니다.

Create Graphs for this Device 를 클릭하여 그래프를 생성합니다.

 

그래프를 만들 항목을 선택 한후 Create 를 클릭합니다.

 

Graphs -> List View 로 이동후 그래프 항목을 선택후 View 버튼을 클릭합니다.

 

그래프생성시까지 약 5~10분정도의 시간이 걸립니다.

 

cacti log 확인 

 

약10분이 정도 지나면 아래와 같은 그래프를 볼수 있습니다.

 

추가설정

Configuration -> Settings -> Paths에서 Spine config File Path 을 설정합니다.

/usr/local/spine/etc/spine.conf

 

Configuration -> Settings -> Poller 에서 Poller Type 을 변경합니다.

Poller Type : spine 으로 변경

Poller interval : Every Minute 으로 변경

 

Spine Specific Execution Parameters 변경

Maximum Threads per Process 1 -> 16

Number of PHP Script Servers 1 -> 8

 

Save 를 클릭하여 저장을 합니다.

수고 하셨습니다. 🙂

 

 

댓글 남기기