Skip to content

Commit 5cc7601

Browse files
committed
snmp: borrow dummy plugin as a start point
Add: ChatGPT in_snmp Add: snmp get with fix request Add: snmp with log recorder Add: print value by sprint_realloc_by_type Fix: refine code. Add: walk get values TMP
1 parent 3473638 commit 5cc7601

File tree

8 files changed

+591
-0
lines changed

8 files changed

+591
-0
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ include(GNUInstallDirs)
9292
include(ExternalProject)
9393
include(cmake/FindJournald.cmake)
9494
include(cmake/FindMonkey.cmake)
95+
include(cmake/FindNetsnmp.cmake)
9596
include(cmake/macros.cmake)
9697
include(cmake/platform_feature_checks.cmake)
9798
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/sanitizers-cmake/cmake" ${CMAKE_MODULE_PATH})
@@ -191,6 +192,7 @@ option(FLB_IN_HEAD "Enable Head input plugin"
191192
option(FLB_IN_PROC "Enable Process input plugin" Yes)
192193
option(FLB_IN_SYSTEMD "Enable Systemd input plugin" Yes)
193194
option(FLB_IN_DUMMY "Enable Dummy input plugin" Yes)
195+
option(FLB_IN_SNMP "Enable SNMP input plugin" Yes)
194196
option(FLB_IN_NGINX_EXPORTER_METRICS "Enable Nginx Metrics input plugin" Yes)
195197
option(FLB_IN_NETIF "Enable NetworkIF input plugin" Yes)
196198
option(FLB_IN_WINLOG "Enable Windows Log input plugin" No)

cmake/FindNetsnmp.cmake

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# - Find Net-SNMP
2+
#
3+
# -*- cmake -*-
4+
#
5+
# Find the Net-SNMP module
6+
#
7+
# NETSNMP_INCLUDE_DIR - where to find Net-SNMP.h, etc.
8+
# NETSNMP_LIBRARIES - List of libraries when using Net-SNMP.
9+
# NETSNMP_FOUND - True if Net-SNMP found.
10+
11+
IF (NETSNMP_INCLUDE_DIR)
12+
# Already in cache, be silent
13+
SET(NETSNMP_FIND_QUIETLY TRUE)
14+
ENDIF (NETSNMP_INCLUDE_DIR)
15+
16+
FIND_PATH(NETSNMP_INCLUDE_DIR snmp.h
17+
/usr/include/net-snmp/library
18+
)
19+
20+
SET(NETSNMP_NAMES netsnmp)
21+
FIND_LIBRARY(NETSNMP_LIBRARY
22+
NAMES ${NETSNMP_NAMES}
23+
PATHS /usr/lib /usr/local/lib
24+
)
25+
26+
SET(NETSNMPAGENT_NAMES netsnmpagent)
27+
FIND_LIBRARY(NETSNMPAGENT_LIBRARY
28+
NAMES ${NETSNMPAGENT_NAMES}
29+
PATHS /usr/lib /usr/local/lib
30+
)
31+
32+
SET(NETSNMPHELPERS_NAMES netsnmphelpers)
33+
FIND_LIBRARY(NETSNMPHELPERS_LIBRARY
34+
NAMES ${NETSNMPHELPERS_NAMES}
35+
PATHS /usr/lib /usr/local/lib
36+
)
37+
38+
SET(NETSNMPMIBS_NAMES netsnmpmibs)
39+
FIND_LIBRARY(NETSNMPMIBS_LIBRARY
40+
NAMES ${NETSNMPMIBS_NAMES}
41+
PATHS /usr/lib /usr/local/lib
42+
)
43+
44+
SET(NETSNMPTRAPD_NAMES netsnmptrapd)
45+
FIND_LIBRARY(NETSNMPTRAPD_LIBRARY
46+
NAMES ${NETSNMPTRAPD_NAMES}
47+
PATHS /usr/lib /usr/local/lib
48+
)
49+
50+
SET(NETSNMP_LIBRARIES
51+
${NETSNMP_LIBRARY}
52+
${NETSNMPAGENT_LIBRARY}
53+
${NETSNMPHELPERS_LIBRARY}
54+
${NETSNMPMIBS_LIBRARY}
55+
# ${NETSNMPTRAPD_LIBRARY}
56+
)
57+
58+
59+
INCLUDE(FindPackageHandleStandardArgs)
60+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETSNMP
61+
DEFAULT_MSG
62+
NETSNMP_INCLUDE_DIR
63+
NETSNMP_LIBRARIES
64+
)
65+
66+
MARK_AS_ADVANCED(
67+
NETSNMP_LIBRARY
68+
NETSNMPAGENT_LIBRARY
69+
NETSNMPHELPERS_LIBRARY
70+
NETSNMPMIBS_LIBRARY
71+
NETSNMPTRAPD_LIBRARY
72+
NETSNMP_INCLUDE_DIR
73+
)

plugins/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ REGISTER_IN_PLUGIN("in_prometheus_scrape")
216216
REGISTER_IN_PLUGIN("in_emitter")
217217
REGISTER_IN_PLUGIN("in_tail")
218218
REGISTER_IN_PLUGIN("in_dummy")
219+
REGISTER_IN_PLUGIN("in_snmp")
219220
REGISTER_IN_PLUGIN("in_head")
220221
REGISTER_IN_PLUGIN("in_health")
221222
REGISTER_IN_PLUGIN("in_http")

plugins/in_snmp/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set(NETSNMP_LIBRARIES ${NETSNMP_LIBRARY})
2+
set(NETSNMP_INCLUDE_DIRS ${NETSNMP_INCLUDE_DIR})
3+
4+
set(src
5+
in_snmp.c)
6+
7+
FLB_PLUGIN(in_snmp "${src}" "")
8+
target_link_libraries(flb-plugin-in_snmp ${NETSNMP_LIBRARIES})

0 commit comments

Comments
 (0)