전체 글 402

[Zabbix 4.4] 자빅스 Swap 사용률 아이템/트리거 설정 방법 (zabbix swap usage key, zabbix swap trigger)

자빅스 Swap 사용률 아이템/트리거 설정 방법 (zabbix swap usage key, zabbix swap trigger) 자빅스 4.4 버전에서는 기본 템플릿에 swap 여유공간, 총 swap 공간은 있지만 swap 사용률은 설정되어있지 않는걸로 보입니다. (저가 못찾은것일수도 있어요) Zabbix swap usage key swap 사용량 아이템 키는 아래와 같이 system.swap.size[,pused] 입니다. 퍼센테이지로 보기위해 Units에 %를 넣어주시면 item 설정은 간단히 끝납니다. 자빅스에서 제공해주는 키이기 때문에 따로 더 설정해주어야 하는것은 없습니다. Zabbix swap trigger 아래는 swap의 사용률이 80% 이상일 경우 알람이 발생하도록 트리거 설정한 사진 입..

Monitoring/Zabbix 2020.06.04

[Bash Shell Script] 쉘 스크립트 일부 문자열 비교하기

쉘 스크립트 일부 문자열 비교하기 쉘 스크립트에서 일부 문자열을 비교하는 방법에는 여러가지가 있겠지만, 저같은 경우 =~ 를 사용합니다. 아래 코드와 같이 if문 안에 =~ 를 사용하여 비교할 수 있는데, 아래 코드는 $test_string이라는 변수 안에 a 라는 문자열이 있을 경우 good을 출력하는 간단한 코드 입니다. 단, =~ 를 사용할 시 if [ 조건식 ] ; 이 아니라, if [[ 조건식 ]]; 을 사용하여야 에러가 발생하지 않습니다. #!/bin/bash test_string="a b c d e f g" if [[ "$test_string" =~ "a" ]]; then echo "good!" fi

[Docker] 도커파일 Apache-Tomcat 망분리 구축 및 Zabbix-Agent 설치 간단 예제 (Apache Dockerfile, Tomcat Dockerfile, Zabbix-agent Dockerfile)

도커 Apache-Tomcat 망분리 구축 및 Zabbix-Agent 설치 코드 (Apache Dockerfile, Tomcat Dockerfile, Zabbix-agent Dockerfile) 기존에 올렸던 포스팅(https://nirsa.tistory.com/132?category=876464)을 도커파일로 변환시켜서 사용하는 예제 입니다. 셋팅자체는 위의 포스팅과 거의 똑같고 서버 IP 등의 정보는 변경해서 사용하시면 됩니다. 기본적으로 연결하기 위한 간단한 설정만 적용된 apache, zabbix-agent 두가지 Dockerfile을 만든 후 docker-compose를 사용하여 실행 했습니다. 간단히 작성된것이므로 볼륨등을 추가적으로 설정 후 사용하시는게 좋습니다. 만약, 소스코드를 따로 설정..

Container/Docker 2020.05.29

[ModSecurity 2.9] Apache + ModSecurity OWASP 룰셋 적용 (IDS, ModSecurity SQL Injection, modsecurity detection mode)

APache + ModSeucirty OWASP 룰셋 적용 (IDS, ModSecurity SQL Injection, modsecurity detection mode) 룰셋 적용 후 차단하는 방식(IPS)가 아니라, 탐지된 내용을 로깅만 하는 방식(IDS)으로 구성 합니다. 룰셋 적용 자체에 큰 어려움은 없기에 하나하나 자세히 설명하기보다는 코드블럭에 주석처리로 간단히 설명만 해두었습니다. 적용 이후에 공격을 시도하면 /var/log/httpd/modsec.log 파일에서 공격이 탐지되는것을 확인할 수 있습니다. ## OWASP 룰셋 설치 cd /etc/http git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git mkdir /etc/htt..

[Zabbix 4.4] 자빅스 유저 파라메타를 이용한 HTTP 응답 시간 모니터링 (zabbix http response time monitoring)

자빅스 유저 파라메타를 이용한 HTTP 응답 시간 모니터링 (zabbix http response time monitoring) 유저 파라메타를 이용해 HTTP 응답 시간을 모니터링할 수 있습니다. /etc/zabbix/zabbix_agentd.conf 파일에서 UnsafeUserParameters, UserParameter를 통해 유저 파라메타로 값을 가져와 아이템을 만들어 모니터링할 수 있습니다. UnsafeUserParameters=0 : 0은 유저 파라메타를 사용하지 않는다는 옵션이고 디폴트로 되어 있기 때문에 1로 변경하여 유저 파라메타를 사용하도록 해야 합니다. UserParameter : 이것을 통해 리눅스의 특정 명령어의 결과값을 item key 값으로 사용할 수 있습니다. 위와 같이 입력..

Monitoring/Zabbix 2020.05.28

[Zabbix 4.4] 자빅스 글로벌 변수 사용 방법 (zabbix global regular expression)

자빅스 글로벌 변수 사용 방법 (zabbix global regular expression) 키값 등으로 자주 사용되거나 내용이 긴것들은 글로벌 변수로 저장하고 사용할 수 있습니다. 1) Administration → General 2) 우측 상단에 기본적으로 GUI로 잡혀 있을텐데, 클릭한 후 Regular expreesions를 선택 합니다. 기본적으로 아래 이미지와 같은, 자빅스 기본 템플릿 등에서 사용되는 변수들이 저장되어 있습니다. 글로벌 변수를 만들기 위해 우측 상단의 New regular expression을 클릭 해주세요. 문자열을 포함하거나 TRUE/FALSE로 결과값을 전달시켜주는 기능도 있으며, 정규 표현식도 지원해 줍니다. 저는 nirsa 또는 tistory 또는 system 이라는..

