Install Guide
JDBC Driver Installation
Fasoo FED-M (Fasoo Enterprise DRM for Mobile) utilizes MySQL as its backend database.
Logpresso Connect Profile Configuration
Refer to this documentation to add a new connect profile.
The following fields are mandatory for the connection profile:
- Name: A unique name to identify the connection profile.
- Identifier: A unique ID used for referencing the profile in Logpresso queries.
- Type: Select 'Database'.
- Database Type: Select 'MySQL'.
- Host: Enter the IP address of the database server.
- Port Number: Enter the database port (Default: 3306).
- Database Name: Enter the name of the database to connect to.
- Account: Database access username.
- Password: Database access password.
- Read Only: Select this option (Default: Unchecked).
Once all fields are populated, perform a Connection Test, then click OK to save the profile.
Logpresso Logger Configuration
Refer to this documentation to add a new logger. The default dashboards and datasets reference tables with names starting with DRM_FASOO_FED_M.
The following fields are mandatory for the logger configuration:
- Name: A unique name to identify the logger.
- Interval: 60 seconds.
- Storage/Collection Node: Select the appropriate node based on your Logpresso platform - architecture.
- Logger Model: Select 파수 FED-M 모바일 보안.
- Table: Enter a table name starting with
DRM_FASOO_FED_M. - JDBC Profile: Enter the identifier of the connect profile created previously.
- SQL: The SQL query used to retrieve and process data. To ensure sequential loading, the ORDER BY {Reference_Column} clause must be included.
- WHERE Clause: Enter the following (adjust based on your actual table columns): WHERE FL_MT_CODE > ?
and FL_MT_CODE < date_format( date_sub( current_timestamp(), INTERVAL 5 MINUTE ), '%Y%m%d%H%i%s')
- The
INTERVAL 5 MINUTEvalue can be modified to adjust the collection delay. Since theFL_MT_CODEcolumn provides time information down to the second, it is recommended to set the delay to at least 1 second. Adjust this based on your specific environment.
- The
- First Reference Column: Enter
id(adjust if using a different column name). - First Reference Column Initial Value Type: Enter
string(adjust based on the column's data type).
SQL Example Customize the following SQL script to fit your operational environment. Depending on the table structure, it may be necessary to separate the collectors into two units or implement UNION ALL syntax.
Below is a SQL example for even-numbered year tables (FUT_LOG_0XX):
SELECT
FL_MT_CODE AS id,
A.FU_MT_CODE AS user_motion_id,
A.FC_MT_CODE AS doc_motion_id,
FL_DSD_CODE AS domain_code,
CONCAT_WS(' ',
CASE
WHEN SUBSTR(FL_TYPE,2,1)='N' THEN 'FSN'
WHEN SUBSTR(FL_TYPE,2,1)='D' THEN 'FSD'
WHEN SUBSTR(FL_TYPE,2,1)='P' THEN 'FSP'
WHEN SUBSTR(FL_TYPE,2,1)='E' THEN 'FSE'
WHEN SUBSTR(FL_TYPE,2,1)='C' THEN 'CAP'
WHEN SUBSTR(FL_TYPE,2,1)='M' THEN 'FMG'
ELSE SUBSTR(FL_TYPE,2,1)
END,
CASE
WHEN SUBSTR(FL_TYPE,1,1)='I' THEN '라이선스 발급 내역'
WHEN SUBSTR(FL_TYPE,1,1)='U' THEN '(문서) 사용 내역'
WHEN SUBSTR(FL_TYPE,1,1)='P' THEN '임시라이선스 발급 내역'
WHEN SUBSTR(FL_TYPE,1,1)='O' THEN '임시 라이선스로 사용된 문서 사용 내역'
ELSE SUBSTR(FL_TYPE,1,1)
END) AS category,
CASE
WHEN FL_STATUS='OK' THEN '정상'
WHEN FL_STATUS='REJECT' THEN '거부'
WHEN FL_STATUS='S_VIEW_COUNT_REJECT' THEN '열람 횟수 초과'
WHEN FL_STATUS='S_TERM_REJECT' THEN '유효 기간 초과'
WHEN FL_STATUS='S_PC_COUNT_REJECT' THEN 'PC 대수 초과'
WHEN FL_STATUS='S_ONLINE_OK' THEN '정상(온라인)'
WHEN FL_STATUS='S_OFFLINE_OK' THEN '정상(오프라인)'
WHEN FL_STATUS='S_RECALL_REJECT' THEN '폐기'
WHEN FL_STATUS='S_NOT_FOUND_RECEIVEREMAIL_REJECT' THEN '거부'
ELSE FL_STATUS
END AS status,
FROM_UNIXTIME(FL_DT/1000) AS event_time,
FL_MAC AS host_mac,
FL_IP AS host_ip,
FL_MACHINE AS host_mac_hex,
A.FU_CODE AS user,
FU_NAME AS user_name,
A.FU_DEPT_CODE AS user_dept_code,
FU_DEPT_NAME AS user_dept_name,
FU_PST_CODE AS user_position_code,
FU_PST_NAME AS user_position_name,
A.FC_CODE AS doc_id,
FC_CTG_CODE AS doc_category_code,
FC_CTG_NAME AS doc_category,
FC_NAME AS doc_original_name,
FC_FILE_NAME AS doc_current_name,
FC_WT_CODE AS writer,
FC_WT_NAME AS writer_name,
FC_WT_DP_CODE AS writer_dept_code,
FC_WT_DP_NAME AS writer_dept_name,
FC_OWN_CODE AS owner,
FC_OWN_NAME AS owner_name,
FC_OWN_DP_CODE AS owner_dept_code,
FC_OWN_DP_NAME AS owner_dept_name,
FC_ETC1 AS header_etc1,
FC_ETC2 AS header_etc2,
FC_ETC3 AS header_etc3,
FC_ETC4 AS header_etc4,
FC_ETC5 AS header_etc5,
FC_ETC6 AS header_etc6,
FC_ETC7 AS header_etc7,
FC_ETC8 AS header_etc8,
FC_ETC9 AS header_etc9,
FC_ETC10 AS header_etc10,
FC_TYPE AS doc_type,
FC_HS_CODE AS hASh,
FC_CRT_DT AS created,
FC_PKG_CODE AS content_id,
FC_ETR_DT AS content_time,
FL_P_CRT_NEW AS is_doc_create,
FL_P_VIEW AS is_doc_view,
FL_P_SEC_SAVE AS is_doc_save,
FL_P_PRT_SCR AS is_doc_printscreen,
FL_P_SAVE AS is_doc_decrypt,
FL_P_PRT AS is_doc_print,
FL_P_SEC_PRT AS is_doc_secure_print,
FL_P_MDF_OWNER AS is_doc_modify_owner,
FL_P_MDF_ACL AS is_doc_modify_permission,
FL_P_MDF_SECLVL AS is_doc_change_level,
FL_P_REVOKE AS is_doc_revoke,
CASE
WHEN FL_OFR_TYPE='I' THEN '라이선스 발급'
WHEN FL_OFR_TYPE='U' THEN '사용 내역'
WHEN FL_OFR_TYPE='P' THEN '임시 라이선스 발급'
ELSE FL_OFR_TYPE END AS offer_type,
FL_P_CRT_NEW_BAT AS is_batch_encrypt,
FL_P_SAVE_BAT AS is_batch_decrypt,
FL_P_CRT_NEW_API AS is_packager_encrypt,
FL_P_SAVE_API AS is_packager_decrypt,
FL_OFR_CODE AS offer_id,
FL_OFR_DSD_CODE AS offer_dsd_code,
FL_OFR_DSD_NAME AS offer_dsd_name,
FL_PRT_MACHINE AS printer_name,
FL_PRT_FILE_CNT AS print_file_count,
FL_PRT_CNT AS print_page_count,
FL_PRT_CODE AS print_transaction_id,
FROM_UNIXTIME(FL_ETR_DT/1000) AS register_time,
FL_ETC1 AS etc1,
FL_ETC2 AS etc2,
FL_ETC3 AS etc3,
FL_ETC4 AS etc4,
FL_ETC5 AS etc5,
FL_LCT_LAT AS latitude,
FL_LCT_LNG AS longitude,
FL_PRT_PAGE_CNT AS print_file_page_count,
FL_PRT_COPY_CNT AS print_copy_count,
FL_TXT_SAVING AS text_concentration,
FL_IMG_SAVING AS image_concentration,
FL_G_SAVING AS graph_concentration,
FL_CTOG AS is_color_to_gray,
FL_NUP AS is_N_UP,
FL_PP AS is_pull_printing,
FL_APPNAME AS doc_app,
FL_LIC_START_DT AS license_start_time,
FL_LIC_END_DT AS license_END_time,
FL_PRODUCTNAME AS product_name
FROM FUT_LOG_0$MM A
JOIN FUT_USER ON A.FU_CODE = FUT_USER.FU_CODE
JOIN FUT_CONTENT ON A.FC_CODE = FUT_CONTENT.FC_CODE
$where
order by FL_MT_CODE
Below is a SQL example for odd-numbered year tables (FUT_LOG_1XX):
SELECT
FL_MT_CODE AS id,
A.FU_MT_CODE AS user_motion_id,
A.FC_MT_CODE AS doc_motion_id,
FL_DSD_CODE AS domain_code,
CONCAT_WS(' ',
CASE
WHEN SUBSTR(FL_TYPE,2,1)='N' THEN 'FSN'
WHEN SUBSTR(FL_TYPE,2,1)='D' THEN 'FSD'
WHEN SUBSTR(FL_TYPE,2,1)='P' THEN 'FSP'
WHEN SUBSTR(FL_TYPE,2,1)='E' THEN 'FSE'
WHEN SUBSTR(FL_TYPE,2,1)='C' THEN 'CAP'
WHEN SUBSTR(FL_TYPE,2,1)='M' THEN 'FMG'
ELSE SUBSTR(FL_TYPE,2,1)
END,
CASE
WHEN SUBSTR(FL_TYPE,1,1)='I' THEN '라이선스 발급 내역'
WHEN SUBSTR(FL_TYPE,1,1)='U' THEN '(문서) 사용 내역'
WHEN SUBSTR(FL_TYPE,1,1)='P' THEN '임시라이선스 발급 내역'
WHEN SUBSTR(FL_TYPE,1,1)='O' THEN '임시 라이선스로 사용된 문서 사용 내역'
ELSE SUBSTR(FL_TYPE,1,1)
END) AS category,
CASE
WHEN FL_STATUS='OK' THEN '정상'
WHEN FL_STATUS='REJECT' THEN '거부'
WHEN FL_STATUS='S_VIEW_COUNT_REJECT' THEN '열람 횟수 초과'
WHEN FL_STATUS='S_TERM_REJECT' THEN '유효 기간 초과'
WHEN FL_STATUS='S_PC_COUNT_REJECT' THEN 'PC 대수 초과'
WHEN FL_STATUS='S_ONLINE_OK' THEN '정상(온라인)'
WHEN FL_STATUS='S_OFFLINE_OK' THEN '정상(오프라인)'
WHEN FL_STATUS='S_RECALL_REJECT' THEN '폐기'
WHEN FL_STATUS='S_NOT_FOUND_RECEIVEREMAIL_REJECT' THEN '거부'
ELSE FL_STATUS
END AS status,
FROM_UNIXTIME(FL_DT/1000) AS event_time,
FL_MAC AS host_mac,
FL_IP AS host_ip,
FL_MACHINE AS host_mac_hex,
A.FU_CODE AS user,
FU_NAME AS user_name,
A.FU_DEPT_CODE AS user_dept_code,
FU_DEPT_NAME AS user_dept_name,
FU_PST_CODE AS user_position_code,
FU_PST_NAME AS user_position_name,
A.FC_CODE AS doc_id,
FC_CTG_CODE AS doc_category_code,
FC_CTG_NAME AS doc_category,
FC_NAME AS doc_original_name,
FC_FILE_NAME AS doc_current_name,
FC_WT_CODE AS writer,
FC_WT_NAME AS writer_name,
FC_WT_DP_CODE AS writer_dept_code,
FC_WT_DP_NAME AS writer_dept_name,
FC_OWN_CODE AS owner,
FC_OWN_NAME AS owner_name,
FC_OWN_DP_CODE AS owner_dept_code,
FC_OWN_DP_NAME AS owner_dept_name,
FC_ETC1 AS header_etc1,
FC_ETC2 AS header_etc2,
FC_ETC3 AS header_etc3,
FC_ETC4 AS header_etc4,
FC_ETC5 AS header_etc5,
FC_ETC6 AS header_etc6,
FC_ETC7 AS header_etc7,
FC_ETC8 AS header_etc8,
FC_ETC9 AS header_etc9,
FC_ETC10 AS header_etc10,
FC_TYPE AS doc_type,
FC_HS_CODE AS hASh,
FC_CRT_DT AS created,
FC_PKG_CODE AS content_id,
FC_ETR_DT AS content_time,
FL_P_CRT_NEW AS is_doc_create,
FL_P_VIEW AS is_doc_view,
FL_P_SEC_SAVE AS is_doc_save,
FL_P_PRT_SCR AS is_doc_printscreen,
FL_P_SAVE AS is_doc_decrypt,
FL_P_PRT AS is_doc_print,
FL_P_SEC_PRT AS is_doc_secure_print,
FL_P_MDF_OWNER AS is_doc_modify_owner,
FL_P_MDF_ACL AS is_doc_modify_permission,
FL_P_MDF_SECLVL AS is_doc_change_level,
FL_P_REVOKE AS is_doc_revoke,
CASE
WHEN FL_OFR_TYPE='I' THEN '라이선스 발급'
WHEN FL_OFR_TYPE='U' THEN '사용 내역'
WHEN FL_OFR_TYPE='P' THEN '임시 라이선스 발급'
ELSE FL_OFR_TYPE END AS offer_type,
FL_P_CRT_NEW_BAT AS is_batch_encrypt,
FL_P_SAVE_BAT AS is_batch_decrypt,
FL_P_CRT_NEW_API AS is_packager_encrypt,
FL_P_SAVE_API AS is_packager_decrypt,
FL_OFR_CODE AS offer_id,
FL_OFR_DSD_CODE AS offer_dsd_code,
FL_OFR_DSD_NAME AS offer_dsd_name,
FL_PRT_MACHINE AS printer_name,
FL_PRT_FILE_CNT AS print_file_count,
FL_PRT_CNT AS print_page_count,
FL_PRT_CODE AS print_transaction_id,
FROM_UNIXTIME(FL_ETR_DT/1000) AS register_time,
FL_ETC1 AS etc1,
FL_ETC2 AS etc2,
FL_ETC3 AS etc3,
FL_ETC4 AS etc4,
FL_ETC5 AS etc5,
FL_LCT_LAT AS latitude,
FL_LCT_LNG AS longitude,
FL_PRT_PAGE_CNT AS print_file_page_count,
FL_PRT_COPY_CNT AS print_copy_count,
FL_TXT_SAVING AS text_concentration,
FL_IMG_SAVING AS image_concentration,
FL_G_SAVING AS graph_concentration,
FL_CTOG AS is_color_to_gray,
FL_NUP AS is_N_UP,
FL_PP AS is_pull_printing,
FL_APPNAME AS doc_app,
FL_LIC_START_DT AS license_start_time,
FL_LIC_END_DT AS license_END_time,
FL_PRODUCTNAME AS product_name
FROM FUT_LOG_1$MM A
JOIN FUT_USER ON A.FU_CODE = FUT_USER.FU_CODE
JOIN FUT_CONTENT ON A.FC_CODE = FUT_CONTENT.FC_CODE
$where
order by FL_MT_CODE
Available macros: $yyyy (Year), $MM (Month), $dd (Day), $HH (Hour)

