개발자모드
flask run --host=192.168.0.21 --port=5000
flask syslog데이터 가져오기
security/models.py에 syslog데이트를 가져오기 위해 SystemEvents 추가하기
class SystemEvents(db.Model):
__tablename__ = 'SystemEvents'
ID = db.Column(db.Integer, primary_key=True)
CustomerID = db.Column(db.BigInteger, nullable=True)
ReceivedAt = db.Column(db.DateTime(), nullable=True)
DeviceReportedTime = db.Column(db.DateTime(), nullable=True)
Facility = db.Column(db.SmallInteger, nullable=True)
Priority = db.Column(db.SmallInteger, nullable=True)
FromHost = db.Column(db.String(60), nullable=True)
Message = db.Column(db.Text, nullable=False)
NTSeverity = db.Column(db.Integer, nullable=True)
Importance = db.Column(db.Integer, nullable=True)
EventSource = db.Column(db.String(60), nullable=True)
EventUser = db.Column(db.String(60), nullable=True)
EventCategory = db.Column(db.Integer, nullable=True)
EventID = db.Column(db.Integer, nullable=True)
EventBinaryData = db.Column(db.Text, nullable=True)
MaxAvailable = db.Column(db.Integer, nullable=True)
CurrUsage = db.Column(db.Integer, nullable=True)
MinUsage = db.Column(db.Integer, nullable=True)
MaxUsage = db.Column(db.Integer, nullable=True)
InfoUnitID = db.Column(db.Integer, nullable=True)
SysLogTag = db.Column(db.String(60), nullable=True)
EventLogType = db.Column(db.String(60), nullable=True)
GenericFileName = db.Column(db.String(60), nullable=True)
SystemID = db.Column(db.Integer, nullable=True)
template/syslog/index.html
ID |
RecivedAt |
FromHost |
Message |
{% if syslog %}
{% for data in syslog%}
{{data.ID}} |
{{data.ReceivedAt}} |
{{data.FromHost}} |
{{data.Message}} |
{% endfor %}
{% else %}
데이터 없음 |
{% endif %}
ID |
RecivedAt |
FromHost |
Message |
views에 syslog.py수정
from flask import Blueprint, render_template, request
from security.models import SystemEvents
bp = Blueprint('syslog', __name__, url_prefix='/syslog')
@bp.route('/')
def index():
# 페이지 정보
page = request.args.get('page', 1, type=int)
per_page = 10
# 검색 필터링 처리
column = request.args.get('column', 'ID') # 기본값은 'ID'
search = request.args.get('search', '')
# 쿼리 필터링
if search:
# 해당 컬럼에 대해 'search' 값으로 LIKE 쿼리 실행
filter_condition = getattr(SystemEvents, column).like(f'%{search}%')
datas = SystemEvents.query.filter(filter_condition).order_by(SystemEvents.ID.desc()).paginate(page=page, per_page=per_page)
else:
datas = SystemEvents.query.order_by(SystemEvents.ID.desc()).paginate(page=page, per_page=per_page)
return render_template('syslog/index.html', syslog=datas)
Select "Logout" below if you are ready to end your current session.