diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b75c2e840b194228aae80c53573705d0d0a4b133 --- /dev/null +++ b/Makefile @@ -0,0 +1,126 @@ +VERSION = 1.0.2 +.PHONY: all install test + +PREFIX ?= /usr +ETCDIR ?= /etc +VARDIR ?= /var +BINDIR = $(DESTDIR)$(PREFIX)/bin +SYSTEMDDIR = $(DESTDIR)$(PREFIX)/lib/systemd/system +INCLUDEDIR = $(DESTDIR)$(PREFIX)/include +LIBINSTALLDIR = $(DESTDIR)$(PREFIX)/lib64 +LOGSAVEDIR = $(DESTDIR)$(VARDIR)/log/sysSentry +HBMREPAIRDIR = $(DESTDIR)$(ETCDIR)/hbm_online_repair.env + +SRCVERSION = $(shell git rev-parse --short HEAD 2>/dev/null) +SHELL = /bin/bash + +CURDIR = $(shell pwd) +CURSRCDIR = $(CURDIR)/src +CURLIBDIR = $(CURDIR)/libs +CURTESTDIR = $(CURDIR)/selftest +CURSERVICEDIR = $(CURDIR)/service +CURCONFIGDIR = $(CURDIR)/config + +PYBIN = $(shell which python3) +PYNAME = $(shell ls /usr/lib |grep -E '^python'| sort -V | tail -n1) +PYDIR = $(DESTDIR)$(PREFIX)/lib/$(PYNAME)/site-packages + +ifeq ($(shell uname -r | grep -q "4.19" && echo 1 || echo 0), 1) + KERNEL_IS_4_19 := 1 +else + KERNEL_IS_4_19 := +endif + +all: lib sentry hbm_online_repair cpu_patrol + + +install: dirs ilib isentry + + +dirs: + mkdir -p $(BINDIR) + mkdir -p $(ETCDIR) + mkdir -p $(PYDIR) + mkdir -p $(SYSTEMDDIR) + mkdir -p $(LOGSAVEDIR) + install -d -m 700 $(ETCDIR)/sysSentry/ + install -d -m 700 $(ETCDIR)/sysSentry/tasks/ + install -d -m 700 $(ETCDIR)/sysSentry/plugins/ + +sentry: + @echo "Kernel version is $(shell uname -r)" + @if [ $(KERNEL_IS_4_19) -eq 1 ]; then \ + cd $(CURSRCDIR)/sentryCollector/ebpf_collector/ && make; \ + else \ + echo "Kernel is not 4.19, skipping building ebpf_collector"; \ + fi + +isentry: + cd $(CURSRCDIR)/python/ && $(PYBIN) setup.py install -O1 --root=build/ --record=SENTRY_FILES + find $(CURSRCDIR)/python/build/ -type d -name '__pycache__' -exec rm -rf {} + + install -m 600 $(CURCONFIGDIR)/logrotate-sysSentry.conf $(DESTDIR)$(ETCDIR)/sysSentry/ + install -m 600 $(CURCONFIGDIR)/inspect.conf $(ETCDIR)/sysSentry/ + install -m 600 $(CURCONFIGDIR)/xalarm.conf $(ETCDIR)/sysSentry/ + install -m 600 $(CURCONFIGDIR)/tasks/cpu_sentry.mod $(ETCDIR)/sysSentry/tasks/ + install -m 600 $(CURCONFIGDIR)/plugins/cpu_sentry.ini $(ETCDIR)/sysSentry/plugins/ + install -m 600 $(CURSRCDIR)/c/hbm_online_repair/hbm_online_repair.env $(ETCDIR)/ + install -m 600 $(CURCONFIGDIR)/tasks/hbm_online_repair.mod $(ETCDIR)/sysSentry/tasks/ + install -m 600 $(CURCONFIGDIR)/tasks/cpu_sentry.mod $(ETCDIR)/sysSentry/tasks/ + install -m 600 $(CURCONFIGDIR)/tasks/rasdaemon.mod $(ETCDIR)/sysSentry/tasks/ + install -m 600 $(CURSERVICEDIR)/sysSentry.service $(SYSTEMDDIR) + install -m 600 $(CURSERVICEDIR)/xalarmd.service $(SYSTEMDDIR) + install -d -m 550 $(PYDIR)/syssentry + install -d -m 550 $(PYDIR)/xalarm + install -d -m 550 $(PYDIR)/sentryCollector + install -m 550 src/python/build/usr/local/lib/$(PYNAME)/site-packages/syssentry/* $(PYDIR)/syssentry + install -m 550 src/python/build/usr/local/lib/$(PYNAME)/site-packages/xalarm/* $(PYDIR)/xalarm + install -m 550 $(CURSRCDIR)/python/syssentry/sentryctl $(BINDIR) + install -m 550 $(CURSRCDIR)/python/build/usr/local/bin/syssentry $(BINDIR) + install -m 550 $(CURSRCDIR)/python/build/usr/local/bin/xalarmd $(BINDIR) + +lib: + cd $(CURSRCDIR)/libso && cmake . -DXD_INSTALL_BINDIR=$(LIBINSTALLDIR) -B build + cd $(CURSRCDIR)/libso/build && make + +ilib: + cd $(CURSRCDIR)/libso/build && make install + install -d -m 644 $(INCLUDEDIR)/xalarm + install -m 644 $(CURSRCDIR)/libso/xalarm/register_xalarm.h $(INCLUDEDIR)/xalarm/ + +cpu_patrol: + cd $(CURSRCDIR)/c/catcli/catlib/plugin/cpu_patrol && cmake -B ./build/ -S . -DCMAKE_INSTALL_PREFIX=/usr/local + cd $(CURSRCDIR)/c/catcli/catlib/plugin/cpu_patrol/build && make + +hbm_online_repair: + cd $(CURSRCDIR)/c/hbm_online_repair/ && make + +clean-install: + rm -rf $(CURLIBDIR)/build + rm -rf $(CURSRCDIR)/build + rm -rf $(CURSRCDIR)/syssentry.egg-info + rm -rf $(CURSRCDIR)/SENTRY_FILES + +clean: clean-install + rm -rf $(BINDIR)/sentryctl + rm -rf $(BINDIR)/syssentry + rm -rf $(BINDIR)/xalarmd + rm -rf $(BINDIR)/sentryCollector + rm -rf $(BINDIR)/hbm_online_repair + rm -rf $(LIBINSTALLDIR)/libxalarm.so + rm -rf $(INCLUDEDIR)/xalarm + rm -rf $(ETCDIR)/sysSentry + rm -rf $(LOGSAVEDIR)/sysSentry + rm -rf $(PYDIR)/syssentry + rm -rf $(PYDIR)/xalarm + rm -rf $(PYDIR)/sentryCollector + rm -rf $(SYSTEMDDIR)/sysSentry.service + rm -rf $(SYSTEMDDIR)/xalarmd.service + rm -rf $(SYSTEMDDIR)/sentryCollector.service + systemctl daemon-reload + +test: + +startup: + systemctl daemon-reload + systemctl restart xalarmd + systemctl restart sysSentry diff --git a/src/c/catcli/catlib/plugin/cpu_patrol/CMakeLists.txt b/src/c/catcli/catlib/plugin/cpu_patrol/CMakeLists.txt index e11e5e71eb41280a22fd6311d5ef1b06ff3d782c..f1cfbfafc450c3c71c30804462bb335865c318f6 100644 --- a/src/c/catcli/catlib/plugin/cpu_patrol/CMakeLists.txt +++ b/src/c/catcli/catlib/plugin/cpu_patrol/CMakeLists.txt @@ -4,8 +4,8 @@ file(GLOB CPU_PATROL_SRC *.c) add_library(cpu_patrol SHARED ${CPU_PATROL_SRC}) -include_directories(${CMAKE_SOURCE_DIR}/../../../libso/) -link_directories(${CMAKE_SOURCE_DIR}/../../../libso/build/xalarm/) +include_directories(${CMAKE_SOURCE_DIR}/../../../../../libso/) +link_directories(${CMAKE_SOURCE_DIR}/../../../../../libso/build/xalarm/) -TARGET_LINK_LIBRARIES(cpu_patrol pthread -ldl ${CMAKE_SOURCE_DIR}/../../../libso/build/xalarm/libxalarm.so) +TARGET_LINK_LIBRARIES(cpu_patrol pthread -ldl ${CMAKE_SOURCE_DIR}/../../../../../libso/build/xalarm/libxalarm.so) diff --git a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol.h b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol.h index f7acd1e0441221b151f2577627ee36ac59a8aef4..3008bf1274b36c75141c58715b958140f853f3f8 100644 --- a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol.h +++ b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol.h @@ -2,7 +2,7 @@ #define CPU_PATROL_H #include -#include "cat_structs.h" +#include "../../cat_structs.h" #define MAX_PATROL_TIMES 36000 // 巡检用例执行的次数,最佳效果为不低于36000 #define PATROL_TIMES_PER_ITERATION 200 // 把MAX_PATROL_TIMES分成多次迭代进行,每次迭代内核执行的巡检用例次数,CPU利用率100%情况下,一次迭代执行约1秒,防呆 #define DECIMAL_STR_LEN 11 diff --git a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.c b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.c index 8e313124493bc4de05e696264ee99baf346d3669..fe4f01372f3de1f1a076528a4f32ab83f37af049 100644 --- a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.c +++ b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.c @@ -8,7 +8,7 @@ #include #include -#include "cat_structs.h" +#include "../../cat_structs.h" #include "cpu_patrol_result.h" core_list_st g_isolated_core_list = { 0 }; diff --git a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.h b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.h index 9722ec954403d0ce60ceee2477827c54ed7b717d..a625d194bc8bf0d172cf2779bdeaa41b6aafe3a4 100644 --- a/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.h +++ b/src/c/catcli/catlib/plugin/cpu_patrol/cpu_patrol_result.h @@ -3,7 +3,7 @@ #include #include -#include "cat_structs.h" +#include "../../cat_structs.h" #define CPU_PATH_FORMAT "/sys/devices/system/cpu/cpu%d/online" #define PATROL_RESULT_LEN 512