• SmokePing은 deluxe latency 측정 도구
  • 대기 시간, 대기 시간 분포 및 패킷 손실을 측정, 저장 및 표시 가능
  • 테스트 패킷을 네트워크로 보내고 한 곳에서 다른 곳으로 그리고 다시 돌아오는 데 필요한 시간을 측정
  • SmokePing은 RRDtool을 사용하여 장기 데이터 저장소를 유지하고 예쁜 그래프를 그려 각 네트워크 연결 상태에 대한 최신 정보를 제공
  • smokeping 공식 사이트 : https://oss.oetiker.ch/smokeping/
 

SmokePing - About SmokePing

About SmokePing Graphics SmokePing is a deluxe latency measurement tool. It can measure, store and display latency, latency distribution and packet loss. SmokePing uses RRDtool to maintain a longterm data-store and to draw pretty graphs, giving up to the m

oss.oetiker.ch

 

1. smokeping 설치 및 dig 명령어 다운로드

  • centOS 7의 경우 yum install smokeping을 통해 설치가 가능
    $ yum install -y epel-release
    $ yum install -y smokeping

 

  • DNS 질의하기 위해서 반드시 dig 명령어가 있어야함
    $ yum install -y bind-utils

 

2. smokeping config 설정 및 접근 권한 부여

  • /etc/smokeping/config에 설정 파일이 위치 → yml 이나 vhosts.xml 파일처럼 하나의 설정파일을 통해 동작
  • smokeping 설정 config파일 내용 → /etc/smokeping/config 수정 -> 국내 DNS의 health 체크
  • 접속 URL 지정 : http://[서버IP]/smokeping/sm.cgi
$ vi /etc/smokeping/config
...생략...
################### DNS Check ############################
+ KT_DNS_Check
probe = DNS
menu = KT_DNS_Check
title = KT_DNS_Check

++ KT_MAIN_DNS
host = kns.kornet.net
lookup = DNS 이름
pings = 5
server = kns.kornet.net

++ KT_SEC_DNS
host = kns2.kornet.net
lookup = DNS 이름
pings = 5
server = kns2.kornet.net

+ LG_DNS_Check
probe = DNS
menu = LG_DNS_Check
title = LG_DNS_Check

++ LG_MAIN_DNS
host = ns.dacom.co.kr
lookup = DNS 이름
pings = 5
server = ns.dacom.co.kr

++ LG_SEC_DNS
host = ns2.dacom.co.kr
lookup = DNS 이름
pings = 5
server = ns2.dacom.co.kr

+ SK_DNS_Check
probe = DNS
menu = SK_DNS_Check
title = SK_DNS_Check

++ SK_MAIN_DNS
host = bns1.hananet.net
lookup = DNS 이름
pings = 5
server = bns1.hananet.net

++ SK_SEC_DNS
host = bns2.hananet.net
lookup = DNS 이름
pings = 5
server = bns2.hananet.net

 

  • smokeping에 접속하기 위해서는 IP 접근 허용이 필요 → /etc/httpd/conf.d/smokeping.conf에 접근 IP 부여
    $ vi /etc/httpd/conf.d/smokeping.conf
    <Directory "/usr/share/smokeping" >
     Require ip [접근 서버 IP]
     # Require ip 2.5.6.8
     # Require host example.org
    </Directory>
    #
    <Directory "/var/lib/smokeping" >
     Require ip [접근 서버 IP]
     # Require ip 2.5.6.8
     # Require host example.org
    </Directory>
    #
    # .fcgi : smokeping by mod_fcgid aka fastcgi
    # _cgi  : plain old fashion cgi
    ScriptAlias /smokeping/sm.cgi  /usr/share/smokeping/cgi/smokeping.fcgi
    #ScriptAlias /smokeping/sm.cgi  /usr/share/smokeping/cgi/smokeping_cgi <br>
    #
    Alias       /smokeping/images  /var/lib/smokeping/images
    Alias       /smokeping         /usr/share/smokeping/htdocs

 

