분류 전체보기 139

[ELK Stack] 1. ELK 구축 및 실행

1. 테스트용 EC2 두 대 생성 ELK-WEB은 t4g.micro를 사용하였으며 ELK-Master는 t4g.large를 사용 ELK-WEB 에는 Filebeat와 Metricbeat를 설치하여 Apache log 및 시스템 metric data를 수집하도록 구성 ELK-Master에는 ELK(Elasticsearch, Logstash, Kibana)를 구성하여 web 서버의 data를 집계 및 시각화 2. java 설치 Elasticsearch 와 Logstash를 실행하기 위해서 반드시 자바 1.8 이상의 버전이 필요하다. $ sudo yum -y install java-1.8.0-openjdk-devel.aarch64 $ java -version openjdk version "1.8.0_282" ..

Monitoring 2021.07.30

Python 2to3 사용해보기

2to3란? Python은 버전에 따라 작성된 코드가 2.x버전에서 동작하고 3.x 버전에서는 동작하지 않는 경우가 발생한다. 이를 위해 Python에서는 2to3.py를 제공하여 2.x 버전의 소스코드가 3.x 버전에 호환되도록 변환해주는 소스를 기본으로 제공한다. Python 2.x 버전 용 스크립트 작성 및 테스트 우선 테스트를 위해 Python2.x에서만 동작하는 소스 코드를 아래와 같이 작성하고 C드라이브 최상위 경로에 저장한다. # C:\joon.py def joon(a): print u"Result :", a/2 num = raw_input("Input any number") joon(int(num)) 단순히 사용자가 입력한 숫자의 절반을 나눠 출력해주는 함수이다. 여기에서 print의 사용..

Python 2021.07.29

ELK Stack이란?

ELK Stack이란? ELK는 로그 및 데이터 분석도구로 Elasticsearch, Logstash, Kibana의 세 가지 오픈소스 프로젝트의 앞 글자 이니셜이다. Elasticsearch는 검색 및 분석 엔진이다. Logstash는 여러 소스로부터 데이터를 수집 및 변환하여 Elasticsearch와 같은 stash로 전송하는 서버 사이드 데이터 처리 파이프라인이다. kibana는 사용자가 수집된 데이터를 Elasticsearch에서 차트와 그래프를 사용하여 데이터를 시각화 해준다. ELK 솔루션에 Beats가 추가되면서 ELK Stack 이라고 불린다. Beats는 서버에 에이전트로 설치하여 다양한 유형의 데이터를 Elasticsearch 또는 Logstash로 전송하는 오픈 소스 데이터 발송자이..

Monitoring 2021.07.29

Vagrant와 Ansible을 활용한 부하 분산이 가능한 웹 서버 구성

1. 구성도 및 계획 1. Host PC에서 Vagrantfile을 작성하여 Ansible-Server 및 총 4대의 서버 프로비저닝 2. Host PC에서 httpd template을 작성하고 Ansible-Server를 프로비저닝하면서 해당 탬플릿을 실행하여 httpd 웹 서버를 자동으로 구성 3. Host PC에서 haproxy.yml을 작성하고 Ansible-Server를 프로비저닝하면서 해당 플레이북을 동작시켜 자동으로 haproxy 로드벨런서 구성 4. 192.168.1.11로 접속시 정상적으로 웹서버에 접근이 가능하며 web-server01과 web-server02에 Round-Robin 메커니즘으로 번갈아가면서 한 번씩 접속된다. 2. Vagrantfile 작성 # Vagrantfile V..

Ansible 2021.07.28

Bash Shell Programming(9)

본 글은 아래 영상을 통해 공부하고 작성했습니다. 제 글보다 영상 시청이 더 도움 될 것입니다. https://youtu.be/SChc2ye4gcg 산술연산 expr, let - expr 정수형 산술연산(+,-,*,/,%), 논리연산(|,&), 관계연산(=,!=,>,>=, /dev/null do echo "$username does not exist." echo -n "username to remove:" read username done sudo userdel -r $username # chmod u+x remove-user.sh 2. 작업 디렉토리를 입력 받아 해당 디렉토리에 파일의 수오 ㅏ디렉토리 수를 출력하는 프로그램을 작성하시오.

