hertzbeat icon indicating copy to clipboard operation
hertzbeat copied to clipboard

[Task] [OSPP] JAVA implements the native ipmi2 communication protocol

Open TJxiaobao opened this issue 2 months ago • 5 comments

Description

project description: HertzBeat is an open-source real-time monitoring and alerting tool with powerful custom monitoring capabilities and no need for agents. HertzBeat supports various monitoring protocols such as HTTP, JMX, JDBC, and SNMP. By encapsulating these protocols, it can achieve monitoring of various middleware without the need for agents. To expand the monitoring scope of HertzBeat, we plan to implement the query part of the native IPMI2 protocol in Java without relying on third-party libraries, and use this protocol to obtain server motherboard information, network card information, power information, fan information, temperature sensor information, and clock information.

Specific requirements:

  1. Use Java to implement the native IPMI2 protocol (query part) based on the UDP protocol, without relying on any third-party libraries.
  2. Use the implemented IPMI2 protocol to query the various metric information of the servers with IPMI enabled, including motherboard information, network card information, power information, fan information, temperature sensor information, and clock information.
  3. Abstract and standardize the queried metric information, and implement configuration-based management (optional).
  4. Output detailed project documentation, including design ideas, implementation details, and usage instructions.

Project Deliverables:

  • The feature code can be merged into the HertzBeat repository through a PR.
  • Complete the encapsulation of the native IPMI2 protocol based on the Java UDP protocol and be able to monitor the corresponding servers.
  • Highly customize the monitoring metrics through the configuration of the YML file (optional).
  • Refine the help documentation.

Technical Requirements:

  • Have a passion for open source and a strong interest.
  • Have a certain degree of research spirit and a good learning attitude.
  • Familiar with or need to deepen the learning of Java I/O Buffer, encryption algorithm use, network
  • communication protocol parsing, etc.
  • Familiar with the basic concepts, working principles, and usage of UDP communication.

Task List

  • [ ] The feature code can be merged into the HertzBeat repository through a PR.
  • [ ] Complete the encapsulation of the native IPMI2 protocol based on the Java UDP protocol and be able to monitor the corresponding servers.
  • [ ] Highly customize the monitoring metrics through the configuration of the YML file (optional).
  • [ ] Refine the help documentation.

TJxiaobao avatar Apr 20 '24 02:04 TJxiaobao