Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:architecture [10.09.2018 15:18] – mach@cesnet.cz | en:architecture [01.04.2025 10:38] (current) – Switch links from Redmine to Gitlab ph_cesnet.cz | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Architecture ====== | ====== Architecture ====== | ||
- | The //Mentat// system has been designed as a distributed modular system with an emphasis on its easy extendability and scalability. The core of the system reflects the architecture of MTA system [[http:// | + | The //Mentat// system has been designed as a distributed modular system with an emphasis on its easy extendability and scalability. The core of the system reflects the architecture of MTA system [[http:// |
Mentat itself does not have any network communication protocol for receiving events or messages from the outside (however nothing stops you from implementing your own module). Instead it relies on the services of [[https:// | Mentat itself does not have any network communication protocol for receiving events or messages from the outside (however nothing stops you from implementing your own module). Instead it relies on the services of [[https:// | ||
Line 10: | Line 10: | ||
^ Database | [[https:// | ^ Database | [[https:// | ||
^ Data model | [[https:// | ^ Data model | [[https:// | ||
- | ^ Git repository | '' | + | ^ Git repository | '' |
- | ^ Ticket system | [[https://homeproj.cesnet.cz/projects/ | + | ^ Ticket system | [[https://gitlab.cesnet.cz/713/mentat/ |
- | ^ Package format | deb, tar [[https://alchemist.cesnet.cz/ | + | ^ Package format | deb, tar [[https://713.gitlab-pages.cesnet.cz/ |
- | ^ Documentation | [[https://alchemist.cesnet.cz/ | + | ^ Documentation | [[https://713.gitlab-pages.cesnet.cz/ |
===== Current system architecture ===== | ===== Current system architecture ===== | ||
Line 19: | Line 19: | ||
The diagram below provides an overview of the existing architecture of the //Mentat// system. | The diagram below provides an overview of the existing architecture of the //Mentat// system. | ||
- | {{ :: | + | {{ :: |
The implementation language is strictly [[https:// | The implementation language is strictly [[https:// | ||
Line 25: | Line 25: | ||
The //Mentat// system consists of tools allowing processing events both in real time and retrospectively over a particular period of time. At present, the following most important modules for real time processing are available: | The //Mentat// system consists of tools allowing processing events both in real time and retrospectively over a particular period of time. At present, the following most important modules for real time processing are available: | ||
- | * **mentat-inspector.py**\\ This module enables the processing of [[https:// | + | * **mentat-inspector.py**\\ This module enables the processing of [[https:// |
- | * **mentat-enricher.py**\\ This module enables the enrichment of incoming [[https:// | + | * **mentat-enricher.py**\\ This module enables the enrichment of incoming [[https:// |
- | * **mentat-storage.py**\\ This module enables to store incoming [[https:// | + | * **mentat-storage.py**\\ This module enables to store incoming [[https:// |
| | ||
Most modules enabling retrospective event processing are based on regularly re-launched scripts (i.e. **crons**). At present moment the following modules enabling retrospective event processing are available: | Most modules enabling retrospective event processing are based on regularly re-launched scripts (i.e. **crons**). At present moment the following modules enabling retrospective event processing are available: | ||
- | * **mentat-statistician.py**\\ This module enables statistical processing of events over a given self-defined period. At present, the feature is configured to five-minute intervals. For each of these intervals, it determines the frequency of events according to detector type, event type, IP address etc. These statistical reports are stored in a separate database and can later support an overview of system’s operation, provide underlying data for other statistical reports or for the creation of dictionaries for a web interface. [[https://alchemist.cesnet.cz/ | + | * **mentat-statistician.py**\\ This module enables statistical processing of events over a given self-defined period. At present, the feature is configured to five-minute intervals. For each of these intervals, it determines the frequency of events according to detector type, event type, IP address etc. These statistical reports are stored in a separate database and can later support an overview of system’s operation, provide underlying data for other statistical reports or for the creation of dictionaries for a web interface. [[https://713.gitlab-pages.cesnet.cz/ |
- | * **mentat-reporter.py**\\ This module enables to distribute periodical event reports directly to end abuse contacts of responsible network administrators. More information about the reporter as a service provided by [[https:// | + | * **mentat-reporter.py**\\ This module enables to distribute periodical event reports directly to end abuse contacts of responsible network administrators. More information about the reporter as a service provided by [[https:// |
- | * **mentat-informant.py**\\ This module is similar to the above described reporter. It provides periodical summary reports on system’s statuses and reports sent. It is most useful for system administrators or for target abuse contacts as status overview. [[https://alchemist.cesnet.cz/ | + | * **mentat-informant.py**\\ This module is similar to the above described reporter. It provides periodical summary reports on system’s statuses and reports sent. It is most useful for system administrators or for target abuse contacts as status overview. [[https://713.gitlab-pages.cesnet.cz/ |
Little bit on the side is a big collection of utility and management scripts and | Little bit on the side is a big collection of utility and management scripts and | ||
tools that attempt to simplify repeated dull tasks for the system administrator. Some of the most useful ones are following: | tools that attempt to simplify repeated dull tasks for the system administrator. Some of the most useful ones are following: | ||
- | * **mentat-controller.py**\\ A script enabling to control all configured deamons/ | + | * **mentat-controller.py**\\ A script enabling to control all configured deamons/ |
- | * **mentat-backup.py**\\ A configurable module enabling periodical database backups. At present, a full backup of system tables (users, groups …) is created once a day while [[https:// | + | * **mentat-backup.py**\\ A configurable module enabling periodical database backups. At present, a full backup of system tables (users, groups …) is created once a day while [[https:// |
- | * **mentat-cleanup.py**\\ A configurable module enabling periodical database and filesystem cleanups. [[https://alchemist.cesnet.cz/ | + | * **mentat-cleanup.py**\\ A configurable module enabling periodical database and filesystem cleanups. [[https://713.gitlab-pages.cesnet.cz/ |
The last important component of the system is a web user interface: | The last important component of the system is a web user interface: | ||
- | * **Hawat**\\ Customizable and easily extentable web user interface based on [[http:// | + | * **Hawat**\\ Customizable and easily extentable web user interface based on [[http:// |
===== Module architecture ===== | ===== Module architecture ===== | ||
- | As mentioned above, all system modules, including continuously running deamons or periodically launched scripts, use a simple common framework called | + | As mentioned above, all system modules, including continuously running deamons or periodically launched scripts, use a simple common framework called PyZenKit, which ensures all common features: |
- | [[https:// | + | |
* Application life-cycle management. | * Application life-cycle management. | ||
Line 102: | Line 101: | ||
==== Web interface architecture ==== | ==== Web interface architecture ==== | ||
- | The web interface for Mentat system is called [[https://alchemist.cesnet.cz/ | + | The web interface for Mentat system is called [[https://713.gitlab-pages.cesnet.cz/ |
easier a suite of custom tools had to be implemented to enable better interface component integration. | easier a suite of custom tools had to be implemented to enable better interface component integration. | ||
- | [[http:// | + | [[http:// |