Compare commits

...

1 Commits

12 changed files with 188 additions and 5 deletions

View File

@ -51,9 +51,13 @@ install-ogagent:
cp scripts/OGAgentTool-startup $(BINDIR) cp scripts/OGAgentTool-startup $(BINDIR)
cp scripts/OGAgentTool $(BINDIR) cp scripts/OGAgentTool $(BINDIR)
# Copy Filebeat directory
cp -r $(SOURCEDIR)/filebeat $(LIBDIR)/filebeat
# Fix permissions # Fix permissions
chmod 755 $(BINDIR)/ogagent chmod 755 $(BINDIR)/ogagent
chmod 755 $(BINDIR)/OGAgentTool-startup chmod 755 $(BINDIR)/OGAgentTool-startup
chmod 755 $(LIBDIR)/filebeat/install_filebeat.sh
chmod 755 $(LIBDIR)/OGAgentUser.py chmod 755 $(LIBDIR)/OGAgentUser.py
chmod 600 $(LIBDIR)/cfg/ogagent.cfg chmod 600 $(LIBDIR)/cfg/ogagent.cfg

View File

@ -12,6 +12,6 @@ Priority: optional
Architecture: all Architecture: all
Depends: Depends:
policykit-1 (>= 0.100), python3 (>=3.4) | python (>= 3.4), python3-pyqt6, python3-requests, policykit-1 (>= 0.100), python3 (>=3.4) | python (>= 3.4), python3-pyqt6, python3-requests,
python3-six, python3-prctl, python3-distro, libxss1, zenity, ${misc:Depends} python3-six, python3-prctl, python3-distro, libxss1, zenity, ${misc:Depends}, ${python3:Depends}, python3
Description: OpenGnsys Agent for Operating Systems Description: OpenGnsys Agent for Operating Systems
This package provides the required components to allow this machine to work on an environment managed by OpenGnsys. This package provides the required components to allow this machine to work on an environment managed by OpenGnsys.

Binary file not shown.

View File

@ -6,6 +6,17 @@ set -e
case "$1" in case "$1" in
configure) configure)
chmod 600 /usr/share/OGAgent/cfg/ogagent.cfg chmod 600 /usr/share/OGAgent/cfg/ogagent.cfg
# Instalar filebeat directamente desde el paquete incluido
if [ -f /usr/share/OGAgent/filebeat/filebeat-oss-7.12.1-amd64.deb ]; then
echo "TRYING INSTALLING FILEBEAT"
# Crear un servicio temporal con un retraso de 30 segundos
systemd-run --quiet --unit=install-filebeat \
--on-active=30s \
/usr/share/OGAgent/filebeat/install_filebeat.sh
else
echo "Advertencia: El paquete filebeat no se encuentra en /usr/share/OGAgent/" >&2
fi
;; ;;
abort-upgrade|abort-remove|abort-deconfigure) abort-upgrade|abort-remove|abort-deconfigure)
;; ;;

View File

@ -5,6 +5,7 @@
set -e set -e
if [ "$1" = "purge" ] ; then if [ "$1" = "purge" ] ; then
update-rc.d ogagent remove || true
rm -rf /usr/share/OGAgent || true > /dev/null 2>&1 rm -rf /usr/share/OGAgent || true > /dev/null 2>&1
fi fi

View File

