사용자 계정 확인

전체 사용자 계정 확인

cat /etc/passwd

 

useradd를 이용해 등록된 사용자만 보기

grep /bin/bash /etc/passwd

 

사용자 계정 설명

adm

시스템 관리자를 위한 별도의 계정

 

lp

로컬 프린터 서버 계정

 

sync

원격지 서버 동기화 계정

 

shutdown

시스템 종료 계정

 

halt

강제 시스템 종료 계정

 

news

뉴스그룹 서버용 계정

 

uucp

유닉스 시스템과 파일 복사를 위한 프로토콜 계정

 

operator

특수목적용 계정으로, 시스템 백업 등 여러 사용자가 시스템을 공통 관리하기 위해 사용되는 계정

 

games

X11(X윈도우) 화면에서 게임을 할 때 사용하는 계정

 

avahi-autoipd

DNS 관련된 계정

avahi-autoipd is a service provided by the Avahi daemon on Linux, which implements network services discovery using the mDNS/DNS-SD (Multicast DNS / DNS Service Discovery) protocol. Specifically, avahi-autoipd is responsible for assigning an Automatic Private IP Addressing (APIPA) address to a network interface when it cannot obtain an IP address from a DHCP server.

 

avahi-autoipd is part of the Avahi service on Linux systems and is responsible for assigning link-local IP addresses (APIPA addresses) when a DHCP server is unavailable. It helps maintain basic network connectivity on local networks and is part of the broader Zero Configuration Networking (zeroconf) system.

 

tss

암호화 키 생성, 플랫폼 무결성 검증과 관련된 TPM 소프트웨어 스택 관리용 계정

The tss user on a Linux system is a system user created to manage the Trusted Platform Module (TPM) software stack. TPM is a hardware component that provides secure generation and storage of cryptographic keys, as well as platform integrity verification.

The tss user is associated with the TrouSerS software (or other TPM-related software), which is the open-source implementation of the TPM Software Stack (TSS). This user is created to run the TPM-related services with minimal privileges for security purposes.

 

The tss user in Linux is a system account created to manage the TPM Software Stack (TSS) and run TPM-related services, ensuring secure interactions with the Trusted Platform Module (TPM). It provides essential security features for cryptography, encryption, and platform integrity in systems with TPM hardware.

 

postfix

메일 전송 관련 계정

The postfix user on a Linux system is a system account created for the Postfix mail transfer agent (MTA). Postfix is a widely used open-source software for routing and delivering email. It’s designed to be secure, fast, and easy to configure, often serving as a replacement for the older Sendmail MTA.

The postfix user is used to run Postfix services and processes with minimal privileges, adhering to the principle of least privilege to enhance security.

 

The postfix user on Linux is a system account created to run the Postfix mail transfer agent (MTA). It ensures that Postfix's email processing tasks are handled securely by limiting privileges, as most Postfix processes run under the postfix user instead of root. This helps enhance the security of the mail server and minimizes the risk of exploitation.

 

saslauth

인증 관련 계정

The saslauth user on a Linux system is a system account associated with the Cyrus SASL (Simple Authentication and Security Layer) authentication library. SASL is a framework that provides authentication and data security services for network protocols such as SMTP, IMAP, and LDAP.

The saslauth user is created to run the SASL authentication daemon (saslauthd), which handles authentication requests from various services and applications. This system account ensures that the saslauthd service runs with minimal privileges, adhering to security best practices.

 

The saslauth user on Linux is a system account used to run the SASL authentication daemon (saslauthd), which provides secure user authentication for various services like email, LDAP, and others. The saslauth user ensures that the saslauthd process runs with minimal privileges, enhancing the overall security of the system by reducing potential attack surfaces.

 

polkitd

시스템 전체 권한 관리용 계정

The polkitd user on a Linux system is a system account used by Polkit (formerly known as PolicyKit), which is a framework for managing system-wide privileges. Polkit is commonly used to handle authorization for actions that require elevated privileges (such as running administrative tasks) in a controlled and secure manner.

 

The polkitd user in Linux is a system account used to run the Polkit daemon (polkitd), which is responsible for managing and making authorization decisions on privileged system actions. By running Polkit with minimal privileges under the polkitd user, the system enhances security while allowing non-root users to perform administrative tasks based on defined policies.

 

nobody

최소 권한이 필요한 프로세스용 계정

