NMS?
Network Management System 의 줄임말로, 말 그대로 네트워크 관리를 위한 모니터링을 담당한다.
더 정확하게는 네트워크 상의 모든 장비들의 중앙 감시 체계를 구축하여 모니터링, 분석 및 계획이 가능하며 관련 데이터를 활용한 이상 트래픽에 대한 조기 경보 및 네트워크 관리 시스템이다.
NMS
NMS 서버 구축
우선 새로 서버를 만들기 위해






// 헷갈리지 않게 호스트네임을 설정하자.
# hostnamectl set-hostname nms
이제 다시 MobaX에서 Bastion Host로 접속해보자.
우선, nms엔 키가 없기 때문에 nat에서 키를 전송하자.


// nms에 아이피를 복사해준다.
# ssh-copy-id -i .ssh/id_rsa root@10.31.0.103

// 바로 접근하면 퍼미션 때문에 경고가 뜬다. 그러므로 권한을 바꾸고
# chmod 400 .ssh/id_rsa
# ssh -i .ssh/id_rsa root@(nms아이피)

# cat /etc/resolv.conf

# cd /var/named/
# ls
# vi kyoung1234.shop.db


# systemctl restart named
# ping nms.kyoung1234.shop

CACTI 설치
// nms 에서
# sestatus
// 만일 disabled가 아니라면 다음을 실행하고, 맞다면 스킵
// vi가 아니라 치환 명령어인 'sed -i'를 통해 's/^(찾을 문장)$/(바꿀 문장)' (파일위치) 로 수정
# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# setenforce 0
// 순서대로 입력하여 필요한 설치를 진행하자
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install -y httpd httpd-devel
# systemctl enable --now httpd
# curl 127.0.0.1 // 설치 확인

// SNMP (Simple Netwrok Management Protocol; UDP 161) : CPU나 메모리 사용량이 어떠한지 물어보고 대댑하는 역할
// 마저 SNMP를 설치를 진행해주자
# yum install -y net-snmp net-snmp-utils net-snmp-libs rrdtool // rrdtool : 그래프를 그려주는 도구
# systemctl enable --now snmpd

// epel = centos가 제공하는 것이 아닌 특별하게 관리되고 있는 저장소로부터 가져와 최근 버전으로 설치
# yum --enablerepo=epel install -y php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-intl php-snmp
// DNS서버에서 (root이므로 로컬서버에서 해야함)
# mysql -u root -p

create database cacti;
CREATE USER 'cactiuser'@'%' IDENTIFIED BY 'kosa0220';
grant all privileges on cacti.* to cactiuser@'%';
FLUSH PRIVILEGES; // 변경 사항을 반영 (grant를 reload할때 많이 쓰임)
exit

다시 nms로 돌아와서
# yum install -y mysql
쿼리 설치가 끝났다면,
// 도메인을 통해 cactiuser로 접속
# mysql -h ns.kyoung1234.shop -u cactiuser -p

이후 확인이 됐으면 다시 'exit'를 하여 DB에서 나온다.
// mysql_test_data_timezone.sql를 데이터베이스에 가져오기
# mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
// DB 접속
# mysql -u root -p
// 권한 부여
GRANT SELECT ON mysql.time_zone_name TO cactiuser@'%';
flush privileges;
exit

// cacti를 쓰기 위한 설정 변경
# vi /etc/my.cnf.d/server.cnf // 기존 파일 수정
// [mysqld] 찾아서 붙여넣기
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=128M
max_allowed_packet=16777216
tmp_table_size=78M
join_buffer_size=155M
innodb_file_per_table=on
innodb_buffer_pool_size=1207M
innodb_doublewrite=on
# innodb_additional_mem_pool_size=80M // 이거 때문에 오류나므로 우선 주석처리
innodb_file_format=Barracuda
innodb_lock_wait_timeout=50
innodb_flush_log_at_trx_commit=2
innodb_large_prefix=1
//얘도 꼭 재시작 mariadb를 재시작 해야한다.
# systemctl restart mariadb

이제 다시 nms로 돌아가서 cacti를 설치해주자
// nms에서
# yum -y install cacti

// 이제 DB에 cacti를 넣어주자
// dns서버가 아니기에 root를 쓸 수 없다. 그러므로 전에 만들었던 'cactiuser'를 이용하자
# mysql -h ns.kyoung1234.shop -u cactiuser -p cacti < /usr/share/doc/cacti-*/cacti.sql
// '*'을 통해 모든 버전을 포용