@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIFCzCCAvMCFFUAATNZqrxFv9E6ni4/Gd7yikIxMA0GCSqGSIb3DQEBCwUAMEIx
CzAJBgNVBAYTAkVTMQ8wDQYDVQQIDAZNYWRyaWQxDzANBgNVBAcMBk1hZHJpZDER
MA8GA1UEAwwIY2EubXl0bGQwHhcNMjQxMjE4MTUxNDEyWhcNNDQxMjEzMTUxNDEy
WjBCMQswCQYDVQQGEwJFUzEPMA0GA1UECAwGTWFkcmlkMQ8wDQYDVQQHDAZNYWRy
aWQxETAPBgNVBAMMCGNhLm15dGxkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEA0gXrrtQKNHKZ+BZs+x++CqobPy02Q1qPnPdD8Md5IXa9FyVHFdtB67j4
b5KbI03BU8pi8OHL4wnZI2nWizsao02zXl7ukNuKaWjh0pqTqgBxPjYIiREh4Nai
y5DywT9XESiB9LwRB5PDOa4zJPCMd5czumvXV1JCxJh/9wstys90d9lexGdiHWm6
TvLuI1kyiRh4vVS3L4Nr2pypgvI7JJsMCMjjvX6F1VosELgRRIqSFwrmqzCG0qV1
+FCtbLWZeto7HoVGdJx8XyyCpEYI4luXeGo+f61KZoXoqQ2+5CrTcik199TAdYUg
Oa3OlO4+PWRtLqqyn5gyg1Dhdj/hTvsPP/xXaJERdTn3dPYYzKTaJqja2cdkt8J5
YHz/Az+6cFEJbeWTrY+k8jvZX2i7QhylG9hcbXbflEA0woy6cqGmLxIZo5kcj0Hy
M1dUjvAMkKJgAyshjeUbhW7wH0XndQ9AQ518mPg0o4ygbjBCkeBSBqvsTQrRCdnb
+ogE+XzxWXEsNVXiysC3ZURpr+UHMHSeAYin2h8wjZsIC7fRVisdBOkYSYu9NQhU
3eLZtjhCgFSzxHOUJ7mI4SbGcw6awwr+irrQNg/HNL4EoEh7xwbvXMU09jA0JLWA
G7mpMs4PpAgNyYej68uignXlwDUruxYmZcSr/fQrvtWlCHtj5MUCAwEAATANBgkq
hkiG9w0BAQsFAAOCAgEABDXtALkRebuUQwFLpEd9INcfzVxtBNiheFJ3Ip/vzNFK
Wg9p1JYIQBB8nvYyr5OGBK0bvz40GZhXUwOxsPnXxjpZMQ2716wDI3BP7N9MP29c
0Zd/8+dgfbiRq0PURRThF0UEjFZeL/pr8wKP6YBl5xBKkRHgX8YG2RPQuf0GaIKB
jmHGVKsfROWpOS8xQzmeQQq2BLEVKhSdE/f3MqUl8/ml+dheAwaSrxicl5CcalTg
7TI6vdo85uoyI4WvSM1+yh5scNlLHvJlq1Poz/qKipukqY9YiKD0PpkY4BkM1qI8
AqYnT/W0rce/UvwQPBYsCXNU8rvQZ0gsxaTKTK2bgNLi9ahlfYkSpKmt+vS/mwBh
8PqkcAYqzNbWwmhQWK+QKVAOJHRPoXAwgoG7YFHYDTeNetroLzJsGL9IJojuO0vK
Ug7wLTSbh/8Y35WB4gyNfJX+7VdWyiZXL/aPtjWBP6ts7oJuUYrU+s4oaap7suL4
b85JN+/zlXP2X3EswCFhHSveuHJtkVnUBOpxa54YRw2N3MqOPSS+Csy0lu1qmfcP
/1+S/VtxM9s5P1cyK3zIww0DSSAz5O/WWcI9Zt9lAUCp0V6ubQxk3MVIimvv8mkZ
E9gCCqd7VgrZvZTGz1uaNWv60MUD2SHwEg4IOQQo7+szsDx3jQkTJYBwtB4eTaw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEsTCCApmgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwQjELMAkGA1UEBhMCRVMx
DzANBgNVBAgMBk1hZHJpZDEPMA0GA1UEBwwGTWFkcmlkMREwDwYDVQQDDAhjYS5t
eXRsZDAeFw0yNDEyMTgxNTE0MTRaFw0yNTEyMjgxNTE0MTRaMEoxCzAJBgNVBAYT
AkVTMQ8wDQYDVQQIDAZNYWRyaWQxDzANBgNVBAcMBk1hZHJpZDEZMBcGA1UEAwwQ
b2dhZ2VudC1mYi5teXRsZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMoywL3S1gPxsTfkLWX/cNGIz0S0+KhtrBtVRrRPKL6Snu67Zo9KjQL7+Slp5ybR
0F5ZnK+XDBmMaqbAKTBxNb5jmui+3ACbwpD1c+TGMR96wVj2BOr6z+Ir0a1iE4mS
cAXlXPl4UFqcmcS+fRlkrtLuR7b94oxtwkKxqw1hq0irQAmJPKN2X3uL2etM99/E
Ll4LR7dZlCd0FBMN8Ku/8TSG5Z/liCSs/AFaY/PYJZ61rCIIeHxiixQXJqvtyhjV
8q82ezwrvW4yK3y1gBBNA6Njwpaz/foWaUEEgD+MgIavVIxaRMCnqPFBn+uulZqh
TMztgxLX//zfjXxCBWQdRAkCAwEAAaOBqDCBpTAbBgNVHREEFDASghBvZ2FnZW50
LWZiLm15dGxkMB0GA1UdDgQWBBQjcSfmTGnC+nzg13aLxBdEKluMfTBnBgNVHSME
YDBeoUakRDBCMQswCQYDVQQGEwJFUzEPMA0GA1UECAwGTWFkcmlkMQ8wDQYDVQQH
DAZNYWRyaWQxETAPBgNVBAMMCGNhLm15dGxkghRVAAEzWaq8Rb/ROp4uPxne8opC
MTANBgkqhkiG9w0BAQsFAAOCAgEAlf5LgmqjJxXD0j8A0uOXibNlhullEtPZAskl
HKOpwyHO+wLgTkQVLR7Kx88l0Kqje/YI61AUyXrK+6qvfevHWNgMxyVc0n9bW0Qk
qgPOjYA3/l6vJOcODFKYkigeF4GHbicBFmmha8eVCLBmNEsmbZlqyeKjC0WpnyhL
OFxGwqjC3vqH59eS4ufW1pWSNw+pSXj5QeyhDcla1kZWgx0hgsBkEODI9RZ32mKk
wHGUYhpFBO0Xg3AUiOfMUcMbhCojAC3xZ2hdw+joVkLgFnEoh2nuSEIGwb+bNGiH
9Qr23gLuilsGwD1fev4NA09ityaadutNL+XNBOKM811fJsfvnOMD/6d0RnCdg7gw
zT+XL6YhQmzSzs2NnMUUCbg85DGG4LVyvELzs6deLuEF4qp7udATYrdJZ9P1nNEs
XWs6/4Y1RX5TRO5sWeWEdgMP1Avlu9fkxJGipbABsptUbDsQIJyBvWLfbQ/++yKv
d10CJxHosT88qqn/oT8hBhvJC6yrOI0ZUszfaf7taYlGDSJj+azSuTkZ12yaQ4ql
YVgyO8w7KI6fpldnWOK3ReAAR6g0GI1d5ZRnx82RVg/NUkMgMoWcuCV386vo6Y5T
2CBmg1khtAASJAS2MnCi7qJNJH0WZy/pFCbN0bJzKsDqz3DAa4huA3v9PmFJ8OcK
QG0vBDg=
-----END CERTIFICATE-----

