사전 작업
원격지 서버에서 syslog 수집하기 위해 설정
- Graylog에서 Input 생성하기 위해서, 원격지 시스템에서 로그가 생성되고, Graylog로 송신 해야합니다.
-
Graylog에서는 해당 송신되는 log를 받아 처리할 수 있는 수신 포트를 설정해야하며 보통 syslog 수신을 위한 포트는 UDP 514가 default이나 graylog서버에서 1024 이하의 TCP/UDP 포트 번호는 권한 오류가 발생합니다.
-
해당 이슈 해결을 위해 UDP 514 -> 1514 포트로 리다이렉션 되도록 처리.
SysLog 수집 설정
■ Graylog Input 생성
System -> Inputs -> Syslog UDP -> Launch new input 클릭
■ Node 선택 & Port 변경
■ 정상적으로 port가 변경되었는지 확인
■ graylog 서버 redirection 설정 ( graylog server)
-
UDP 1514 port허용
-
UDP 514로 들어오는 것을 1514port로 보내도록 리다이렉션 설정
[root@jh-test ~]# firewall-cmd --add-masquerade --permanent
success
[root@jh-test ~]# firewall-cmd --add-forward-port=port=514:proto=udp:toport=1514 --permanent
success
[root@jh-test ~]# firewall-cmd --permanent --add-port=1514/udp
success
[root@jh-test ~]# firewall-cmd --reload
success
[root@jh-test ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 1514/udp
protocols:
masquerade: yes
forward-ports: port=514:proto=udp:toport=1514:toaddr=
source-ports:
icmp-blocks:
rich rules:
■ 외부 서버 -> Syslog 전송 설정 (node001,node002) noe001,002의 udp프로토콜 1514 open
syslog 발생시 graylog 서버로 전송하도록 설정.
mail, authpriv, crontab에 관한 정보는 보내지않겠다로 설정.
## 해당 config 파일의 맨 마지막줄에 추가해줍니다. rsyslog가 없을시 yum, apt-get 등으로 설치진행해줍니다.
[root@jh-node001 ~]# vi /etc/rsyslog.conf
# ### end of the forwarding rule ###
*.info;mail.none;authpriv.none;cron.none @118.67.132.167:1514 => 포트를 1000번 이상으로 설정해주었습니다.
[root@jh-node001 ~]# systemctl restart rsyslog.service
## 테스트용 log 생성
[root@jh-node001 ~]# logger test
[root@jh-node001 ~]# logger test
[root@jh-node001 ~]# logger test
■ graylog 웹에서 확인
■ Graylog web에서 보이는 log와 실제 서버에서 보이는 log가 동일
만약 log를 못받아오면 우측 상단에 update every 5 seconds의 재생 아이콘을 눌러보세요
DB Log 수집 설정
■ node001
■ node002
■ Inputs에서 새로운 UDP input 생성
■ 12305 port 개방
[root@jh-node001 ~]# firewall-cmd --add-masquerade --permanent
success
[root@jh-node001 ~]# firewall-cmd --add-forward-port=port=514:proto=udp:toport=12305 --permanent
success
[root@jh-node001 ~]# firewall-cmd --permanent --add-port=12305/udp
success
[root@jh-node001 ~]# firewall-cmd --reload
success
■ hosts 추가(jh-node001)
[root@jh-node001 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
118.67.132.167 graylog.com
■ mysql error log에서 생성된 log를 받아 보내는 스크립트 작성 (node001,node002)
[root@jh-node001 ~]# vi kim.sh
#!/bin/sh
if [ ! -e status.last ]; then
cat /log/mariadb.log > status.last
else
cat /log/mariadb.log > status.current
comm -3 status.current status.last > /root/kim.txt
msg=`cat /root/kim.txt`
echo "$msg" | nc -w 1 -u graylog.com 12305
echo $msg
mv status.current status.last
fi
■ crontab 설정 (상시로 스크립트 돌게 설정) (node001,node002)
[root@jh-node001 ~]# chmod +x kim.sh
[root@jh-node001 ~]# crontab -e
MAILTO=""
30 06 * * * /usr/sbin/nsight_updater > /tmp/.nu.log 2> /tmp/.nu_err.log
* * * * * /root/kim.sh
■ db log에 test log 추가 (node001,node002)
[root@jh-node001 ~]# vi /log/mariadb.log
Version: '5.7.32' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
testtestestestestest
ttttttttttttttttttttt
qqqqqqqqqqqqq
■ graylog web에서 확인
이상으로 SysLog 및 DB Log 수집 설정을 하였습니다. 다음 글에서는 email 얼롯팅 설정을 하도록 하겠습니다.
참고
'Others > DB Monitoring' 카테고리의 다른 글
[ Zabbix - email 얼롯팅 설정 ] part 3 (0) | 2022.02.07 |
---|---|
[ Zabbix - zabbix 수집 구성 ] part 2 (0) | 2022.02.07 |
[ Zabbix - DB monitoring 서버 구축 ] part 1 (0) | 2022.02.06 |
[ Graylog - Email 얼롯팅 설정 ] part 3 (0) | 2022.02.06 |
[ Graylog - 로그수집서버 설치 ] part 1 (0) | 2022.02.05 |