The nobody user on a Linux system is a system account used for processes that do not require ownership by a specific user or for which minimal privileges are necessary. This account is commonly used to run services and processes that don’t need access to any critical system resources or files. By running these services under the nobody user, the system limits their access, improving security.

 

The nobody user on Linux is a non-privileged system account used to run processes with minimal system access. It provides an extra layer of security by ensuring that services that don’t need high privileges can only interact with limited parts of the system. This user is commonly used for network-facing services, daemons, or temporary file ownership, and it operates with the least possible permissions to reduce security risks.

 

named

DNS 서버용 계정

The named user on a Linux system is a system account created for running the BIND (Berkeley Internet Name Domain) service, which is one of the most common DNS (Domain Name System) server software packages. The BIND DNS server (often called named, short for name daemon) translates domain names into IP addresses and vice versa.

The named user ensures that the DNS server runs with limited privileges, adhering to the principle of least privilege, which enhances security by minimizing the potential damage that could occur if the DNS service were compromised.

 

The named user on Linux is a system account created to run the BIND DNS server daemon (named) with limited privileges. This enhances the security of the system by ensuring that the DNS service, which is often exposed to the internet, cannot access or modify sensitive files. BIND is one of the most widely used DNS server software packages, and running it under the named user follows the principle of least privilege to reduce security risks.:

DB 포트 변경

기본 DB 포트가 아닌, 다른 포트로 변경하는게 보안상 더 안전하다.

(포트 변경 후, 외부에서 포트로 접속 하려면 해당 포트 방화벽에서 열어주어야 함)

 

1. 서버 접속 후 db 설정파일 열기

vi /etc/my.cnf.d/server.cnf

 

2. 다음 설정 파일에서 [mysql] 섹션 바로 아래에 port 변경

[mysqld]

port=바꿀 포트 번호

 

3. 포트번호 변경 후 저장하고 mariadb 재기동

systemctl restart mariadb

 

4. mariadb 실행중 포트 확인

netstat -tnlp

 

DB 루트 패스워드 변경

기본 루트 패스워드 쓰지 말고, 복잡한 패스워드로 바꾼다.

 

1. DB 접속

mysql -u root -p

 

2. 패스워드 업데이트

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');

 

3. 권한 flush

FLUSH PRIVILEGES;

 

4. 패스워드 포맷 확인

USE mysql; SELECT Host, User, Password FROM user WHERE User = 'root';

 

사용자 계정 생성 & 권한 설정

root계정은 외부 접속 못하게 한다. 사용자 계정도 가급적 내부 접속만 허용하게 한다.

 

1. 사용자 생성

# create user '계정'@'접속위치' identified by '패스워드';

ex) create user 'test'@'127.0.0.1' identified by 'Password'; -- 내부접속만 허용

ex) create user 'test2'@'%' identified by 'Password'; -- 외부접속 허용

 

2. 권한 주기

전체 권한 부여 (접속 위치에 %는 쓰지 말도록 하자. 가급적 localhost만 쓰거나, ip를 특정하는 것이 좋다.)

grant all privileges on DB이름.테이블 to '계정'@'접속위치';

ex) grant all privileges on testDB.* to 'test2'@'%';

ex) grant all privileges on testDB.* to 'test2'@'localhost';

 

usage (삭제하면 로그인조차 안됨) 권한 부여, 삭제

usage 권한 부여

mysql> GRANT USAGE ON *.* TO USER_NAME@HOST IDENTIFIED BY 'USER_NAME';

 

usage 권한 삭제

mysql> REVOKE USAGE ON *.* FROM USER_NAME@HOST;

 

3. 권한 적용

flush privileges;

 

4. 권한 확인

show grants for '계정'@'접속위치';

 

외부접속 허용제거

가급적 모든 아이디의 외부 접속을 막고, 꼭 필요하다면 아이피를 특정하여 외부 접속을 허용한다.

 

% 모든아이피 허용제거
mysql> DELETE FROM mysql.user WHERE Host=’%’ AND User=’아이디’;

 

특정ip허용 제거
mysql> DELETE FROM mysql.user WHERE Host=’111.111.111.111′ AND User=’아이디’;

 

설정적용
mysql> FLUSH privileges;

 

사용자 확인

select host, user, password from mysql.user;

 

DB 백업/복구, 자동백업(crontab)

해킹을 대비하여, 매일 DB 백업을 하도록 설정한다.

- crontab에 db 백업 스크립트 등록하여, 자동으로 백업하도록 설정

- 백업 파일이 쌓이면 디스크 full 날 수 있으므로, 특정 주기로 예전 백업은 삭제하도록 설정

