본문 바로가기

분류 전체보기

(312)
9. Elasticsearch 상태 정보 보기(cluster, shard, index, node) Cluster Health 체크curl -u : -XGET 127.0.0.1:9200/_cluster/health?pretty{ "cluster_name" : "elasticsearch", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 314, "active_shards" : 314, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 295, "delayed_unassigned_shards" : 0, "number_of_pending_ta..
8. Windows Sysmon + Winlogbeat + logstash 1. sysmon Download : https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon Sysmon - Windows Sysinternals Monitors and reports key system activity via the Windows event log. docs.microsoft.com 2. sysmon config file : https://github.com/SwiftOnSecurity/sysmon-config GitHub - SwiftOnSecurity/sysmon-config: Sysmon configuration file template with default high-quality event tracing Sysmon co..
7. Elastalert 1. 설치하기 전에 - ELK에서 제공하는 x_pack을 이용한 경보 알람 기능은 유료이며 UI로 구현은 되지 않지만 무료로 여러 필터기능을 사용할 수 있는 elastalert를 이용 2. 설치 # 필수 패키지 설치 [root@localhost]# yum install python3 python3-pip gcc gcc-c++ gcc-cpp python3-devel # pip upgrade [root@localhost]# pip3 install --upgrade pip # 설치 진행 [root@localhost]# pip3 install "setuptools>=11.3" python setup.py install [root@localhost]# pip3 install elastalert or git clo..
ubuntu12.04 paramiko module 수동 설치 1. 상황 - 노후화된 우분투(12.04) 시스템에 네트워크가 안되는 상황 - 즉 apt-get update 나 pip를 사용할 수 없어 수동으로 다운받은 패키시(의존성 패키지 포함)를 설치 할 수 밖에 없는 경우 2. 설치 - paramiko는 1.18버전 사용 : 다운로드 https://github.com/paramiko/paramiko/tree/1.18 GitHub - paramiko/paramiko: The leading native Python SSHv2 protocol library. The leading native Python SSHv2 protocol library. Contribute to paramiko/paramiko development by creating an account o..
Ubuntu 12.04 Repository 변경 sed 's/kr.archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list apt-update 시 security.ubuntu.com 부분에서 "404 Not Found" 가 뜬다면 이부분은 주석 처리하고 진행
6.2 filebeat offset 초기화 1. log 수집 도중 알수 없는 이유로 수집이 중단 되거나 특정 log 파일을 다시 읽어 드리고 싶을때 2. 전체 초기화 - filebeat data home 확인 [root@MON2 filebeat]# ps aux | grep filebeat-logstash root 32061 87.5 0.7 2204676 377292 ? Ssl 12:01 13:16 /usr/share/filebeat/bin/filebeat --environment systemd -c /etc/filebeat-logstash/filebeat.yml --path.home /usr/share/filebeat --path.config /etc/filebeat-logstash --path.data /var/libfilebeat-logsta..
6.1 filebeat multiple indexing 1. 다른 종류의 로그를 각각 다른 index로 파싱 하고자 하는 경우 logstash를 이용해도 되지만 elasticsearch로 바로 쏘는 경우나 수집단계에서 index를 구분 하고 자 하는 경우 filebeat의 설정을 이용하면 됨. 2. filebeat.yml - fields - log_topics를 이용하여 구분 # ============================== Filebeat inputs =============================== filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configu..
6. filebeat agent 설정 1. 기본 설정 [root@filebeat]# vim /etc/filebeat/filebeat.yml # 데이터 input. 30초 마다 로그 경로에 접근하여 새로운 데이터를 읽어 들임. # /var/lib/filebeat 경로에 offset 값 기록 filebeat.inputs: ... - type: log enabled: true paths: - {log path}/*.log.gz # 데이터 output. logstash와, elasticsearch로 보낼수 있음. output.logstash: # The Logstash hosts hosts: ["{logstash ip}:5044"] 2. 서비스 시작 [root@filebeat]# systemctl start filebeat 3. 모듈 사용 - 지원..
5.2 grok pattern을 이용한 nginx log 파싱 1. 개요 - 당초 nginx 서버에서 filebeat를 이용하여 로그를 수집하려고 하였으나 nginx 서버의 filebeat 설치가 여의치 않았음. - filebeat의 nginx 모듈을 사용하려고 하였으나 다양한 log format 필드를 이용할 수 없었음. - 따라서 nginx 의 custom log format을 구성하고 access_log 설정에 syslog를 이용하여 수집서버로 보냄 - 수집서버에서 filebeat와 logstash를 이용 하여 elasticsearch로 푸시 2. [Client] nginx log format log_format main '[$host] [$remote_addr] - [$remote_user] [$time_local] [$request] ' '[$status]..
5.1 [logstash filter] 시간대 변경 1. 단순히 시간 값에 초단위로 더하고자 하는경우 ruby { code => "event.set('KORConnectTimestamp', Time.parse(event.get('ConnectTimestamp')) + 32400 )" } 2. 시간대를 변경 UTC → KOR date { match => ["ConnectTimestamp","YYYY-MM-dd HH:mm:ss"] timezone => "Asia/Seoul" locale => "ko" target => "new_date" }