os : rocky linux 8.x
cacti 는 rrdtool을 이용해서 snmp정보를 가져온기반으로 그래프를 만드는데 보통 회선 사용량 mrtg를 사용할때 가장 많이 사용한다
설치 방법에 대해서 알아보자
1. epel-release 설치
1 |
[root@localhost ~]# yum -y install epel-release |
2. httpd 설치
1 |
[root@localhost ~]# yum -y install httpd |
3. 서비스 활성화
1 2 |
[root@localhost ~]# systemctl enable --now httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. |
4. php 7.4 설치 모듈을 추가한 후 설치하면 된다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@localhost ~]# yum module enable php:7.4 마지막 메타자료 만료확인(0:03:21 이전): 2023년 12월 07일 (목) 오후 02시 22분 41초. 종속성이 해결되었습니다. ======================================================================================================================================== 꾸러미 구조 버전 저장소 크기 ======================================================================================================================================== 모듈 스트림 활성화: nginx 1.14 php 7.4 연결 요약 ======================================================================================================================================== 진행할까요? [y/N]: y 완료되었습니다! |
1 |
[root@localhost ~]# yum -y install php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl |
5. php.ini 수정
1 2 3 4 5 6 |
[root@localhost ~]# vi /etc/php.ini date.timezone = "Asia/Seoul" memory_limit = 512M max_execution_time = 60 |
6. snmp 설치
1 |
[root@localhost ~]# yum -y install net-snmp net-snmp-utils net-snmp-libs rrdtool |
7. 서비스 활성화
1 2 |
[root@localhost ~]#systemctl enable --now snmpd Created symlink /etc/systemd/system/multi-user.target.wants/snmpd.service → /usr/lib/systemd/system/snmpd.service. |
8. mariadb db 설치 기본 10.3 버전 설치
1 |
[root@localhost ~]# yum install -y @mariadb |
9. mariadb 환경설정 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
[root@localhost ~]# vi /etc/my.cnf.d/mariadb-server.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mariadb/mariadb.log pid-file=/run/mariadb/mariadb.pid character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci #dns query skip-name-resolve #connection max_connections = 1000 max_connect_errors = 1000 wait_timeout= 60 ##timestamp explicit_defaults_for_timestamp symbolic-links=0 ###innodb innodb_file_per_table = 1 default-storage-engine = InnoDB innodb_file_format = Barracuda max_heap_table_size=128M tmp_table_size=128M join_buffer_size=164M #sort_buffer_size=64M # 25% Of Total System Memory innodb_buffer_pool_size=1GB # pool_size/128 for less than 1GB of memory innodb_buffer_pool_instances=10 innodb_flush_log_at_timeout=3 innodb_large_prefix=1 innodb_read_io_threads=32 innodb_write_io_threads=16 innodb_io_capacity=5000 innodb_io_capacity_max=10000 innodb_doublewrite=0 ### log log-error = /var/log/mariadb/mariadb-error.log log-queries-not-using-indexes = 1 slow-query-log = 1 slow-query-log-file = /var/log/mariadb/mariadb-slow.log |
10. mariadb 시작 및 활성화
1 2 3 4 |
[root@localhost ~]# systemctl enable --now mariadb Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service. |
11. mariadb 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@localhost ~]# systemctl status mariadb ● mariadb.service - MariaDB 10.3 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2023-12-07 14:32:01 KST; 24s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Process: 40677 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS) Process: 40449 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS) Process: 40424 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS) Main PID: 40602 (mysqld) Status: "Taking your SQL requests now..." Tasks: 73 (limit: 23032) Memory: 145.4M CGroup: /system.slice/mariadb.service └─40602 /usr/libexec/mysqld --basedir=/usr |
12. mysql에서 timezone을 추가
1 2 |
[root@localhost ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Enter password: |
13. mysql 접속 cacti 사용자 추가 ( mysql 패스워드 없으니 그냥 엔터)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@localhost ~]# mysql -u root -p mysql Enter password: MariaDB [mysql]> create database cacti; Query OK, 1 row affected (0.001 sec) MariaDB [mysql]> grant all on cacti.* to cacti@localhost identified by 'Cacti1004!!'; Query OK, 0 rows affected (0.001 sec) MariaDB [mysql]> GRANT SELECT ON mysql.time_zone_name TO 'cacti'@'localhost'; Query OK, 0 rows affected (0.001 sec) MariaDB [mysql]> flush privileges; Query OK, 0 rows affected (0.001 sec) MariaDB [mysql]> quit |
14. cacti install
1 |
[root@localhost ~]# yum -y install cacti |
15. cacti database 테이블 import ( 위에서 생성한 패스워드 입력)
1 2 |
[root@localhost ~]# mysql -u cacti -p cacti < /usr/share/doc/cacti/cacti.sql Enter password: |
16. caci 환경설정 변경
1 2 3 4 5 6 7 8 9 |
[root@localhost ~]# vi /usr/share/cacti/include/config.php $database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'Cacti1004!!'; $database_port = '3306'; |
17. httpd cacti 환경설정 수정 Require all granted 로 변경
1 2 3 4 5 6 7 |
[root@localhost ~]# vi /etc/httpd/conf.d/cacti.conf <Directory /usr/share/cacti/> <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> |
18. httpd.conf 서버네임 변경
1 2 3 |
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf ServerName mrtg.xinet.kr:80 |
19. httpd 구문에러 확인 및 서비스 재시작
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
oot@localhost ~]# httpd -t Syntax OK [root@localhost ~]# systemctl restart httpd [root@localhost ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d └─php-fpm.conf Active: active (running) since Thu 2023-12-07 14:42:56 KST; 6s ago Docs: man:httpd.service(8) Main PID: 40960 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 23032) Memory: 41.7M CGroup: /system.slice/httpd.service ├─40960 /usr/sbin/httpd -DFOREGROUND ├─40962 /usr/sbin/httpd -DFOREGROUND ├─40963 /usr/sbin/httpd -DFOREGROUND ├─40964 /usr/sbin/httpd -DFOREGROUND └─40965 /usr/sbin/httpd -DFOREGROUND |
20. cacti 5분간격으로 데이터를 수집하기 위해서 cron 설정
1 2 3 |
[root@localhost ~]# crontab -e */5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 |
21. cron 재시작
1 |
[root@localhost ~]# systemctl restart crond |
22. 웹페이지에서 아이피/cacti 입력하면 사용자 로그인 화면이 나온다 초기 아이디 패스워드는 admin / admin 입력
23. 새비밀번호를 입력하는데 강력하게 해야 넘어간다 / 대문자/소문자, 특수문자 입력
24. 설치화면에서 언어를 선택할수 있는데 한국어도 지원하는데 예전부터 영문버전을 사용해서 그냥 영문으로 선택
25. pre-installation Checks 에서 문제없으면 아래와 같이 구성이 되고 mysql settins는 워링표시가 그냥 넘어가도 된다
26. new primary server 선택 후 다음
27.
설치가 다 완료되면 하단에 Get Stared 표시가 있다 클릭
간단하게 CISCO 장비를 하나를 추가해보자 Console -> Create -> New Device 클릭
Description에는 한글이든 영어든 상관없이 디바이스명을 표시하고 Hostname에는 아이피를 입력한다 / 라우터의 snmp 정보 입력후 Create 클릭
디바이스를 등록했으니 이제 디바이스에 있는 인터페이스가 생성되었으니 그래프를 생성 Console -> New Graphs 클릭
원하는 포트를 선택 후 하단 Create 클릭
이제 rrd가 표시가 된다 / 템플릿을 조금 변경하면 우리가 흔히 보이는 MRTG화면