mirror of
https://abf.rosa.ru/djam/serviceradar.git
synced 2025-04-11 10:49:57 +00:00
All checks were successful
Run CI/CD... / main (push) Successful in 6m51s
201 lines
5.9 KiB
RPMSpec
201 lines
5.9 KiB
RPMSpec
%define debug %nil
|
|
%define debug_package %nil
|
|
|
|
Name: serviceradar
|
|
Version: 1.0.31
|
|
Release: 1
|
|
Summary: Simple golang-based home network monitoring and surveillance tool
|
|
URL: https://docs.serviceradar.cloud
|
|
Source0: https://github.com/carverauto/serviceradar/archive/%{version}/%{name}-%{version}.tar.gz
|
|
License: ASL 2.0
|
|
Group: Monitoring
|
|
BuildRequires: go
|
|
BuildRequires: git-core
|
|
BuildRequires: upx
|
|
BuildRequires: nodejs14
|
|
BuildRequires: pkgconfig(systemd)
|
|
|
|
%description
|
|
ServiceRadar is a distributed network monitoring system designed
|
|
for infrastructure and services in hard to reach places or
|
|
constrained environments. It provides real-time monitoring of
|
|
internal services, with cloud-based alerting capabilities to
|
|
ensure you stay informed even during network or power outages.
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
%build
|
|
export GOPROXY=https://proxy.golang.org,direct
|
|
LDFLAGS="-s -w -X main.version=%{version}"
|
|
|
|
go build -ldflags "$LDFLAGS" -o bin/serviceradar-agent cmd/agent/main.go
|
|
go build -ldflags "$LDFLAGS" -o bin/serviceradar-poller cmd/poller/main.go
|
|
go build -ldflags "$LDFLAGS" -o bin/serviceradar-dusk-checker cmd/checkers/dusk/main.go
|
|
go build -ldflags "$LDFLAGS" -o bin/serviceradar-snmp-checker cmd/checkers/snmp/main.go
|
|
go build -ldflags "$LDFLAGS" -o bin/serviceradar-core cmd/core/main.go
|
|
|
|
%install
|
|
# install bin
|
|
install -Dm0755 bin/serviceradar-agent %{buildroot}%{_bindir}/serviceradar-agent
|
|
install -Dm0755 bin/serviceradar-poller %{buildroot}%{_bindir}/serviceradar-poller
|
|
install -Dm0755 bin/serviceradar-dusk-checker %{buildroot}%{_bindir}/serviceradar-dusk-checker
|
|
install -Dm0755 bin/serviceradar-snmp-checker %{buildroot}%{_bindir}/serviceradar-snmp-checker
|
|
install -Dm0755 bin/serviceradar-core %{buildroot}%{_bindir}/serviceradar-core
|
|
|
|
# install conffiles
|
|
install -Dm0644 packaging/agent/config/agent.json %{buildroot}%{_sysconfdir}/%{name}/agent.json
|
|
install -Dm0644 packaging/poller/config/poller.json %{buildroot}%{_sysconfdir}/%{name}/poller.json
|
|
install -Dm0644 packaging/config/checkers/dusk.json %{buildroot}%{_sysconfdir}/%{name}/checkers/dusk.json
|
|
install -Dm0644 packaging/core/config/core.json %{buildroot}%{_sysconfdir}/%{name}/core.json
|
|
install -Dm0644 packaging/core/config/nginx.conf %{buildroot}%{_sysconfdir}/nginx/nginx.conf.d/serviceradar-core.conf
|
|
#install -Dm0644 packaging/core/config/checkers/sweep/sweep.json %{buildroot}%{_sysconfdir}/%{name}/checkers/sweep/sweep.json
|
|
|
|
# install services
|
|
install -Dm0644 packaging/agent/systemd/serviceradar-agent.service %{buildroot}%{_unitdir}/serviceradar-agent.service
|
|
install -Dm0644 packaging/core/systemd/serviceradar-core.service %{buildroot}%{_unitdir}/serviceradar-core.service
|
|
install -Dm0644 packaging/poller/systemd/serviceradar-poller.service %{buildroot}%{_unitdir}/serviceradar-poller.service
|
|
|
|
# Create systemd service file
|
|
cat > "%{buildroot}%{_unitdir}/serviceradar-snmp-checker.service" << EOF
|
|
[Unit]
|
|
Description=ServiceRadar SNMP Checker Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=serviceradar
|
|
ExecStart=/usr/bin/serviceradar-snmp-checker
|
|
Restart=always
|
|
RestartSec=10
|
|
LimitNOFILE=65535
|
|
LimitNPROC=65535
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
cat > "%{buildroot}%{_sysconfdir}/serviceradar/checkers/snmp.json" << EOF
|
|
{
|
|
"node_address": "localhost:50051",
|
|
"listen_addr": ":50054",
|
|
"security": {
|
|
"server_name": "changeme",
|
|
"mode": "none",
|
|
"role": "checker",
|
|
"cert_dir": "/etc/serviceradar/certs"
|
|
},
|
|
"timeout": "30s",
|
|
"targets": [
|
|
{
|
|
"name": "test-router",
|
|
"host": "192.168.1.1",
|
|
"port": 161,
|
|
"community": "public",
|
|
"version": "v2c",
|
|
"interval": "30s",
|
|
"retries": 2,
|
|
"oids": [
|
|
{
|
|
"oid": ".1.3.6.1.2.1.2.2.1.10.4",
|
|
"name": "ifInOctets_4",
|
|
"type": "counter",
|
|
"scale": 1.0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
EOF
|
|
|
|
# Create systemd service file for dusk checker
|
|
cat > "%{buildroot}%{_unitdir}/serviceradar-dusk-checker.service" << EOF
|
|
[Unit]
|
|
Description=ServiceRadar Dusk Node Checker
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=serviceradar
|
|
ExecStart=/usr/bin/serviceradar-dusk-checker -config /etc/serviceradar/checkers/dusk.json
|
|
Restart=always
|
|
RestartSec=10
|
|
LimitNPROC=512
|
|
LimitNOFILE=65535
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
# Create external.json
|
|
cat > "%{buildroot}%{_sysconfdir}/serviceradar/checkers/external.json" << EOF
|
|
{
|
|
"name": "dusk",
|
|
"type": "grpc",
|
|
"address": "localhost:50052"
|
|
}
|
|
EOF
|
|
|
|
%package core
|
|
Summary: Core for %{name}
|
|
|
|
%description core
|
|
Core for %{name}
|
|
|
|
%files core
|
|
%doc README.md LICENSE
|
|
%{_bindir}/serviceradar-core
|
|
%{_unitdir}/serviceradar-core.service
|
|
%config(noreplace) %{_sysconfdir}/%{name}/core.json
|
|
#config(noreplace) %{_sysconfdir}/%{name}/checkers/sweep/sweep.json
|
|
%config(noreplace) %{_sysconfdir}/nginx/nginx.conf.d/serviceradar-core.conf
|
|
|
|
|
|
%package agent
|
|
Summary: Agent for %{name}
|
|
|
|
%description agent
|
|
Agent for %{name}
|
|
|
|
%files agent
|
|
%doc README.md LICENSE
|
|
%{_bindir}/serviceradar-agent
|
|
%config(noreplace) %{_sysconfdir}/%{name}/agent.json
|
|
%{_unitdir}/serviceradar-agent.service
|
|
|
|
%package poller
|
|
Summary: Poller for %{name}
|
|
|
|
%description poller
|
|
Poller for %{name}
|
|
|
|
%files poller
|
|
%doc README.md LICENSE
|
|
%{_bindir}/serviceradar-poller
|
|
%config(noreplace) %{_sysconfdir}/%{name}/poller.json
|
|
%{_unitdir}/serviceradar-poller.service
|
|
|
|
%package snmp-checker
|
|
Summary: SNMP checker for %{name}
|
|
|
|
%description snmp-checker
|
|
SNMP checker for %{name}
|
|
|
|
%files snmp-checker
|
|
%doc README.md LICENSE
|
|
%{_bindir}/serviceradar-snmp-checker
|
|
%config(noreplace) %{_sysconfdir}/serviceradar/checkers/snmp.json
|
|
%{_unitdir}/serviceradar-snmp-checker.service
|
|
|
|
%package dusk-checker
|
|
Summary: Dusk checker for %{name}
|
|
|
|
%description dusk-checker
|
|
Dusk checker for %{name}
|
|
|
|
%files dusk-checker
|
|
%doc README.md LICENSE
|
|
%{_bindir}/serviceradar-dusk-checker
|
|
%config(noreplace) %{_sysconfdir}/%{name}/checkers/dusk.json
|
|
%config(noreplace) %{_sysconfdir}/serviceradar/checkers/external.json
|
|
%{_unitdir}/serviceradar-dusk-checker.service
|