https://foxydog.tistory.com/94

 

 

 

 

참고

https://tipland.tistory.com/47 

https://da-new.tistory.com/237

https://blog.servis.co.kr/index.php/2019/06/28/mysql-not-allowed-to-connect/

https://grmn.tistory.com/7

 

 

1. OPcache 정보 보기

<?php
$status = opcache_get_status();
echo json_encode($status, JSON_PRETTY_PRINT);
?>

 

 

2. 항목 설명

The opcache_get_status function in PHP returns an associative array containing information about the current status of the OPcache (Opcode Cache). Each key in the array represents a different aspect of the OPcache status. Here are some common items that you might find in the opcache_get_status results:

  1. opcache_enabled:
    • Description: Indicates whether OPcache is enabled or not.
    • Possible Values: true if enabled, false if disabled.
  2. cache_full:
    • Description: Indicates whether the OPcache shared memory is full.
    • Possible Values: true if the shared memory is full, false otherwise.
  3. restart_pending:
    • Description: Indicates whether a restart of the OPcache is pending.
    • Possible Values: true if a restart is pending, false otherwise.
  4. restart_in_progress:
    • Description: Indicates whether a restart of the OPcache is currently in progress.
    • Possible Values: true if a restart is in progress, false otherwise.
  5. memory_usage:
    • Description: Provides information about memory usage in the OPcache (unit : bytes).
    • Items:
      • used_memory: Amount of memory used by the OPcache.
      • free_memory: Amount of free memory in the OPcache.
      • wasted_memory: Amount of memory wasted by fragmentation.
  6. interned_strings_usage:
    • Description: Information about interned strings, which are unique string values stored in a single memory location to reduce duplication.
    • Items:
      • buffer_size: Size of the interned strings buffer.
      • used_memory: Amount of memory used by interned strings.
      • free_memory: Amount of free memory in the interned strings buffer.
      • number_of_strings: Number of interned strings.
  7. opcache_statistics:
    • Description: Provides statistical information about the OPcache.
    • Items:
      • num_cached_scripts: Number of scripts cached by OPcache.
      • num_cached_keys: Number of cache keys (unique script identifiers).
      • max_cached_keys: Maximum number of cache keys allowed.
      • hits: Number of cache hits.
      • misses: Number of cache misses.
      • blacklist_misses: Number of blacklist misses (scripts excluded from caching).
      • blacklist_miss_ratio: Ratio of blacklist misses to total cache misses.
      • opcache_hit_rate: Ratio of cache hits to total access attempts.

These are some of the common items you might find in the opcache_get_status results. The exact list may vary depending on your PHP version and configuration. Always refer to the PHP documentation for the specific version you are using for the most accurate and up-to-date information.

'개발 > PHP' 카테고리의 다른 글

[PHP] PHP의 철학  (0) 2024.02.22
[PHP] Composer 사용법  (0) 2023.08.08
PHP opcache 적용  (0) 2023.02.20
[PHP] PHP-FPM 적용하기 (Centos7)  (0) 2023.02.17
[PHP] 윈도우에서 php 7.4로 업그레이드 및 VScode 디버깅 설정  (0) 2023.02.07

by ChatGPT

1. 실용성

PHP는 실용적이고 접근 가능한 스크립팅 언어로 설계되었습니다. 사용 편의성과 빠른 개발을 우선시하므로 웹 개발에 널리 사용됩니다. 구문은 상대적으로 간단하고 관대하므로 개발자는 복잡성을 최소화하면서 작업을 수행할 수 있습니다.


2. 웹 중심

PHP는 원래 웹 개발용으로 설계되었으며 동적 웹 페이지를 만드는 데 탁월합니다. 주요 사용 사례는 HTML 콘텐츠를 동적으로 생성하는 서버 측 스크립팅이며 웹 서버와 원활하게 통합됩니다.


3. 아무것도 공유하지 않는 아키텍처

앞서 언급했듯이 PHP는 각 요청이 독립적이고 요청 간에 공유 상태가 없는 비공유 아키텍처를 따릅니다. 이 접근 방식은 개발 모델을 단순화하고 더 나은 확장성을 지원합니다.

 

4. 오픈 소스 및 커뮤니티 중심

PHP는 오픈 소스이며 개발은 커뮤니티 기여에 크게 의존합니다. PHP 커뮤니티는 개발자들이 토론, 버그 보고, 확장 기능 및 프레임워크 생성을 통해 언어 성장에 적극적으로 기여하는 협업 정신으로 잘 알려져 있습니다.

 

