여기까지 잘 따라하셨다면 아래와 같은 화면을 보실 수 있을 것입니다.
왼쪽을 보면 로그 파싱된 필드들이 엄청나게 보입니다.
t로 보이는 것은 text
#으로 보이는 것은 숫자 입니다.
'기술 노트 > kibana' 카테고리의 다른 글
map에서 ip로 지역 표시하기 (0) | 2023.08.23 |
---|---|
kibana 설정 (0) | 2023.02.17 |
kibana 설치 (0) | 2023.02.16 |
여기까지 잘 따라하셨다면 아래와 같은 화면을 보실 수 있을 것입니다.
왼쪽을 보면 로그 파싱된 필드들이 엄청나게 보입니다.
t로 보이는 것은 text
#으로 보이는 것은 숫자 입니다.
map에서 ip로 지역 표시하기 (0) | 2023.08.23 |
---|---|
kibana 설정 (0) | 2023.02.17 |
kibana 설치 (0) | 2023.02.16 |
fortigate log 파싱 부분이 추가되었습니다.
fortigate 로그 파싱할때에는 logstash-filter-bytes를 사용하였습니다.
이유는 logstash에서 로그를 파싱하면 모든 자료는 기본적으로 type이 text입니다.
마찬가지로 숫자도 text로 인식합니다.
그래서 데이터 전송량도 type에 맞게 bytes라는 필터를 추가로 설치하였습니다.
logstash-filter-bytes의 설치는 아래의 작성 글을 참고하시기 바랍니다.
https://dirt-spoon.tistory.com/80
input {
file {
path => "/var/log/rsyslog/192.168.10.2/*.log"
start_position => "beginning"
tags => ["ap1"]
}
file {
path => "/var/log/rsyslog/192.168.10.3/*.log"
start_position => "beginning"
tags => ["ap2"]
}
file {
path => "/var/log/rsyslog/192.168.10.4/*.log"
start_position => "beginning"
tags => ["ap3"]
}
file {
path => "/var/log/rsyslog/192.168.10.5/*.log"
start_position => "beginning"
tags => ["ap4"]
}
file {
path => "/var/log/rsyslog/192.168.0.14/*.log"
start_position => "beginning"
tags => ["fortigate"]
}
}
filter {
if "ap1" in [tags] or "ap2" in [tags] or "ap3" in [tags] or "ap4" in [tags] {
grok {
patterns_dir => ["/etc/logstash/pattern.d"]
match => {
"message" => [
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} %{IPORHOST:process}\[%{BASE10NUM:process_id}\]\: %{GREEDYDATA:sub_message}",
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} \[%{BASE10NUM:process_id}\]\: %{GREEDYDATA:sub_message}",
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} %{WORD:process}\: User\: %{GREEDYDATA:user} last logged %{GREEDYDATA:access_result} in %{GREEDYDATA:access_day}\#%{NUMBER:deauthentication_reason_code}, to %{IP:destination_ip}, from %{IP:source_ip} using %{WORD:access_method}",
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} %{WORD:process}\: User\: %{GREEDYDATA:reason} in %{GREEDYDATA:access_day}\#%{NUMBER:deauthentication_reason_code}, to %{IP:destination_ip}, from %{IP:source_ip} using %{WORD:access_method}"
]
}
}
mutate { remove_field => [ "message" ] }
}
else if "fortigate" in [tags] {
grok {
patterns_dir => ["/etc/logstash/pattern.d"]
match => { "message" => [ "%{FORTILOG} %{GREEDYDATA:sub_message}" ] }
}
kv {
source => "sub_message"
value_split => "="
}
mutate { remove_field => [ "message" ] }
mutate { remove_field => [ "sub_message" ] }
if "wan" in [srcintfrole] {
geoip {
source => "srcip"
target => "geoip_src"
}
}
if [sentbyte] != "" and [rcvdbyte] != "" {
bytes {
source => "rcvdbyte"
target => "receivedbyte"
}
bytes {
source => "sentbyte"
target => "sentedbyte"
}
}
mutate {
convert => {
"rcvdpkt" => "integer"
"sentpkt" => "integer"
"proto" => "integer"
"srcserver" => "integer"
"sessionid" => "integer"
"duration" => "integer"
"policyid" => "integer"
"HOUR" => "integer"
"MINUTE" => "integer"
"SECOND" => "integer"
}
}
}
}
output {
if "ap1" in [tags] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-ap1-index-%{+YYYY.MM.dd}"
}
}
else if "ap2" in [tags] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-ap2-index-%{+YYYY.MM.dd}"
}
}
else if "ap3" in [tags] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-ap3-index-%{+YYYY.MM.dd}"
}
}
else if "ap4" in [tags] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-ap4-index-%{+YYYY.MM.dd}"
}
}
else if "fortigate" in [tags] {
if "traffic" in [LOG_TYPE] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-fortigate-traffic-index-%{+YYYY.MM.dd}"
}
}
else if "event" in [LOG_TYPE] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-fortigate-event-index-%{+YYYY.MM.dd}"
}
}
else if "utm" in [LOG_TYPE] {
elasticsearch {
hosts => "http://192.168.0.17:9200"
index => "logstash-fortigate-utm-index-%{+YYYY.MM.dd}"
}
}
}
}
logstash.conf_230306 (0) | 2023.03.06 |
---|---|
logstash.conf_23.02.20 (0) | 2023.02.20 |
logstash 파일 파싱하기 (0) | 2023.02.20 |
logstash 설정 (0) | 2023.02.20 |
grok pattern (0) | 2023.02.17 |
[root@tmplogsvr bin]# /usr/share/logstash/bin/logstash-plugin install logstash-filter-bytes
Using bundled JDK: /usr/share/logstash/jdk
Validating logstash-filter-bytes
Resolving mixin dependencies
Installing logstash-filter-bytes
Installation successful
[root@tmplogsvr bin]#
####################################
###Fortinet Syslog Pattern Types:###
####################################
FORTILOG (?<TIMESTAMP>^\w+\s+\d+\s+\d+\:\d+\:\d+)\s(?<Client>\d+.\d+.\d+.\d+)\sdate=(?<DAY>\w+\-\w+\-\w+)\stime=(?<HOUR>\d+)\:(?<MINUTE>\d+)\:(?<SECOND>\d+)\sdevname="(?<Device_Name>.*)"\sdevid="(?<DEV_ID>\w+)"\slogid="(?<LOG_ID>\d+)"\stype="(?<LOG_TYPE>\w+)"\ssubtype="(?<SUB_LOG_TYPE>\w+)"
※ 기본 grok.pattern의 설정과 연계되어 있어 grok.pattern도 함께 작성 필요
[root@tmplogsvr bin]# cat /etc/logstash/conf.d/logstash.conf
input {
file {
path => "/var/log/rsyslog/192.168.10.14/*.log"
start_position => "beginning"
tags => ["fortigate"]
}
}
filter {
if "fortigate" in [tags] {
grok {
patterns_dir => ["/etc/logstash/pattern.d"]
match => { "message" => [ "%{FORTILOG} %{GREEDYDATA:sub_message}" ] }
}
kv {
source => "sub_message"
value_split => "="
}
mutate { remove_field => [ "sub_message" ] }
if "wan" in [srcintfrole] {
geoip {
source => "srcip"
target => "geoip_src"
}
}
if [sentbyte] != "" and [rcvdbyte] != "" {
bytes {
source => "rcvdbyte"
target => "receivedbyte"
}
bytes {
source => "sentbyte"
target => "sentedbyte"
}
}
mutate {
convert => {
"rcvdpkt" => "integer"
"sentpkt" => "integer"
"proto" => "integer"
"srcserver" => "integer"
"sessionid" => "integer"
"duration" => "integer"
"policyid" => "integer"
"HOUR" => "integer"
"MINUTE" => "integer"
"SECOND" => "integer"
}
}
}
}
output {
if "fortigate" in [tags] {
if "traffic" in [LOG_TYPE] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-fortigate-traffic-index-%{+YYYY.MM.dd}"
}
}
else if "event" in [LOG_TYPE] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-fortigate-event-index-%{+YYYY.MM.dd}"
}
}
else if "utm" in [LOG_TYPE] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-fortigate-utm-index-%{+YYYY.MM.dd}"
}
}
}
}
웹 페이지 접근 보호 (0) | 2023.05.23 |
---|---|
로그인 알람 설정 (0) | 2023.04.06 |
interface https http ssh 접속 허용 cli (0) | 2023.03.24 |
interface status cli (0) | 2023.03.24 |
system shutdown cli (0) | 2023.03.24 |
prometheus 설정 (0) | 2023.04.04 |
---|---|
Prometheus 설치 및 실행 (0) | 2023.03.21 |
기본 설정에 필요한 부분만 수정하였습니다.
각자 설치 시 재 설정 파일과 비교하시면 좋을 것아요.
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
scrape_interval: 5m
scrape_timeout: 1m
static_configs:
- targets: ["localhost:9090"]
- job_name: 'snmp'
static_configs:
- targets: ['192.168.10.2'] # SNMP device.
- targets: ['192.168.10.3'] # SNMP device.
- targets: ['192.168.10.4'] # SNMP device.
- targets: ['192.168.10.5'] # SNMP device.
metrics_path: /snmp
params:
module: [if_mib]
community: [<각자 설정한 commuity 값>]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.0.17:9116 # The SNMP exporter's real hostname:port.
- job_name: 'grafana_metrics'
scrape_interval: 15s
scrape_timeout: 5s
static_configs:
- targets: ['192.168.0.17:3000']
prometheus와 snmp_exporter 설치 결과 (0) | 2023.04.04 |
---|---|
Prometheus 설치 및 실행 (0) | 2023.03.21 |
설정 파일 위치는 설치자에 따라 다를 겁니다.
제가 설치한 방법을 따라 하셨다면 아래의 경로에 해당 파일이 존재 합니다.
"/opt/snmp_exporter/snmp.yml"
워낙 방대해서 기본 설정이외 수정한 부분을 표시합니다.
필요한 부분은 snmp community string의 설정입니다.
if_mib:
auth:
community: <snmp string을 기재> # "<", ">" 표시는 삭제해야 합니다.
walk:
- 1.3.6.1.2.1.2
- 1.3.6.1.2.1.31.1.1
get:
- 1.3.6.1.2.1.1.3.0
metrics:
- name: sysUpTime
oid: 1.3.6.1.2.1.1.3
type: gauge
help: The time (in hundredths of a second) since the network management portion
of the system was last re-initialized. - 1.3.6.1.2.1.1.3
.
.
.
.
.
.
.
.
--- 이하 생략 ---
snmp_exporter 설치 및 실행 (0) | 2023.03.22 |
---|
[root@tmplogsvr prometheus]# timedatectl
Local time: 화 2023-04-04 11:49:02 KST
Universal time: 화 2023-04-04 02:49:02 UTC
RTC time: 화 2023-04-04 02:49:02
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[root@tmplogsvr prometheus]# timedatectl set-ntp true
[root@tmplogsvr prometheus]# date
2023. 04. 04. (화) 11:48:49 KST
[root@tmplogsvr prometheus]#
원격데스크탑 세션 수 늘리기 (0) | 2023.04.27 |
---|---|
원격데스크탑 접속 오류 (0) | 2023.04.27 |
NetworkManager의 IPv6 오류 메시지 (0) | 2023.04.04 |
python default 버전 설정 (0) | 2023.03.16 |
firewall 서비스 중지 (0) | 2023.02.17 |
Apr 3 00:13:33 tmplogsvr NetworkManager[1076]: <warn> [1680448413.7254] platform-linux: do-add-ip6-address[2: fe80::2ef0:5dff:fe5b:9b29]: failure 13 (허가 거부)
Apr 3 00:13:35 tmplogsvr NetworkManager[1076]: <warn> [1680448415.7265] ipv6ll[f8fe362aab94bfad,ifindex=2]: changed: no IPv6 link local address to retry after Duplicate Address Detection failures (back off)
[root@tmplogsvr log]# nmcli
enp2s0: 연결됨 → enp2s0
"Realtek RTL8111/8168/8411"
ethernet (r8169), 2C:F0:5D:00:00:00, hw, mtu 1500
IP4 기본값
inet4 192.168.0.17/24
route4 192.168.0.0/24 metric 100
route4 default via 192.168.0.1 metric 100
virbr0: 연결됨 (외부) → virbr0
"virbr0"
bridge, 52:54:00:00:00:00, sw, mtu 1500
inet4 192.168.122.1/24
route4 192.168.122.0/24 metric 0
lo: 관리되지 않음
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
servers: 168.126.63.1
interface: enp2s0
알려진 장치에 대한 완전한 정보를 얻으려면 "nmcli device show"를 사용하고 활성
연결 프로파일에 대한 개요를 보려면 "nmcli connection show"를 사용하십시오.
자세한 사용법은 nmcli (1) 및 nmcli-examples (5) 매뉴얼 페이지를 참조하십시오.
[root@tmplogsvr log]# nmcli device modify enp2s0 ipv6.method "disabled"
'enp2s0' 장치에 연결이 성공적으로 다시 적용되었습니다.
[root@tmplogsvr log]# nmcli device modify virbr0 ipv6.method "disabled"
'virbr0' 장치에 연결이 성공적으로 다시 적용되었습니다.
[root@tmplogsvr log]#
원격데스크탑 접속 오류 (0) | 2023.04.27 |
---|---|
시간 동기화 (0) | 2023.04.04 |
python default 버전 설정 (0) | 2023.03.16 |
firewall 서비스 중지 (0) | 2023.02.17 |
GPG키 오류 날 경우 (0) | 2023.02.16 |
html 코드 중 style에서 아래 해당 되는 부분 삭제
body, div, th, td, ol, ul, li, a, strong, span, input, select, textarea {
color: #444444;
font-family: Gulim,doutm,tahoma,sans-serif; <- 이부분
}
국가법령정보센터에서 법 내용을 소스코드로 가져오면 티스토리의 style이 깨지는 현상이 있어요.
이 때 소스 코드 중 위의 font-family 라인을 삭제하시고 html 붙여넣으시면 됩니다.
추가로 font 설정 변경하려면 아래 부분을 필요한 위치에 넣어주시면 원하는 font로 변경할 수 있습니다.
이렇게 하는 이유는 붙여넣기한 html 코드를 기본모드로 변경하여 보는 순간 html 코드가 티스토리에서 임의로 변경하네요.
그래서 가져오고 싶은 곳의 소스코드를 그대로 사용하면서 아래의 코드를 원하는 곳에 넣어주세요.
당연히 끝나는 부분에 "</div>" 코드도 추가해 주셔야 합니다.
<div style="font-family: 'Nanum Gothic';">
윈도우즈용 무료 캡쳐 프로그램 (0) | 2023.09.27 |
---|---|
해피해킹에서 "한자키" 인식시키기 (0) | 2023.07.31 |
티스토리 왼쪽 매뉴 스크롤바 만들기 (0) | 2023.06.20 |
티스토리 페이지 기능 위치 변경 (0) | 2023.03.09 |
slack webhook URL 추가하기 (0) | 2023.03.06 |
FortiGate-100D # config system interface
FortiGate-100D # show
config system interface
edit "wan1"
set vdom "root"
set mode dhcp
set allowaccess https ssh http
set type physical
set role wan
set snmp-index 1
next
edit "dmz"
set vdom "root"
set ip 10.10.10.1 255.255.255.0
set allowaccess ping https http fgfm fabric
set type physical
set role dmz
set snmp-index 2
next
edit "modem"
set vdom "root"
set mode pppoe
set type physical
set snmp-index 3
next
...
FortiGate-100D # edit <인터페이스 이름>
FortiGate-100D # edit wan1
FortiGate-100D (wan1) # show
config system interface
edit "wan1"
set vdom "root"
set mode dhcp
set allowaccess https ssh http
set type physical
set role wan
set snmp-index 1
next
end
FortiGate-100D (wan1) # set allowaccess ?
ping PING access.
https HTTPS access.
ssh SSH access.
snmp SNMP access.
http HTTP access.
telnet TELNET access.
fgfm FortiManager access.
radius-acct RADIUS accounting access.
probe-response Probe access.
fabric Security Fabric access.
ftm FTM access.
FortiGate-100D (wan1) # set allowaccess <필요한 프로토콜 입력1> <필요한 프로토콜 입력2> ...
FortiGate-100D (wan1) # set allowaccess https http ssh
FortiGate-100D (wan1) # end
FortiGate-100D #
로그인 알람 설정 (0) | 2023.04.06 |
---|---|
fortigate 6.2.X버전의 logstash 설정 (0) | 2023.04.04 |
interface status cli (0) | 2023.03.24 |
system shutdown cli (0) | 2023.03.24 |
tftp 사용하여 펌웨어 복구 (0) | 2023.03.24 |