Graylog þjónn
Hér er lýst uppsetningu á Graylog á FreeBSD 13.1 þjóni, en Graylog býður upp á miðlæga söfnun log-skráa.
Grunnuppsetning
Mongod
Graylog segist þurfa mongodb40 eða hærra, en ekki hærra en mongodb50. Graylog 5.0 styður einungis mongodb50 og mongodb60, þannig við setjum upp mongodb50 til að einfalda okkur uppfærsluna í Graylog 5.0 seinna meir.
Virkum næst mongodb þjónustuna og látum hana keyra við ræsingu:
Opensearch
Graylog segist þurfa elasticsearch6 eða hærra, en heimasíða Graylog tekur fram að skilmálum hafi verið breytt og verður Elasticsearch ekki stutt eftir útgáfu 7.11 og er notendum bent á að nota Opensearch í staðinn. Graylog 4.3 styður opensearch13 og setjum við hann hér upp.
Pakkinn openjdk11 er settur upp með þessum pakka, það þarf eftirfarandi línur í fstab til að keyra:
``` title = "/etc/fstab" . . . fdesc /dev/fd fdescfs rw 0 0 proc /proc procfs rw 0 0
mount -a
Heimasíða Opensearch segir okkur að taka ýmsar ráðstafanir til að auka afköst, t.a.m. slökkva á `swap` og hækka `kern.maxfiles` gildin.
swapoff -a
sysctl kern.maxfiles=65536
sysctl kern.macfilesperproc=65536
echo "kern.maxfiles=65536" >> /etc/sysctl.conf
echo "kern.maxfilesperproc=65536" >> /etc/sysctl.conf
export JAVA_HOME=/usr/local/
Opensearch bætir svo `bin/java` við endann.
Opensearch samanstendur af ýmsum plugin-um, þar á meðal `opensearch-security`, sem gerir það að verkum að Opensearch keyrir ekki fyrr en viðeigandi skírteini eru til staðar. Umhverfi höfundar er ekki með vottunarstöð þannig hér verður notast við staðbundin skírteini.
Staðargildi í `/usr/local/etc/opensearch.yml` miða við `/usr/local/etc/opensearch/` sem rót, þannig að skírteinin þurfa að vera í undirmöppu þar, hér eru þau sett í `/usr/local/etc/opensearch/certs`.
Byrjum á rótarskírteininu:
openssl genrsa -out root-ca-key.pem 2048
openssl req -new -x509 -sha256 -key root-ca-key.pem -out root-ca.pem -days 730
Svarið spurningum með viðeigandi upplýsingum úr ykkar umhverfi.
Næst þurfum við að setja upp admin skírteini:
opennsl genrsa -out admin-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
openssl req -new -key admin-key.pem -out admin.csr
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
openssl genrsa -out logs-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in logs-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out logs-key.pem
openssl req -new -key logs-key.pem -out logs.csr
Áður en við gerum sjálft skírteinið þurfum við að tilgreina SAN gildi til að fara eftir stöðlum [RFC 2818](https://datatracker.ietf.org/doc/html/rfc2818). Notum A gildi DNS færslunnar fyrir þjóninn:
echo 'subjectAltName=DNS:logs.hb15.is' > logs.ext
openssl x509 -req -in logs.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out logs.pem -days 730 -extfile logs.ext
Nú getum við uppfært `opensearch.yml` skrána. Fyrst þurfum við að setja inn upplýsingar um DN skírteinanna:
``` yml title="/usr/local/etc/opensearch/opensearch.yml"
plugins.security.authcz.admin_dn:
- 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
- 'CN=node1.dns.a-record,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
Note
Fáið gildin fyrir ykkar skírteini með skipuninni openssl x509 -subject -nameopt RFC2253 -noout -in logs.pem
Notum nú skírteinin okkar í opensearch.yml skránni okkar:
plugins.security.ssl.transport.pemcert_filepath: certs/logs.pem
plugins.security.ssl.transport.pemkey_filepath: certs/logs-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: certs/root-ca.pem
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: certs/logs.pem
plugins.security.ssl.http.pemkey_filepath: certs/logs-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: certs/root-ca.pem
plugins.security.authcz.admin_dn:
- 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA' # Notið ykkar gildi hér
plugins.security.nodes_dn:
- 'CN=certs/logs.dns.a-record,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA' # Og hér
Eignum opensearch allar skrárnar og skírteinin sem við vorum að græja:
Nú þegar opensearch-security ætti ekki að kvarta skulum við setja eftirfarandi stillingar í opensearch.yml.
cluster.name: graylog
node.name: ${HOSTNAME}
path.data: /var/graylog/opensearch/data
path.logs: /var/log/opensearch
network.host: ${HOSTNAME}
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["127.0.0.1"]
action.auto_create_index: false
Note
Þið gætuð þurft að búa til möppurnar fyrir path.data og path.logs, munið þá að keyra chown -R opensearch:opensearch á þær.
Nú ættum við að geta keyrt þjónustuna:
og til að virkja hana við ræsingu:
Note
Þið getið athugað hvort Opensearch sé virkt með því að keyra netstat -an | grep 9200, ef hún er ekki í gangi getið þið skoðað /var/log/opensearch/graylog.log.
Ef þjónustan fer í gang án nokkurrar villu, en er svo ekki í gangi stuttu seinna getið þið skoðað /var/log/messages, þar kemur fram villa frá Java sem gæti þýtt að vélin sé ekki með nóg vinnsluminni.
Graylog
Stutt leit eftir pakkanum graylog sýnir að við skrift þessa lesefnis er útgáfa 4.3.3 í boði í pakkalindum FreeBSD, á meðan nýjasta útgáfan er 5.0 og graylog mælir með þeirri útgáfu.
Breytum þá stillingum lindanna okkar til að fá það besta og nýjasta:
quarterly í latest þannig hún líti svona út:
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
.
.
.
}
pkg search graylog keyrt núna er útgáfan í 4.3.9 sem eru ákveðin vonbrigði. Höldum ótrauð áfram og sækjum pakkann:
Pakkinn openjdk8 sem er settur upp með graylog þarf sömu línur í fstab og openjdk11 gerir, við getum því hunsað þau skilaboð.
``` title = "/etc/fstab" . . . fdesc /dev/fd fdescfs rw 0 0 proc /proc procfs rw 0 0
mount -a
cd /usr/local/etc/graylog/
cp graylog.conf.sample server/server.conf
Breytum skránni þannig að eftirfarandi línur séu til staðar:
``` title="/usr/local/etc/graylog/server/server.conf
is_leader = true
password_secret = <fæst með pwgen -N 1 -s 96>
root_password_sha2 = <fæst með echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1 > þar sem lykilorðið er rótarlykilorðið
root_timezone = Atlantic/Reykjavik
http_bind_address = <ip tala þjónsins>
rc ræsiskriftunni þannig að Graylog noti openjdk8, en ekki openjdk11, sem er sjáfgefna java-ð á kerfinu fyrst það er nýrra.
Í skránni /usr/local/etc/rc.d/graylog eru línur sem vísa á /usr/local/bin/java, sem er sýndarhlekkur á /usr/local/bin/javavm, sem segist fara eftir því sem kerfisbreytan JAVA_HOME tilgreinir, en það virkar ekki, auk þess sem við þurfum hvort eð er að keyra opensearch á openjdk11, þannig við breytum bara /usr/local/bin/java í /usr/local/openjdk8/bin/java þannig að eftirfarandi hluti líti svona út:
.
.
.
command_args=" \
-c \
-t ${name} \
-r \
-p ${app_pidfile} \
-P ${pidfile} \
/usr/local/openjdk8/bin/java \
${java_options} \
-jar ${graylog_dir}/graylog.jar server \
--no-pid-file \
--configfile ${graylog_config}"
required_files="/usr/local/openjdk8/bin/java ${graylog_config}"
.
.
.
Nú getum við virkjað og ræst þjónustuna:
Ef við keyrum netstat -an | grep 9000 ættum við að sjá að Graylog er að hlusta á tengi 9000, og við getum farið á