3. smokeping과 httpd 시작 및 상태 확인

  • smokeping 시작 및 상태 확인
    $ systemctl restart smokeping
    $ systemctl enable smokeping
    $ systemctl status smokeping
    ● smokeping.service - Latency Logging and Graphing System
     Loaded: loaded (/usr/lib/systemd/system/smokeping.service; disabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-06-11 01:04:33 KST; 6s ago
    Main PID: 19996 (perl)
      Tasks: 4
     Memory: 72.7M
     CGroup: /system.slice/smokeping.service
             ├─19996 perl /usr/sbin/smokeping --nodaemon
             ├─20005 /usr/sbin/smokeping [Curl]
             ├─20006 /usr/sbin/smokeping [FPing]
             └─20007 /usr/sbin/smokeping [DNS]
    

 

  • smokeping의 httpd 시작 및 상태 확인
    $ systemctl restart httpd
    $ systemctl enable httpd
    $ systemctl status httpd
    ● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
     Active: active (running) since Fri 2022-06-10 16:27:40 KST; 4s ago
       Docs: man:httpd(8)
             man:apachectl(8)
    Main PID: 32484 (httpd)
     Status: "Processing requests..."
     CGroup: /system.slice/httpd.service
             ├─32484 /usr/sbin/httpd -DFOREGROUND
             ├─32485 /usr/sbin/httpd -DFOREGROUND
             ├─32486 /usr/sbin/httpd -DFOREGROUND
             ├─32487 /usr/sbin/httpd -DFOREGROUND
             ├─32488 /usr/sbin/httpd -DFOREGROUND
             ├─32489 /usr/sbin/httpd -DFOREGROUND
             └─32490 /usr/sbin/httpd -DFOREGROUND
    

 

4. 생성된 smokeping 접속

1. 접속 URL : http://[서버 IP]/smokeping/sm.cgi

 

2. DNS 모니터링

 

'Mornitoring(모니터링)' 카테고리의 다른 글

cacti 설치 (Centos7)  (0) 2022.06.23

1. epel repository 설치

  • centos7의 epel-release 설치 진행
    bash $ yum install -y epel-release

 

2. snmp 설치

  • SNMP와 RRDTool 설치
    $ yum -y install net-snmp net-snmp-utils net-snmp-libs rrdtool

 

3. PHP와 PHP 확장자 설치

  • cacti 설치를 위해서는 PHP v7.2 이상으로 필요
  • Remi 저장소를 사용하여 PHP 7.x를 설치
    $ yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • PHP v7.3 설치
    $ yum install -y --enablerepo=remi-php73 php php-xml php-session php-sockets php-ldap php-gd php-gmp php-intl php-mbstring php-mysqlnd php-pdo php-process php-snmp
  • PHP v7.2 설치 (설치 X)
    $ yum install -y --enablerepo=remi-php723 php php-xml php-session php-sockets php-ldap php-gd php-gmp php-intl php-mbstring php-mysqlnd php-pdo php-process php-snmp

 

4. MariaDB 설치

  • Cacti는 설치를 위해 MariaDB v5.6+ 또는 MariaDB v10+가 필요 → OS 리포지토리에서 사용 가능한 MariaDB 패키지(v5.4)는 Cacti의 최소 요구 사항을 충족 X
  • MariaDB 커뮤니티 웹 사이트에서 제공되는 최신 버전의 MariaDB를 설치
    $ cat <<EOF>> /etc/yum.repos.d/mariadb.repo
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.4/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    EOF
  • MariaDB 서버를 설치
    $ yum install -y MariaDB-server MariaDB-client
  • Database Tuning
    • Cacti는 더 나은 성능을 위해 MariaDB 설정을 변경할 것을 권장
    • [mysqld] 섹션에 변수를 추가
      $ vi /etc/my.cnf.d/server.cnf
      collation-server = utf8mb4_unicode_ci
      character-set-server=utf8mb4
      max_heap_table_size = 1024M
      tmp_table_size = 1024M
      join_buffer_size = 3072M
      innodb_file_format = Barracuda
      innodb_large_prefix = 1
      innodb_flush_log_at_timeout = 3
      innodb_buffer_pool_size = 16GB
      innodb_doublewrite = OFF
      innodb_buffer_pool_instances = 64
      # Based on what type for storage you use. The below values are for SSD drives.
      # Change it if Cacti reports issues during the installation
      innodb_read_io_threads = 32
      innodb_write_io_threads = 16
      innodb_io_capacity = 5000
      innodb_io_capacity_max = 10000

 

5. 서비스 시작 과 영구적 설정(Start & Enable)

  • 서비스 시작
    $ systemctl start httpd snmpd mariadb
  • 서비스 재부팅하여도 실행될 수 있도록 하기 위한 영구적 설정
    $ systemctl enable httpd snmpd mariadb

 

6. Database 생성

  • 처음으로 MySQL을 구성하는 경우; MariaDB를 보호하는 방법을 살펴볼 필요 있음
  • Cacti 설치를 위한 데이터베이스 생성 → 비밀번호 없음
    $ mysql -u root -p 
    Enter password:
  • Cacti용 데이터베이스를 생성
    MariaDB [(none)]> create database cacti;
    Query OK, 1 row affected (0.001 sec)
  • 새로 생성된 데이터베이스에 권한을 부여
    MariaDB [(none)]> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipassword';
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
      
    MariaDB [(none)]> exit
    Bye
    
  • 새로 생성된 데이터베이스 사용자(cactuuser)는 mysql.time_zone_name 테이블에 액세스 가능 → mysql_test_data_timezone.sql을 mysql 데이터베이스로 가져옴 → 비밀번호 없음
    $ mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
    Enter password:
  • MySQL 로그인 → 비밀번호 없음
    $ mysql -u root -p
    Enter password:
  • cactiuser에게 권한을 부여함
    MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> exit
    Bye
    

 

7. Cacti 설치

  • CentOS/RHEL에서 yum 명령을 사용하여 Cacti 패키지를 설치
    $ yum -y install cacti
  • 기본 데이터베이스를 cacti 데이터베이스로 가져옴
    $ mysql cacti < /usr/share/doc/cacti-*/cacti.sql -u root -p
  • 구성 파일을 편집하여 데이터베이스 유형, 이름, 호스트 이름, 사용자 및 암호 정보를 지정
    $ vi /usr/share/cacti/include/config.php
    ...생략...
    /* make sure these values reflect your actual database/host/user/password */
    $database_type = "mysql";
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cactipassword";
    $database_port = "3306";
    $database_ssl = false;
  • crontab 파일 수정 → 5분마다 폴링하려면 다음 항목의 주석 처리를 제거
    $ vi /etc/cron.d/cacti
    */5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
  • /etc/php.ini 파일을 편집하여 시간대를 설정 → timezone 업데이트
    $ vi /etc/php.ini
    date.timezone = Asia/Seoul
    memory_limit = 512M
    max_execution_time = 60
  • Apache 구성 파일을 편집 → Require host localhost에서 Require all granted로 수정
    $ vi /etc/httpd/conf.d/cacti.conf
    Alias /cacti    /usr/share/cacti
    <Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require all granted
                Allow from [설정 IP]
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
        </IfModule>
    </Directory>
  • httpd 재실행
    $ systemctl restart httpd

 

8. Cacti 설정

  • cacti 설치를 시작하려면 아래 URL을 방문 → [http://[설치IP]/cacti/install/install.php]
  • Cacti에 로그인하여 Cacti 설치를 설정
    1. Username: admin
    2. Password: admin
  • cacti 설정에 로그인
  • cacti를 설정하기 전에 cacti 관리자의 비밀번호를 변경
    1. 기존 비밀번호 : admin
    2. 변경 비밀번호 : hello1234
  • 사용권 계약에 동의하고 다음을 클릭하여 계속
  • Cacti는 Cacti 설치를 위한 사전 설치 검사를 수행
    1. 설치 마법사가 보고하는 경우 문제를 수정해야 함
    2. 페이지 우측 하단에 위치한 Next 버튼을 클릭하여 다음 단계로 이동
  • 새 primary 서버 또는 새 설치를 선택하고 다음을 클릭
  • Cacti 설치 디렉토리에 있을 수 있는 권한 문제를 확인 -> selniux 0 설정 필요
  • Cacti의 필수인 패키지가 누락된 경우 표시
  • White Protection에 대한 방법 공지
  • 5분마다 폴링하도록 cron을 구성했는지 기본 Profile에서 확인
  • 모든 템플릿을 선택하고 마침을 클릭
  • 최종 테스트 요약 페이지
  • 설치 확인을 선택하고 설치를 눌러 Cacti 설치를 시작
  • 설치 확인 완료

 

9. Cacti 접속

  • cacti에 로그인하려면 사용자 이름과 비밀번호를 입력
    1. 접속 URL : [http://[서버 ip]/cacti/]
    2. Username : admin
    3. Password : hello1234
  • Cacti Dashboard

※ 참고 URL : https://www.itzgeek.com/how-tos/linux/centos-how-tos/monitor-network-using-cacti-with-centos-7-rhel-7.html#Conclusion

'Mornitoring(모니터링)' 카테고리의 다른 글

smokeping (Centos7 설치 방법)  (0) 2022.06.23

+ Recent posts