Skip to content

Commit

Permalink
Merge pull request #99 from lappis-unb/bug_hunter
Browse files Browse the repository at this point in the history
Fixes method that import dashboards of the kibana
  • Loading branch information
arthurTemporim authored Sep 19, 2019
2 parents 92864af + 7f5de72 commit 7ad502f
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 43 deletions.
38 changes: 3 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,41 +99,9 @@ host = 'http://localhost:3000';

### Telegram

Para realizar este processo, recomenda-se a criação de um
[Bot para o Telegram](https://core.telegram.org/bots#3-how-do-i-create-a-bot) para obter todas as informações necessárias.
Após realizar o [tutorial](/docs/setup_telegram.md) de exportação de todas variávies de ambiente necessárias, é possível realizar a execução do bot no telegram corretamente.

Para rodar a _stack_ do bot pelo Telegram juntamente com os serviços anexados, é necessário comentar a parte
relacionada ao Rocket.Chat e descomentar o serviço relacionado ao bot do telegram.

Após a etapa anterior, é necessário utilizar o [ngrok](https://ngrok.com/download) para expor determinada porta para ser utilizado
pelo Telegram.

Ao baixar, é só executar utilizando o seguinte comando:

```
./ngrok http {porta utilizada}
```

**Atenção:** O conector do Telegram está utilizando a porta 5001 como padrão. Caso queira mudar, somente altere
a porta utilizada pelo no Makefile.

Ao executar, será gerado um link onde será usado para recuperar todas as informações obtidas pelo webhook do Bot
pelo Telegram, semelhante a este link:

```
Exemplo:
https://283e291f.ngrok.io
```

Configure todas as informações necessárias no docker-compose para integrar o bot do telegram criado:

```yml
- TELEGRAM_ACCESS_TOKEN={token fornecido pelo BotFather}
- VERIFY={username do bot}
- WEBHOOK_URL={link do ngrok}/webhooks/telegram/webhook
```
Para executar somente o serviço do bot para o Telegram, utilize o seguinte comando:
<strong><em>Antes de seguir adiante. Importante:</strong></em> As variáveis de ambiente são necessárias para o correto funcionamento do bot, por isso não esqueça de exportá-las.

Se ainda não tiver treinado seu bot execute antes:

Expand All @@ -147,7 +115,7 @@ para execução docker, utilize "sudo make train".
Depois execute o bot no telegram:

```sh
sudo docker-compose up telegram_bot
sudo docker-compose up bot_telegram
```

### Console
Expand Down
50 changes: 42 additions & 8 deletions analytics/import_dashboards.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,23 @@
logger = logging.getLogger(__name__)


def getRequestDatas(finalUrl):
fullUrl = []

url = os.getenv('KIBANA_URL', 'http://kibana:5601')
url = url + finalUrl

header = {
'kbn-xsrf': 'true',
'Content-Type': 'application/json'
}

fullUrl.append(url)
fullUrl.append(header)

return fullUrl


def getIdDashboards(pathToFile):
dashboardsIds = {}

Expand All @@ -23,18 +40,35 @@ def getIdDashboards(pathToFile):


def importDashboards(pathToFile):
URL = os.getenv('KIBANA_URL', 'http://kibana:5601')
fullURL = URL + '/api/kibana/dashboards/import?exclude=index-pattern'

header = {
'kbn-xsrf': 'true',
'Content-Type': 'application/json'
}
finalUrl = '/api/kibana/dashboards/import?exclude=index-pattern'
requestData = getRequestDatas(finalUrl)

datas = open(pathToFile, 'rb').read()
datas = datas.decode("utf-8")

requests.post(url=fullURL, headers=header, data=json.dumps(datas))
requests.post(url=requestData[0],
headers=requestData[1],
data=json.dumps(datas))

createIndexPattern()


def createIndexPattern():
# TODO: Import value of the variable from the environment
idIndex = '194404f0-e6b4-11e8-bb67-918dc5752875'
finalUrl = '/api/saved_objects/index-pattern/' + idIndex

requestData = getRequestDatas(finalUrl)

datas = {
"attributes": {
"title": "messages*"
}
}

requests.post(url=requestData[0],
headers=requestData[1],
data=json.dumps(datas))


if __name__ == "__main__":
Expand Down
54 changes: 54 additions & 0 deletions docs/setup_telegram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
## Setup do bot no Telegram

##### Crie um bot no Telegram

Converse com o [@BotFather do Telegram](https://t.me/BotFather) e crie um bot de teste unicamente seu seguindo as instruções dele.




##### Exporte as variáveis do seu bot
Após escolher um nome para seu bot, o @BotFather lhe dará um token para utilizar para acessar a API do Telegram. Adicione ambos no [arquivo de configurações do bot](../docker/bot-telegram.env), como a seguir. Substitua o TELEGRAM_TOKEN pelo token lhe enviado pelo @BotFather e TELEGRAM_BOT_USERNAME pelo nome do seu bot.

```sh
TELEGRAM_BOT_USERNAME=token_fornecido_pelo_BotFather
TELEGRAM_TOKEN=username_do_bot
```

##### Execute o ngrok
Após a etapa anterior, é necessário utilizar o [ngrok](https://ngrok.com/download) para expor determinada porta para ser utilizado
pelo Telegram.

Conforme a seguir, execute o ngrok na porta 5001.

```sh
./ngrok http 5001
```

**Atenção:** O conector do Telegram está utilizando a porta 5001 como padrão. Caso queira mudar, somente altere
a porta utilizada pelo no Makefile.


##### Exporte a URL do Webhook

Enquanto o ngrok estiver em execução, ele apresentará uma série de informações da sessão atual. Copie a url do campo Forwarding com o protocolo HTTPS e cole no [arquivo de configurações do bot](../docker/bot-telegram.env). ela será similar à seguinte.

```sh
TELEGRAM_WEBHOOK=link_do_ngrok/webhooks/telegram/webhook
```

::Lembre-se::: sempre que executar o ngrok essa url deve ser exportada.


##### Execução do bot no telegram

Ao final de realizar essas configurações, seu [arquivo de configurações do bot](../docker/bot-telegram.env) deve estar de acordo com o exibido logo abaixo:

```sh
TELEGRAM_BOT_USERNAME=lappisbot
TELEGRAM_TOKEN=token
TELEGRAM_WEBHOOK=your_webhook_server/webhooks/telegram/webhook
```

Com isso, é possível realizar a execução do bot seguindo os passos do [README](../README.md)

0 comments on commit 7ad502f

Please sign in to comment.