Monitoring/Zabbix 2020.05.28

[Zabbix 4.4] 자빅스 웹 시나리오를 사용하여 HTTP 모니터링 하는 방법 (응답 시간, 응답 코드, 마지막 에러 메세지, 실패 개수, 다운로드 속도, zabbix web scenario, zabbix http monitoring, zabbix http response time..

자빅스 웹 시나리오를 사용하여 HTTP 모니터링 하는 방법 (zabbix web scenario, zabbix http monitoring) 1) 템플릿을 생성하거나, 웹 시나리오를 사용할 호스트로 진입한 후 Web scenarios를 클릭 합니다. 2) 우측 상단의 Create web scenario를 클릭합니다. 3) 웹 시나리오 이름을 정하고, 어플리케이션을 미리 만들어둔것이 없다면 New application에 생성할 어플리케이션의 이름을 작성 합니다. 4) 좌측 상단의 Steps를 클릭 후 Add를 눌러 스탭을 추가할 준비를 해주세요. 5) Name은 Setp의 이름이고, URL를 실제로 체크할 웹페이지의 주소 입니다. 가장 아래의 Required status codes는 어떤 응답 코드를 받앗..

Monitoring/Zabbix 2020.05.28

[CentOS7] 리눅스 history 날짜/시간 적용 방법

리눅스 history 날짜/시간 적용 방법 history에 날짜/시간을 적용하는 방법 자체도 매우 쉽고, 사용 하다보면 history에 날짜/시간이 적용되지 않아 history를 추적하기 힘든 상황이 발생할 수 있기 때문에 되도록 history에는 날짜와 시간을 적용하여 사용하는것이 좋습니다. 아래와 같이 /etc/profile 파일을 vi 편집기로 열은 후 맨 마지막 줄에 HISTTIMEFORMAT="[%Y-%m-%d_%H:%M:%S] " 를 넣어주면 끝 입니다. vi /etc/profile # 맨 마지막 줄로 이동하여 아래 내용 기입 HISTTIMEFORMAT="[%Y-%m-%d_%H:%M:%S] " :wq 또는 아래와 같이 한줄로 간단하게 적용할 수 있습니다. echo "HISTTIMEFORMAT=..

[Bash Shell Script] zabbix-agent 자동 설치 쉘 스크립트

zabbix-agent 설치 쉘 스크립트 version.1 쉘 스크립트를 실행할 때 인자값을 주어 실행하는 방식 입니다. sh [스크립트명] [자빅스 서버 IP] [firewalld 설정 여부] 와 같이 실행하시면 되고 firewalld 설정을 원한다면 set-firewalld를, 원하지 않는다면 두번째 인자값은 공백으로 두어도 무관 합니다. ex1) /root/zbx-agent-install.sh 에 코드를 저장 하였고, 자빅스 서버의 IP가 192.168.0.1, firewalld 설정을 할 경우 --> sh /root/zbx-agent-install.sh 192.168.0.1 set-firewalld ex2) /etc/zbx-agent-install.sh 에 코드를 저장 하였고, 자빅스 서버의 IP..

[CentOS7] 리눅스 LVM 디스크 증설 방법 (리눅스 디스크 용량 늘리기)

리눅스 LVM 디스크 증설 방법 (리눅스 디스크 용량 늘리기) 추가한 디스크(/dev/sdb) 확인 fdisk -l | grep "/dev/sd" pv 확인 후 pvcreate /dev/sdb 명령어를 사용하여 추가한 디스크(/dev/sdb)를 볼륨 그룹에 추가 합니다. 이후 vgextend centos /dev/sdb를 입력하여 VG에 추가 합니다. 아래 이미지와 같이 VG centos가 추가 되어야 합니다. lvscan 명령어를 통해 용량을 확장시킬 디바이스 경로를 확인 합니다. 아래 명령어를 통해 용량을 확장 시킵니다. (+100%FREE는 사용 가능한 모든 공간을 사용하여 증설 시킵니다) lvextend -l +100%FREE -n [위에서 확인한 디바이스 경로] 마지막으로 df -Th 명령어를 ..