#vi /usr/share/cacti/include/config.php // 기존 파일 수정
// 아래 내용 찾아서 비밀번호 수정 (보안을 위해)
$database_hostname = '(도메인 주소)' // 내 도메인
$database_password = 'kosa0220'; // 비밀번호 수정

# vi /etc/cron.d/cacti // cacti의 스케줄러 편집
// 아래로 수정
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
// 매 5분(폴링 타임)마다 동작한다. 사용자가 등록된 호스트의 cpu사용량을 묻고 가져와 데이터베이스에 넣는 도구(polling)
// 오류는 무시한다.

# vi /etc/httpd/conf.d/cacti.conf // 기존 파일
// 수정하기
Require host localhost --> Require all granted
Allow from localhost --> Allow from all
// 모두에게 부여
// 모두가 사용 가능

# vi /etc/php.ini // php 설정 변경
// 수정하기
date.timezone = Asia/Seoul
memory_limit = 800M
max_execution_time = 60



// 이제 다시 재시작해주자.
(nms)
# systemctl restart httpd.service
(dns)
# systemctl restart mariadb.service
(nms)
# systemctl restart snmpd.service
// 방화벽 설정
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload
# reboot


// http://Your-Server-IP/cacti
// VMBox의 xfce에서의 크롬으로는 접속되지만, 현재 VMware에서는 불가. 그러므로 HAProxy를 건드려서 해보자.
// 즉, HAProxy에 의해 사파리를 수정하자
(nat에서)
# vi /etc/haproxy/haproxy.cfg
acl safari hdr_sub(User-Agent) Safari
use_backend bk_safari if safari
server web03 10.31.0.103:80 cookie w3 check
backend bk_safari
server web02 10.31.0.103:80

// HAProxy는 항상 수정하고나면 확인하자.
# systemctl restart haproxy
# systemctl status haproxy

이제 사파리에서 'http://(NAT IP)/cacti' 에 접속해보자

초기 아이디와 패스워드는 admin/admin이다
로그인해보자.
그리고 비밀번호를 각자 알맞게 설정하자.












Cacti Client 설치
- cacti client 설치
(nat, web01, 02, ns에서)
# yum install -y net-snmp net-snmp-utils net-snmp-libs
# vi /etc/snmp/snmpd.conf
view systemview included .1 // 원래 1.3.6.1.2.1.1
# view systemview included .1.3.6.1.2.1.25.1.1 // 각 위치마다 의미가 있음 3:시피유 6:메모리 1:네트워크 순 등등
// .1 : 다 보여줌
# systemctl enable --now snmpd
(nms에선)
# vi /etc/snmp/snmpd.conf
view systemview included .1
# view systemview included .1.3.6.1.2.1.25.1.1
# systemctl restart snmpd
(모두 다)
# systemctl status snmpd
# firewall-cmd --permanent --add-service=snmp
# firewall-cmd --reload
(nat, web01 에서)
# firewall-cmd --permanent --add-service=snmp --zone=internal
# firewall-cmd --reload

Cacti 사용
파이어폭스로 (NAT IP)/cacti 에 접속
console - management - Devices - add(우측상단)

Management - Devices에 들어가면



리눅스 모니터링
너무 깜빡거리니까 설장해주자
(NAT에서)
# vi /etc/haproxy/haproxy.cfg

# systemctl restart haproxy
# systemctl status haproxy
크롬에서 접속




이제 Management - Devices - web01의 그래프 수 를 클릭하고

여기까지가 리눅스의 모니터링 방법이다
윈도우 모니터링
설정 - 앱 - 선택적 기능 - 기능 추가 - snmp 검색 후 설치















이제 그래프를 보기 편하게 그래프 탭에 띄어보자



'메가존 클라우드 2기 교육 > Linux(리눅스)' 카테고리의 다른 글
리눅스(Linux) - 실습3 논리 불륨 관리(LVM) (0) | 2023.03.09 |
---|---|
리눅스(Linux) - 실습3 파티션과 마운트 (0) | 2023.03.08 |
리눅스(Linux) - 실습2 (링크, 파일 검색, 편집, 퍼미션) (0) | 2023.03.07 |
리눅스(Linux) - 실습1 (CLI구문, 디렉토리 작업, 파일 작업) (0) | 2023.02.28 |
리눅스 실습을 위한 Virtual Box, CentOS7 설치 (0) | 2023.02.24 |