View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDKMsC90tYD8bE3
5C1l/3DRiM9EtPiobawbVUa0Tyi+kp7uu2aPSo0C+/kpaecm0dBeWZyvlwwZjGqm
wCkwcTW+Y5rovtwAm8KQ9XPkxjEfesFY9gTq+s/iK9GtYhOJknAF5Vz5eFBanJnE
vn0ZZK7S7ke2/eKMbcJCsasNYatIq0AJiTyjdl97i9nrTPffxC5eC0e3WZQndBQT
DfCrv/E0huWf5YgkrPwBWmPz2CWetawiCHh8YosUFyar7coY1fKvNns8K71uMit8
tYAQTQOjY8KWs/36FmlBBIA/jICGr1SMWkTAp6jxQZ/rrpWaoUzM7YMS1//83418
QgVkHUQJAgMBAAECggEABROoJjv8dqXjYrlecHCs9v3d4mY+1g/G4frOpylTpxFM
X0ciSJfBGaGU/Ha1wJJFDpFmbzw2KBAP/3bUsewtwsWCdrSQFo3SoUwgaE6Xnig5
YY/vyKyaep3KCnXrcqlUGbnMD1F3hwbmj3uO7YvLHe2wrEYMoaUB2yXV2ySoJc9n
ghbRU3oaDl1rZWtDFxSSVLuntYkahST8bqiznUCVNd2DfyZJ0yUTzX/MxgKe0MSo
qPFsnBnLRgywl3hfG/gR/rtVwDZGxY/KhCX9mHEzk74/iCQasguCatdC862ZFUaK
YSRVn6i25Eja+PSTrSNEqkXe65RRNBzunjTroJu9AQKBgQDrrdPXTW3NsnS5tsKi
4TLriWRoeLVG5QUvcVhmCrYYunAkU9X3DaJyfn5rMLnpKhSDDj0/zPsGFSXPaax4
XP/xwYZBezXlqBALWtUtecZ+lWaLxIPrPto02Le/ARTELolfXF72NBmGovtNlwnG
4i8mvx0G/NS/tn8GIryBD02DwQKBgQDboeZ+QpkEN3mkeETdsTiYvSl8qGJ8DJpd
VgAs5tyARgOQHBlfPQRSgNIgxlLs+UMMW5Q3l53B2bAh8v64cEalZyRJsWYD+5BW
v7T08RoofuL087F1u2/IscgUuEacZKcjrRvvugIvh6TLPhPePqN/MUe0Gd163Czr
XQQaiQcySQKBgQDTQRBnqJ8pR7J7mcfj6osTOCeJwdF0R+ua+DWt2iIaDlxhI8ji
WBVqHdrByH6M80xJoWTjoKDOdfxbbDTN+0bs9HSck43fWwNuui/mQIbdhpvR4wgA
wWkk/7HNA3IS3EgE866ncFIFLmimxyFbZfmv+JVTYyRs6G/6Fv7zjL0FwQKBgB0O
OA3wBYo3RJJrjsC9Vz1tmPVy2USL7kf2vqMyD22w1XvVG84rpky72hCX7BSJjUMv
QlZwamBgyhpTqTsBL3dmQ7i0DUjtmNTBG9FjrBA7aQ76xjlLCKjGTC/hiQXbkvj3
R8DZHLzo9vYkSkCWjM6g2FmNKm28fvzMG2TfR+JxAoGAbycyqTwbUXgv030Mcmtu
SnIqVsUW5aZ7UoAsWRo10vo2OpVQ+2FT+jcChnue0G5ffy7344wRN4Q+xixG/hlP
QdMwhl94+Cj9DHxwTuPELfahr0289tcjHP+CTw1SlTgDR7bgaa9/PVJeUl8mreuC
lolkshxjAE5pFYIG3ozFIoY=
-----END PRIVATE KEY-----

