58일차

58일차

홈으로 돌아가기
개발자모드
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


실시간 로그 현황
{% if syslog %} {% for data in syslog%} {% endfor %} {% else %} {% endif %}
ID RecivedAt FromHost Message
{{data.ID}} {{data.ReceivedAt}} {{data.FromHost}} {{data.Message}}
데이터 없음
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)