5. 유연성

PHP는 유연성으로 유명합니다. 절차적 프로그래밍 패러다임과 객체 지향 프로그래밍 패러다임을 모두 지원하므로 개발자는 자신의 요구에 가장 적합한 스타일을 선택할 수 있습니다. 이러한 유연성 덕분에 PHP는 다양한 프로젝트에서 널리 채택되고 사용됩니다.

 

6. 상호 운용성

PHP는 다양한 데이터베이스, 웹 서버 및 외부 라이브러리와 쉽게 통합될 수 있습니다. 데이터베이스와의 상호 작용을 광범위하게 지원하므로 데이터베이스 기반 웹 애플리케이션에 대한 일반적인 선택입니다.

 

7. 진화와 적응성

PHP는 초기부터 정기적인 릴리스를 통해 새로운 기능, 개선 사항 및 성능 향상이 도입되면서 크게 발전해 왔습니다. 언어는 변화하는 웹 개발 동향과 표준에 적응해 왔습니다.

 

8. 순수함보다 실용주의

PHP는 프로그래밍 원칙을 엄격히 준수하는 것보다 실용적인 솔루션을 우선시하는 경우가 많습니다. 이러한 실용주의는 신속한 개발과 배포가 중요한 웹 개발 분야에서 인기를 얻는 데 기여했습니다.

'개발 > PHP' 카테고리의 다른 글

[PHP] OPcache 정보 보기  (0) 2024.02.24
[PHP] Composer 사용법  (0) 2023.08.08
PHP opcache 적용  (0) 2023.02.20
[PHP] PHP-FPM 적용하기 (Centos7)  (0) 2023.02.17
[PHP] 윈도우에서 php 7.4로 업그레이드 및 VScode 디버깅 설정  (0) 2023.02.07

프로세스(Process)란

컴퓨팅에서 프로세스는 하나 이상의 스레드에 의해 실행되는 컴퓨터 프로그램의 인스턴스입니다. (운영체제로부터 메모리/CPU 등의 자원을 할당받는 작업의 단위입니다.)

프로세스는 프로그램 코드, 할당된 시스템 리소스, 물리적 및 논리적 액세스 권한, 실행 활동을 시작, 제어 및 조정하는 데이터 구조를 포함합니다. 프로세스는 최소한 하나의 스레드를 포함하며, OS에 따라 명령을 동시에 실행하는 여러 실행 스레드로 구성될 수 있습니다.

프로그램과의 차이

컴퓨터 프로그램은 일반적으로 디스크의 파일에 저장된 명령의 수동적 모음인 반면, 프로세스는 디스크에서 메모리로 로드된 후 해당 명령을 실행하는 것입니다. 여러 프로세스가 동일한 프로그램과 연관될 수 있습니다. 예를 들어, 동일한 프로그램의 여러 인스턴스를 열면 둘 이상의 프로세스가 실행되는 경우가 많습니다.

프로세스 끼리는 자원을 공유하지 않습니다.

각 프로세스는 자신만의 고유한 메모리와 자원을 할당받아 사용하기에, 타 프로세스와는 자원을 공유하지 않습니다.

이에 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 합니다.

프로세스의 문제점은?

- 프로세스 생성에 큰 오버헤드가 있음 ( 프로세스를 생성할때 많은 시간이 소요됨)

- 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가 큼

- 프로세스 사이에 통신이 어렵다는점 (IPC사용해야함)

 

Process (computing) - Wikipedia

From Wikipedia, the free encyclopedia Particular execution of a computer program Program vs. Process vs. Thread Scheduling, Preemption, Context Switching In computing, a process is the instance of a computer program that is being executed by one or many th

en.wikipedia.org

 

 

스레드(Thread)란

컴퓨터 과학에서 실행 스레드는 일반적으로 운영 체제의 일부인 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령의 가장 작은 시퀀스입니다. (운영체제로부터 할당 받은 자원을 이용하는 실행 단위입니다.)

스레드는 부모 프로세스의 자원을 공유합니다.

스레드는 스택만 따로 할당받고 / 코드, 데이터, 힙 메모리는 공유합니다. 이에 스레드간 자원 공유가 쉽고, 메모리 사용이 훨씬 효율적이게 됩니다.

단, 이로 인해 공유 자원의 동기화 문제가 발생합니다. (한 스레드가 공유 자원을 변경하면, 다른 모든 스레드도 변경된 값을 사용하게 됨)

