У меня есть приёмный файл, который я могу сделать:
INSERT XXX_Pbatt_live,gateway=UTXce9ef5 value=102
На отдельном сервере Kapacitor у меня есть TICKScript:
dbrp "hems"."autogen"
stream
|from()
.measurement('XXX_Pbatt_live')
.log('/tmp/alerts.log')
|httpPost('http://127.0.0.1:3000')
На том же сервере Kapacitor, у меня естьскрипт nodejs "testsocket.js" (просто для проверки того, что происходит POSTing данных):
const http = require('http');
const server = http.createServer((req, res) => {
if (req.method === 'POST') {
console.log('POST');
}
else {
console.log('NOT POST');
}
});
server.listen(3000);
Однако моя проблема заключается в том, что я думаю, что метод httpPost никогда не отправляет данные.Я попытался "wget http://127.0.0.1:3000", например, чтобы проверить соединение, и оно работает, думая, что это может быть проблема с сетью. Я попытался использовать post () и post (). Endpoint ('...'). ЖурналКоманда работает, и я думаю, что я вижу ее на сервере kapacitor (не уверен на 100%, поскольку в журнале недостаточно подробностей). Я выполнил «перезагрузку» задачи, думая, что она не обновила скрипт.
Мой тест выполняется следующим образом:
- Запустите «Поток записей kapacitor -task test_alert1 -duration 60s» на сервере kapacitor, чтобы он прослушивал все, что поступает от Influxdb.
- Запустите «node testsocket.js», чтобы он прослушивал все, что поступает с сервера Kapacitor.
- Запустите команду вставки: «INSERT XXX_Pbatt_live, gateway = UTXce9ef5 value = 102», поэтому следует отправить что-то обратнона сервер Kapacitor, а затем также на скрипт nodejs через httpPost.
- На этом этапе я должен ожидать увидеть либо «POST», либо «NOT POST» из скрипта узла. Но я не вижу, что either.
У меня установлена подписка на сервере Influxdb, я знаю, что эта сторона работает, потому что эти данные регистрируются в файле журнала "/tmp/alerts.log".
Я немного растерялся, упустил ли я что-то фундаментальное или что-то упустил.Любая помощь или указатели так ценятся!