%PDF- %PDF-
| Direktori : /proc/self/root/usr/share/lve/modlscapi/utils/ |
| Current File : //proc/self/root/usr/share/lve/modlscapi/utils/lsapi_sentry.py |
#!/opt/cloudlinux/venv/bin/python3
# Copyright (c) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import os.path
from datetime import datetime
try:
from raven import Client
except ImportError:
exit(1)
def make_file_to_process():
"""
Rename message file into message-%Y%m%d-%H%M%S.%f to process log
"""
log_path = "/var/log/mod_lsapi/messages"
if not os.path.isfile(log_path):
return None
now = datetime.now().strftime("-%Y%m%d-%H%M%S.%f")
fname = log_path + now
os.rename(log_path, fname)
return fname
def process_file(fname):
"""
Get list of logged messages from new log file
"""
with open(fname) as f:
content = f.readlines()
content = [x.strip() for x in content if x.strip()]
res = []
for s in content:
res.append(s.split('\001'))
return res
def process_list(content, client):
"""
Send each message from content to sentry
"""
for message in content:
client.capture('raven.events.Message', message=message[0], data={
'request': {
'method': 'POST',
},
}, extra={
'Detailed info': message[1],
})
def main():
"""
Run main actions
"""
dns = "https://ce7a4f9a50974f47ace1b4140b0594a5:8e39499e5b1243259739bebe91d5c6bb@sentry.cloudlinux.com/2"
client = Client(dns)
if not client:
exit(1)
fname = make_file_to_process()
if not fname:
exit(0)
content = process_file(fname)
if not content:
exit(0)
process_list(content, client)
if "__main__" == __name__:
main()