Binary file not shown.

View File

@ -0,0 +1,36 @@
logging.level: info
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat
keepfiles: 7
permissions: 0640
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/opengnsys.log
setup.template.settings:
index.number_of_shards: 1
output.elasticsearch:
hosts: ["oglog-os.mytld:9200"]
username: "admin"
password: "CorrectHorse_BatteryStaple1"
protocol: "https"
ssl.enabled: true
ssl.verification_mode: full
ssl.certificate: "/etc/filebeat/ogagent-fb.mytld.crt.pem"
ssl.key: "/etc/filebeat/ogagent-fb.mytld.key.pem"
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
seccomp.enabled: false

View File

@ -0,0 +1,31 @@
#!/bin/bash
# Install Filebeat package
echo "INSTALLING FILEBEAT"
# Función para esperar a que el lock de dpkg esté libre
wait_for_dpkg_lock() {
while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1 ; do
echo "Esperando a que el lock de dpkg se libere..."
sleep 5
done
}
# Esperar máximo 2 minutos hasta que dpkg esté listo
wait_for_dpkg_lock
dpkg -i --force-overwrite /usr/share/OGAgent/filebeat/filebeat-oss-7.12.1-amd64.deb
# Copy certificates and configuration
cp /usr/share/OGAgent/filebeat/CA/ogagent-fb.mytld.crt.pem /etc/filebeat/
cp /usr/share/OGAgent/filebeat/CA/ogagent-fb.mytld.key.pem /etc/filebeat/
cp /usr/share/OGAgent/filebeat/CA/ca.crt.pem /etc/ssl/certs/
cp /usr/share/OGAgent/filebeat/filebeat.yml /etc/filebeat/filebeat.yml
# Add entry to /etc/hosts
oglog_ip="${OGAGENTCFG_OGLOG_IP:-192.168.2.1}"
echo "${oglog_ip} oglog-os.mytld" >> /etc/hosts
# Start Filebeat
/usr/bin/filebeat --environment systemd -c /etc/filebeat/filebeat.yml --path.home /usr/share/filebeat --path.config /etc/filebeat --path.data /var/lib/filebeat --path.logs /var/log/filebeat &

View File

@ -31,7 +31,11 @@
''' '''
from __future__ import unicode_literals from __future__ import unicode_literals
import servicemanager # @UnresolvedImport, pylint: disable=import-error try:
import servicemanager # @UnresolvedImport, pylint: disable=import-error
except ImportError:
servicemanager = None # Definir como None para evitar errores posteriores
print("Warning: 'servicemanager' module not found. Continuing execution without it.")
import logging import logging
import os import os
import tempfile import tempfile
@ -64,11 +68,22 @@ class LocalLogger(object):
return return
if level < WARN: # Info if level < WARN: # Info
try:
servicemanager.LogInfoMsg(message) servicemanager.LogInfoMsg(message)
except Exception as e:
print(f"⚠️ Warning: Failed to log info message: {message}. Error: {e}")
elif level < ERROR: # WARN elif level < ERROR: # WARN
try:
servicemanager.LogWarningMsg(message) servicemanager.LogWarningMsg(message)
except Exception as e:
print(f"⚠️ Warning: Failed to log warning message: {message}. Error: {e}")
else: # Error & Fatal else: # Error & Fatal
try:
servicemanager.LogErrorMsg(message) servicemanager.LogErrorMsg(message)
except Exception as e:
print(f"⚠️ Warning: Failed to log error message: {message}. Error: {e}")
def isWindows(self): def isWindows(self):
return True return True