스레드의 출현 목적은?

- 프로세스보다 크기가 작은 실행 단위 필요

- 프로세스의 생성 및 소멸에 따른 오버헤드 감소

- 빠른 컨텍스트 스위칭

- 프로세스들의 통신 시간, 방법 어려움 해소

 

 

Thread (computing) - Wikipedia

From Wikipedia, the free encyclopedia Smallest sequence of programmed instructions that can be managed independently by a scheduler A process with two threads of execution, running on one processor Program vs. Process vs. Thread Scheduling, Preemption, Con

en.wikipedia.org

 

 

참고

https://zeroco.tistory.com/75

https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

JMeter란

성능 테스트와 측정을 위한 오픈소스 소프트웨어로, 100% 자바로 개발됨

The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

 

1. 사전 준비

Java Runtime 먼저 설치하기. Java가 없다면? jar 파일 실행 못함.

https://www.java.com/en/download/manual.jsp

 

2.  JMeter 설치하기

아래 링크 접속 후, Binaries에서 zip 파일 다운받아 압축 풀기

https://jmeter.apache.org/download_jmeter.cgi

 

3. JMeter 실행하기

압축 푼 폴더의 bin 폴더 안에 들어가서, 콘솔 창에 아래 명령어 입력하여 ApacheJMeter.jar 실행하기

: 콘솔 프로그램은 java.exe -jar [파일명.jar] 로 실행하고, GUI 프로그램은 javaw.exe -jar [파일명.jar]로 실행함

javaw.exe -jar ApacheJMeter.jar

 

 

 

 

 

 

 

 

웹 서버 (Web server) 란

하드웨어 측면과 소프트웨어 측면에서 정의 가능합니다.

1. 하드웨어 측면에서는,

웹 서버 소프트웨어와, 웹사이트를 구성하는 파일들(예를 들어 HTML 문서, 이미지, CSS, JavaScript 파일 등)을 저장하고 있는 컴퓨터입니다.

2. 소프트웨어 측면에서는,

HTTP 서버입니다. HTTP 서버는 URL(웹 주소)와 HTTP 프로토콜을 이해하는 소프트웨어입니다. HTTP 서버는 도메인 네임을 통해 접속 가능하며, 요청된 URL에 해당하는 호스팅된 웹사이트의 컨텐츠를 최종 사용자의 장치에 전달합니다.

 

웹 서버 역할

  • HTTP 통신: HTTP 통신을 통해 사용자와 서버간 데이터 교류
  • 정적 데이터 제공: HTTP 프로토콜을 통해 정적 콘텐츠를 클라이언트에게 제공
  • 로깅: 보안 및 통계 목적으로 로그파일에 클라이언트의 요청 및 서버 응답 정보 로깅
  • 가상호스팅: 하나의 IP주소를 사용해 많은 웹사이트(DNS)를 제공 가능
  • 권한 부여: 웹 리소스 일부에 대해 접근 제어 가능
  • 캐싱: 서버 응답 속도를 높이기 위해 정적 및 동적 컨텐츠 캐시 가능
    • 정적 데이터는 파일을 복사한 후 캐시서버에 저장해뒀다 사용
    • 동적 데이터는 요청에 대한 결과를 짧은 시간동안 캐시했다가 사용
  • 대역폭 조절: 네트워크 포화를 방지하고 서버 다운을 방지하기 위해 응답 속도 제한

 

웹 서버의 종류

Apache, NGINX, IIS, Google Web Server, CloudFlare 등.. 다양한 종류가 있습니다. 전통적으로 Apache와 IIS가 강자였는데, 2019년 이후로는 Nginx가 Apache, IIS보다 점유율이 향상되는 등 꾸준히 업데이트를 진행하며 발전중에 있습니다.

 

Apache

무료 오픈소스 크로스플랫폼 웹 서버 소프트웨어입니다.

  • 프로세스 기반 접근 방식으로 하나의 스레드가 하나의 요청을 처리하는 구조
  • 매 요청마다 스레드를 생성 및 할당해야 하기 때문에 리소스를 많이 잡아먹음

 

NGINX

아파치의 C10K (Connection 10000 Problem) 문제를 해결하기 위해 만든 웹 서버 소프트웨어 입니다.

  • 이벤트 중심 접근 방식으로 하나의 스레드 내에서 여러 요청을 처리하는 구조
  • 비동기 Event-Driven 구조 : Event Handler에서 비동기 방식으로 먼저 처리되는 요청을 진행 
  • 코어 모듈이 Apache보다 적은 리소스로도 많은 트래픽을 효율적으로 처리 가능