Ansible Role 및 galaxy 활용하기

Role 바로 사용이 가능하다. 원하는 작업을 검색하여 롤을 선택하고 해당 롤을 적용하여 시스템에 원하는 기능이 동작한다. 롤의 구조 handlers = 핸들러가 담기는 디렉터리 defaults = 디폴트 인자가 들어가는 디렉터리 vars = 인자가 정의되는 디렉터리 files = 배포될 파일들이 위치하는 디렉터리 template = 배포에 사용될 템플릿들이 들어가는 디렉터리 meta = 다른 롤과 의존성이 있는 경우에 해당 롤을 명시 tasks = 지금까지 진행했던 기본 테스크(task)를 넣는 공간 실습 nginx 설치 플레이북 # vi nginx_install_w_roles.yml --- - name: Install nginx on the nodes hosts: nodes become: yes ro..

Ansible 2021.07.25

Bash Shell Programming(8)

본 글은 아래 영상을 통해 공부하고 작성했습니다. 제 글보다 영상 시청이 더 도움 될 것입니다. https://youtu.be/hG9T3K00qiE exit 실행된 프로그램이 종료된 상태를 전달 0 : 프로그램 또는 명령이 성공으로 종료했음을 의미 1-255 : 프로그램 또는 명령이 실패로 종료했음을 의미 1 : 일반에러 2 : Syntax error 126 : 명령을 실행할 수 없음 127 : 명령이 존재하지 않음 128 : 종료 시그널 + N(kill -9 PID로ㅓ 종료시 128+9=137 이 된다.) $? : 종료 값 출력 test 비교연산자 test 또는 [ 명령어 ] 명령어 실행결과를 true(0) 또는 false(1)로 리턴한다. test 명령어는 다양한 연산자를 지원한다. 연산자 설명 x ..

Ansible Template 활용하기

https://www.inflearn.com/course/ansible-%EC%8B%AC%ED%99%94/lecture/10808?tab=curriculum&speed=1.25 [심화] 앤서블(Ansible)을 깊이 있게 활용하기 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com j2 = jinja2 파이썬에서 템플릿을 위해 정의된 엔진이다. 따라서, 파이썬으로 짜여진 Ansible 그리고 SaltStack에서 적극적으로 차용한다. {%...%} : 제어가 들어가는 라인 -> with_Item, when, if {{ ... }} : 표현식(문)이 들어가는 구문 -> {{ 변수 }} {#...#} : 주석 ..

Ansible 2021.07.24

Bash Shell Programming(7)

본 글은 아래 영상을 통해 공부하고 작성했습니다. 제 글보다 영상 시청이 더 도움 될 것입니다. https://youtu.be/jzcE4vCg1sU Input & Output 1. echo 화면에 텍스트를 출력하는 명령어 -n : 메시지 출력후 newline 문자를 추가하지 않는다. -e : backslash escape 문자를 해석하여 특별한 의미를 지정한다. \t(TAB키) \n(줄바꿈) \a(alert) 2. read Standard input으로 부터 텍스트를 입력받음 -n : 지정한 문자수만큼 입력 받는다. -t : 지정된 시간안에 입력 받는다. -s : silent mode로 입력하는 글자가 보이지 않는다. read 명령에서 변수 명 생략 시 기본 REPLY 변수에 채워진다. 3. printf..

Ansible Handler & Vars

https://www.inflearn.com/course/ansible-%EC%8B%AC%ED%99%94/lecture/10806?tab=curriculum&speed=1 [심화] 앤서블(Ansible)을 깊이 있게 활용하기 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 1. 핸들러란? 핸들러는 파일이 정상적으로 전송된 것을 확인하고 nginx 서비스를 재시작한다. 만약 파일이 정상적으로 전송되지 않으면 동작하지 않게 된다. 따라서 불필요한 작업을 줄일 수 있게 된다. 또한 변경사항을 감지하여 변경사항이 발생한 것에 대해서만 핸들러가 동작하게 된다. 변경사항이 없으면 실행되지 않아 불필요한 작업을 줄이..

Ansible 2021.07.23