lider-ahenk-docs/developers/lider/veritabanı.md

120 lines
7.1 KiB
Markdown
Raw Normal View History

## Veritabanı
Lider Ahenk veritabanı olarak MariaDB 10.x kullanılmakta ve veritabanı katmanı olarak Lider içerisinde OpenJPA kullanılmaktadır.
Veritabanına ait EER diagramına [bu adresten](http://agem.com.tr/liderahenk/liderdb.mwb) erişebilirsiniz.
Lider Ahenk (görev işletimi, politika uygulama, Ahenk kaydı gibi) süreçlerinde sıklıkla kullanılan bazı veritabanı tabloları
ve açıklamaları aşağıdaki gibidir:
### C_COMMAND
```
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| COMMAND_ID | bigint(20) | NO | PRI | NULL | |
| ACTIVATION_DATE | date | YES | | NULL | |
| COMMAND_OWNER_UID | varchar(255) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DN_LIST | text | YES | | NULL | |
| DN_TYPE | int(11) | YES | | NULL | |
| POLICY_ID | bigint(20) | YES | MUL | NULL | |
| TASK_ID | bigint(20) | YES | MUL | NULL | |
+-------------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev veya uygulanan her bir politikaya karşılık C_COMMAND tablosunda yeni bir kayıt oluşturulur. Yapılan
işlemin (görev yada politika) LDAP üzerinde hangi ögeler (DN_LIST) üzerinde çalıştırıldığı, bu ögelerden hangilerinin dikkate
alınması gerektiği (DN_TYPE) ve işlemin kim tarafından yapıldığını kayıt altına alır. Söz konusu her bir kayıt C_TASK veya C_POLICY
tablosuna referans vermektedir.
### C_TASK
```
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| TASK_ID | bigint(20) | NO | PRI | NULL | |
| COMMAND_CLS_ID | varchar(255) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| CRON_EXPRESSION | varchar(255) | YES | | NULL | |
| DELETED | bit(1) | YES | | NULL | |
| MODIFY_DATE | datetime | YES | | NULL | |
| PARAMETER_MAP | longblob | YES | | NULL | |
| PLUGIN_ID | bigint(20) | NO | MUL | NULL | |
+-----------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev için C_TASK tablosunda yeni bir kayıt oluşturulmaktadır ve görev işletimi sırasında Lider Arayüz üzerinden
gönderilen görev parametrelerini içermektedir.
### C_POLICY
```
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| POLICY_ID | bigint(20) | NO | PRI | NULL | |
| ACTIVE | bit(1) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DELETED | bit(1) | YES | | NULL | |
| DESCRIPTION | varchar(255) | YES | | NULL | |
| LABEL | varchar(255) | NO | | NULL | |
| MODIFY_DATE | datetime | YES | | NULL | |
| POLICY_VERSION | varchar(255) | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
```
Kaydedilen her bir politika için C_POLICY tablosunda bir kayıt oluşturulmakta ve her bir kayıt ilgili politikaya
dair politika adı, açıklaması, oluşturulma tarihi ve sürümü gibi bilgileri tutmaktadır. Diğer belgelerde açıklandığı gibi bir
politika bir veya birden fazla profil kaydından oluşmaktadır ve politikaya ait herhangi bir profilin değiştirilmesi durumunda
politika üzerindeki sürüm değeri bir arttırılmaktadır. Bu sürüm değeri Ahenk'in politika sorguladığı durumlarda bir politikanın
değişip değişmediğinin anlaşılması için kullanılmaktadır.
### C_COMMAND_EXECUTION
```
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| COMMAND_EXECUTION_ID | bigint(20) | NO | PRI | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DN | varchar(255) | YES | | NULL | |
| DN_TYPE | int(11) | YES | | NULL | |
| COMMAND_ID | bigint(20) | NO | MUL | NULL | |
+----------------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev ve uygulanan her bir politika için C_COMMAND tablosunda bir kayıt oluşturulduğundan bahsetmiştik. Yapılan
bu işlemde kaç tane LDAP ögesi var ise, her biri için C_COMMAND_EXECUTION tablosunda birer kayıt oluşturulmaktadır. Örneğin; LDAP
ağacında 3 adet Ahenk ögesi seçilerek 'ekran görüntüsü al' görevi işletildiğinde, 1 adet C_COMMAND kaydı altında (her bir Ahenk
DN değerine karşılık) 3 adet C_COMMAND_EXECUTION kaydı oluşturulur.
### C_COMMAND_EXECUTION_RESULT
```
+-----------------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------+------------+------+-----+---------+-------+
| COMMAND_EXECUTION_RESULT_ID | bigint(20) | NO | PRI | NULL | |
| AGENT_ID | bigint(20) | YES | | NULL | |
| CONTENT_TYPE | int(11) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| RESPONSE_CODE | int(11) | NO | | NULL | |
| RESPONSE_DATA | longblob | YES | | NULL | |
| RESPONSE_MESSAGE | text | YES | | NULL | |
| COMMAND_EXECUTION_ID | bigint(20) | NO | MUL | NULL | |
+-----------------------------+------------+------+-----+---------+-------+
```
Detay tablo olarak görev yapan C_COMMAND_EXECUTION_RESULT tablosu işletilen her bir görev veya uygulanan her bir politika
ait sonuç mesajların saklanması için kullanılmaktadır. Buna göre daha önceki örnekten devam edersek, LDAP ağacında 3 adet
Ahenk ögesi seçilerek 'ekran görüntüsü al' görevi işletildiğinde, 1 adet C_COMMAND kaydı altında 3 adet C_COMMAND_EXECUTION
kaydı ve her bir C_COMMAND_EXECUTION kaydı altında 1 adet C_COMMAND_EXECUTION_RESULT kaydı oluşturulur.
Bu tablonun detay tablo olarak yaratılması, görev veya politika sonucu olarak birden fazla sonucun döndürülebilmesine olanak sağlar.
Buna göre; örneğin (CPU, disk, RAM bellek gibi) sistem kaynaklarının belirli aralıklarla dinlendiği ve eşik değerin aşılmasıyla
uyarı mesajı döndürüldüğü bir görev işletilirken, eşik değer her geçildiğinde gönderilen görev sonucu bir C_COMMAND_EXECUTION_RESULT
kaydı olarak veritabanında tutulmaktadır.