C10K 문제란,
서버 트래픽량이 높아져서 서버에 동시 연결된 커넥션이 많아졌을 때 더 이상 커넥션을 형성하지 못하는 문제.

아파치에서는 커넥션마다 프로세스를 할당 하기에, 동시 연결된 커넥션이 10000개인 경우, 10000개의 프로세스가 할당되어야 하고, 프로세스마다 1M의 메모리를 사용한다면 10000M의 메모리 = 약 9.76G의 메모리가 필요해지는 등 메모리 부족 현상이 나타나 커넥션을 연결할 수 없는 문제가 발생함.

이러한 구조적 문제를 해결하기 위해 적은 메모리와 프로세스로 대량의 동시 연결을 처리할 수 있는 비동기 이벤트 기반 구조의 NGINX 서버를 개발함.

 

어떤 서버를 사용할까?

.htacess 파일을 활용하거나 NGINX에게 없는 핵심 모듈을 사용할 경우 Apache를 사용하며, 빠른 정적 컨텐츠를 처리하고 싶고 대용량 트래픽을 처리하는 웹 사이트인 경우는 NGINX를 사용하면 됩니다.

 

또한, 두 서버를 함께 사용해도 된다. Apache 앞단에 NGINX를 프록시 서버로 활용할 수 있습니다.

  • NGINX에서 동시 커넥션 유지를 해주고 + static 리소스를 바로 제공해주면서, 동적 리소스가 필요한 요청만 Apache로 보낼 수 있음
  • NGINX와 Apache가 같은 네트워크 안에 있는 경우, NGINX의 SSL 터미네이션 기능 활용이 가능. 클라이언트와 NGINX서버까지는 https 통신을 하고, NGINX와 Apache 사이에는 http 통신을 함으로써 Apache 서버가 복호화 과정을 감당하지 않도록 하여 부하를 줄임

 

참고

https://daram.tistory.com/532

https://bentist.tistory.com/80

https://ssdragon.tistory.com/60

https://sorjfkrh5078.tistory.com/289

https://idchowto.com/web-server-program-apache-vs-nginx/

https://jungyu09.tistory.com/12

https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_web_server

goaccess

오픈 소스로된 실시간 웹 로그 분석기

GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

 

1. 설치

1-1. 소스 다운받아서 수동 설치

https://goaccess.io/download

$ wget https://tar.goaccess.io/goaccess-1.9.1.tar.gz
$ tar -xzvf goaccess-1.9.1.tar.gz
$ cd goaccess-1.9.1/
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
$ make install

 

1-2. 패키지 매니저로 설치

패키지 매니저로 설치 시, 최신버전 설치가 안될 수 있음. 최신버전 설치를 위해서는 소스 다운받아서 수동 설치하기

CentOS

$ yum install goaccess

 

 

2. 실행

https://goaccess.io/get-started

2-1. 터미널 Output

1) goaccess 실행

goaccess /var/log/httpd/access.log -c

 

2) 로그 포맷 선택 화면이 나옴. 화살표로 본인에게 맞는 설정으로 이동 후, 스페이스바 눌러 선택 (내 경우는 맨 처음 나오는 NCSA Combined Log Format 선택) 

 

3) 로그 포맷이 다르면, 해당 메뉴로 이동하여 수정

 

4) 엔터 누르면 goaccess 실행됨

 

5) 내용 살펴보기

- 위/아래 화살표로 화면 이동

- 원하는 메뉴 자세히 보고 싶으면 해당 숫자 누름

- 해당 메뉴에서 다음 페이지 정보 보고 싶으면 Page Up/Down 버튼 누름

- 해당 메뉴에서 빠져 나오려면 q

2-2. Static HTML Output

goaccess /var/log/httpd/access.log -o report.html --log-format=COMBINED

 

2-3. Real-Time HTML Output

goaccess /var/log/httpd/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html

 

 

 

참고

로그 툴 모음 : https://www.oss.kr/info_techtip/show/93661cc3-1f20-413e-b80c-c80164342b9b?page=6

https://m.blog.naver.com/jogilsang/222123572581

 

 

'서버,데스크탑 > Apache' 카테고리의 다른 글

웹 서버(Web Server)란  (0) 2024.02.16

+ Recent posts