Linux 로그인 로그오프 기록을 Cloudwatch Logs로 보내기
10211 단어 RHELCloudWatchLogsAWS
요약
Linux 로그인/로그오프 기록(만)을 Cloudwatch Logs로 보내고 싶었습니다.
rsyslog에서 sshd 로그만 추출하여 Cloudwatch Logs Agent로 보냈습니다. 할 수 있었다.
요구사항
Linux에 대한 로그인 로그오프 기록을 Cloudwatch Logs에 저장해야 하고 Cloudwatch Logs Agent를 설치하고 /var/log/secure
를 Cloudwatch Logs로 보냅니다.
다만, 트래픽량의 사정으로 secure
모두 보내는 것은 좋지 않기 때문에 좋은 느낌에 좁힌 것을 송신하고 싶다.
SSH 로그인시 출력되는 로그에는 2 종류가 있습니다.
Linux에 대한 로그인 로그오프 기록을 Cloudwatch Logs에 저장해야 하고 Cloudwatch Logs Agent를 설치하고
/var/log/secure
를 Cloudwatch Logs로 보냅니다.다만, 트래픽량의 사정으로
secure
모두 보내는 것은 좋지 않기 때문에 좋은 느낌에 좁힌 것을 송신하고 싶다.SSH 로그인시 출력되는 로그에는 2 종류가 있습니다.
제출하려면 텍스트여야 하므로,
의 2 본 생각할 수 있더라도, 즐거운 전자를 시험한다.
설정 절차
환경
SSH 로그 추출
적절한 EC2 인스턴스를 시작합니다.
요구사항으로서는, rsyslog 의 secure 로그
/var/log/secure
의 | grep 'sshd'
한 것과 같은 결과를 출력할 수 있으면 좋을 것 같다. 다른 secure 로그는 필요하지 않습니다.콘솔
$ sudo cat /var/log/secure | grep 'sshd'
略
Jan 23 19:41:46 HOSTNAME sshd[5106]: Server listening on 0.0.0.0 port 22.
Jan 23 19:41:46 HOSTNAME sshd[5106]: Server listening on :: port 22.
Jan 23 20:40:54 HOSTNAME sshd[1976]: pam_unix(sshd:session): session closed for user ec2-user
Jan 23 20:47:46 HOSTNAME sshd[4914]: Accepted publickey for ec2-user from 10.0.0.2 port 61646 ssh2: RSA SHA256:xxx
Jan 23 20:47:46 HOSTNAME sshd[4914]: pam_unix(sshd:session): session opened for user ec2-user by (uid=0)
Jan 23 20:49:12 HOSTNAME sshd[4914]: pam_unix(sshd:session): session closed for user ec2-user
rsysg에는 속성 기반 필터가 있으며
:property, [!]compare-operation, "value"
programname
에서 필터링됩니다. 이것을 이용하면 특정 프로세스의 로그만 다른 파일에 출력하는 것이 가능.그래서 rsyslog 의 설정을 해 간다.
secure_sshd
라는 새 로그 파일에 sshd 프로세스의 로그 만 출력하는 설정을 추가합니다./etc/rsyslog.conf
# sshd ログを別ファイルにも出力
:programname, isequal, "sshd" /var/log/secure_sshd
콘솔
sudo service rsyslog restart
로그인·로그오프하고 나서 좋은 느낌에 로그가 나오고 있는 것을 확인할 수 있었다.
콘솔
$ sudo cat /var/log/secure_sshd
Jan 24 03:08:55 HOSTNAME sshd[9308]: Accepted publickey for ec2-user from 10.0.0.3 port 60196 ssh2: RSA SHA256:xxx
Jan 24 03:08:55 HOSTNAME sshd[9308]: pam_unix(sshd:session): session opened for user ec2-user by (uid=0)
Jan 24 03:09:14 HOSTNAME sshd[9308]: pam_unix(sshd:session): session closed for user ec2-user
Cloudwatch Agent 측 설정
EC2 인스턴스에 CloudwatchLogs에 대한 정책을 연결합니다.
Send2Cloudwatch
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
패키지 업데이트, awslogs 설치
콘솔
sudo yum update -y
# ubuntu,centos,redhat はこう
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
sudo python ./awslogs-agent-setup.py --region us-east-1
# Amazon Linux ならこっち
# sudo yum install awslogs
버전 확인
콘솔
$ /var/awslogs/bin/awslogs-version.sh
略
/etc/cron.d/awslogs_log_rotate version:
# Version: 1.4.3
CloudWatch Logs Plugin Version:
You are using pip version 6.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
---
Metadata-Version: 1.1
Name: awscli-cwlogs
Version: 1.4.4
Summary: AWSCLI CloudWatch Logs plugin
Home-page: http://aws.amazon.com/cli/
Author: Amazon
Author-email: UNKNOWN
License: Amazon Software License
Location: /var/awslogs/lib/python2.7/site-packages
Requires: awscli, six, python-dateutil
AWS CLI Version
로그 파일 전송 설정, 이전
secure_sshd
지정※Amazon Linux(rpm판)의 경우는 리소스 배치처가
/etc/awslogs/
부하가 된다/etc/awslogs.conf
# 元のmessageログ送信は今回使わないのでコメントアウト
# [/var/log/messages]
# datetime_format = %b %d %H:%M:%S
# file = /var/log/messages
# buffer_duration = 5000
# log_stream_name = {instance_id}
# initial_position = start_of_file
# log_group_name = /var/log/messages
# 普通にsecureログ送るならこう
# [/var/log/secure]
# datetime_format = %b %d %H:%M:%S
# file = /var/log/secure
# buffer_duration = 5000
# log_stream_name = {instance_id}
# initial_position = start_of_file
# log_group_name = /var/log/secure
[/var/log/secure_sshd]
datetime_format = %b %d %H:%M:%S
file = /var/log/secure_sshd
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/secure_sshd
필요에 따라 프록시 설정
/var/awslogs/etc/proxy.conf
HTTP_PROXY=proxyserver:8080
HTTPS_PROXY=proxyserver:8080
NO_PROXY=
지역도 필요에 따라 변경
/var/awslogs/etc/awscli.conf
[plugins]
cwlogs = cwlogs
[default]
region = us-east-1
서비스 재시작 및 시작 설정
콘솔
sudo service awslogs start
sudo chkconfig awslogs on
로그로 보내는 로그를 확인한다면
콘솔
sudo tail /var/log/awslogs.log
움직였다
참고
CloudWatch Logs 에이전트 참조 - Amazon CloudWatch 로그
빠른 시작: 실행 중인 EC2 Linux 인스턴스에 CloudWatch Logs 에이전트 설치 및 구성 - Amazon CloudWatch 로그
Linux 환경설정/ssh를 통한 무단 액세스 확인 - Linux와 함께
Rsyslog - Wikinote
시스템 관리의 기초
필독! 로그 파일 및 디렉터리 | Think IT(싱크 잇)
Reference
이 문제에 관하여(Linux 로그인 로그오프 기록을 Cloudwatch Logs로 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/saitotak/items/f79c7323b53038786a7c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Linux 로그인 로그오프 기록을 Cloudwatch Logs로 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/saitotak/items/f79c7323b53038786a7c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)