-
Notifications
You must be signed in to change notification settings - Fork 3
/
pihunter-startup.sh
108 lines (88 loc) · 2.29 KB
/
pihunter-startup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
# var - start
ZEEK='/hunt-xs/zeek/bin/zeekctl'
SURICATA='suricata'
ARKIMECAP='arkimecapture'
ARKIMEVIEW='arkimeviewer'
FILEBEAT='filebeat'
KBNAME='kibana'
ESNAME='elasticsearch'
MONGOD='mongodb'
RITAWEB='rita-web'
LOGDIR='/home/hunter/pihunter-boot.log'
# var - stop
# def func - start
# func to start service using systemd and check exit status // if exit ne 0, stop script and note in log
sysdStart() {
echo "`date` $1 - starting..." >> $LOGDIR
systemctl start $1
sleep $2
systemctl is-active --quiet $1
if [ $? = 0 ]; then
echo "`date` $1 - ready" >> $LOGDIR
sleep 3
else
echo "`date` $1 - FAILED to start" >> $LOGDIR
return 1
fi
}
# func to start docker containers and check exit status
dockerStart() {
echo "`date` $1 - starting..." >> $LOGDIR
docker start $1
if [ $? = 0 ]; then
sleep $2
if [ "$(docker container inspect -f '{{.State.Running}}' $1)" == "true" ]; then
echo "`date` $1 - ready" >> $LOGDIR
sleep 3
else
echo "`date` $1 - FAILED to start" >> $LOGDIR
return 1
fi
else
return 1
fi
}
# func to start services using binary and check exit status
cmdStart() {
echo "`date` $1 - starting..." >> $LOGDIR
$1 start
sleep $2
$1 status | grep running 1>/dev/null
if [ $? = 0 ]; then
echo "`date` $1 - ready" >> $LOGDIR
sleep 3
else
echo "`date` $1 - FAILED to start" >> $LOGDIR
return 1
fi
}
# def func - stop
# script - start
if [ -e /home/hunter/pihunter-boot.log ];
then
echo "Log exists" > /dev/null
else
echo "============================ ===========================================" >> $LOGDIR
fi
echo "`date` piHunter services starting... standby..." >> $LOGDIR
# start zeek
cmdStart $ZEEK 10
# start suricata
sysdStart $SURICATA 10
# start elasticsearch
dockerStart $ESNAME 120
# start arkime
sysdStart $ARKIMECAP 30
sysdStart $ARKIMEVIEW 15
# start filebeat
sysdStart $FILEBEAT 15
# start kibana
dockerStart $KBNAME 60
# start mongodb
dockerStart $MONGOD 10
# start rita web server
dockerStart $RITAWEB 10
echo "`date` piHunter services are up and ready to HUNT!" >> $LOGDIR
echo "============================ ===========================================" >> $LOGDIR
# script - stop