예제 #1
0
def check_log_system(printRes=False):
    global results
    logme.loader()
    FWDIR = func.get_path("FWDIR")
    CPDIR = func.get_path("CPDIR")
    title = "Checking logs"
    #
    #	Format:	[file,			search,		exclude]
    #
    logfiles = [["/var/log/messages*", "fail|error", "xpand|failover"],
                [CPDIR + "/log/cpd.elg", "fail|error", "PROVIDER-1|PA_status"]]

    if func.isFirewall():
        logfiles.append(
            ["/var/log/routed.log", "fail|error", "xpand|failover"])
        logfiles.append([FWDIR + "/log/fwd.elg", "failed", "discntd"])

    if func.isManagement():
        logfiles.append([FWDIR + "/log/fwm.elg", "failed", "none"])

    for log in logfiles:
        logme.loader()
        out, err = func.execute_command('cat ' + log[0] + ' | grep -viE "(' +
                                        log[2] + ')" | grep -icE "(' + log[1] +
                                        ')"')
        out = out.read().strip('\n')
        state = "PASS"
        detail = ""
        if out != "0":
            state = "FAIL"
            detail = out + " messages"
        results.append(
            [title + " (" + log[0] + ")", detail, state, "Log Files"])
    if printRes:
        print_results()
예제 #2
0
파일: files.py 프로젝트: olejak/cpme
def check_all(printRes=False, ftype="all"):
    global results
    title = "File"
    files_arr = []
    if ftype == "gw":
        files_arr = files_fwd
    if ftype == "mgmt":
        files_arr = files_fwm
    if ftype == "all":
        if func.isFirewall():
            files_arr = files_arr + files_fwd
        if func.isManagement():
            files_arr = files_arr + files_fwm
    i = 0
    while i < len(files_arr):
        state = "PASS"
        detail = ""
        try:
            with open(files_arr[i][0], "rb") as f:
                bytes = f.read()
                fhash = hashlib.md5(bytes).hexdigest()
            if fhash != files_arr[i][1]:
                state = "WARN"
                detail = "Wrong Hash!"
        except:
            if files_arr[i][1] != "1":
                state = "FAIL"
                detail = "not found!"
        results.append([
            title + " (" + files_arr[i][0] + ")", detail, state, "Filesystem"
        ])
        i = i + 1
    if printRes:
        logme.results(results)
        results = []
예제 #3
0
파일: content.py 프로젝트: 0x7c2/cpme2
 def __init__(self, debugLevel=0):
     self.debugLevel = debugLevel
     self.enabledBlades = func.enabledBlades()
     self.modules = map(__import__, self.dynamic_load)
     i = 0
     for module in self.modules:
         for name, obj in inspect.getmembers(module):
             if inspect.isclass(obj):
                 if "check_" in name or "diag_" in name:
                     class_ = getattr(module, name)
                     self.classes[name] = class_(
                         func.fwVersion(),
                         isFw=func.isFirewall(),
                         isMgmt=func.isManagement(),
                         isCluster=func.isCluster(),
                         enabledBlades=self.enabledBlades,
                         debugLevel=self.debugLevel)
                     i = i + 1
     self.run_self()
예제 #4
0
def check_all(printRes=False):
    check_diskspace()
    check_cpu()
    check_memory()
    check_crash()
    check_log_system()
    check_process()
    check_ntp()
    if func.isFirewall():
        check_fw_fragments()
        check_fw_aggressive()
        check_table_overflow()
        check_failedalloc()
        check_interfaces()
        check_sic_state()
        check_overlap_encdom()
        check_licensing()
        check_blade_update()
        check_dispatcher()
        check_multik_stat()
        check_blades()
        check_parsers()
    if func.isFirewall() and func.isCluster():
        check_clusterxl_state()
        check_clusterxl_sync()
        check_clusterxl_pnote()
        check_fwha_version()
        if func.fwVersion() == "R80.30" or func.fwVersion() == "R80.40":
            check_clusterxl_ccp()
        if func.fwVersion() == "R80.40":
            check_clusterxl_release()
    if func.isManagement():
        check_mgmt_status()
        check_mgmt_api()
        check_mgmt_gui()
        check_mgmt_dblock()
        check_mgmt_validations()
        check_mgmt_updateips()
    if len(func.ipmiInfo()) > 0:
        check_ipmi_sensor()
    if printRes:
        print_results()
예제 #5
0
        ["Check ClusterXL state", "health.check_clusterxl_state(True)"])
    menu_item.append(
        ["Check ClusterXL sync stat", "health.check_clusterxl_sync(True)"])
    menu_item.append(
        ["Check ClusterXL PNotes", "health.check_clusterxl_pnote(True)"])
    menu_item.append(["Check fwha_version", "health.check_fwha_version(True)"])
    if func.fwVersion() == "R80.30" or func.fwVersion() == "R80.40":
        menu_item.append(
            ["Check ClusterXL CCP", "health.check_clusterxl_ccp(True)"])
    if func.fwVersion() == "R80.40":
        menu_item.append([
            "Check ClusterXL Multiversion",
            "health.check_clusterxl_release(True)"
        ])

if func.isManagement():
    menu_item.append(
        ["Check Management Status", "health.check_mgmt_status(True)"])
    menu_item.append(["Check Management API", "health.check_mgmt_api(True)"])
    menu_item.append(["Check GUI Clients", "health.check_mgmt_gui(True)"])
    menu_item.append(
        ["Check Database Locks", "health.check_mgmt_dblock(True)"])
    menu_item.append([
        "Check Database Verifications", "health.check_mgmt_validations(True)"
    ])
    menu_item.append(
        ["Check IPS Update Status", "health.check_mgmt_updateips(True)"])

if len(func.ipmiInfo()) > 0:
    menu_item.append(
        ["Check IPMI Sensor Database", "health.check_ipmi_sensor(True)"])