---

Alias: ["Logwatch Telegram Bot"]
Tag: [""]
Date: 2022-03-10
DocType:
Hierarchy:
TimeStamp:
location:
Source: https://github.com/fxkjd/logwatch-telegram-bot
CollapseMetaTable: Yes

---

Parent:: [[Selfhosting]], [[VPS Console Dialogue|VPS command-line]]

---

&emsp;

```button
name Save
type command
action Save current file
id Save
```
^button-GitHubfxkjdlogwatch-telegram-botSendNSave

&emsp;

# GitHub - fxkjdlogwatch-telegram-bot Send logwatch results to your telegram account

&emsp;

```ad-abstract
title: Summary
collapse: open
Note Description
```

&emsp;

```toc
style: number
```

&emsp;

## Logwatch Telegram Bot

This repository includes a guide to send the logwatch results to your Telegram Bot.

&emsp;

---

&emsp;

## Installing

&emsp;

### Prerequisites

The following need to be installed:

-   Logwatch
-   Curl

See `Related Links` for more information about how to install and configure logwatch.

&emsp;

### Setting up

#### In Telegram

Create a Telegram Bot in order to obtain the `BOT TOKEN` ([More info](https://core.telegram.org/bots#6-botfather)).

Start a conversation with your new Telegram Bot and obtain the `CHAT_ID`. You can obtain the `CHAT_ID` using the telegram API:

```ad-command
~~~bash
curl https://api.telegram.org/bot<BOT TOKEN>/getUpdates
~~~
```

Replace both of them in the [[#Logwatch sh]] script.

&emsp;

#### In your server

Create (if not already created) the `/root/logwatch_bot/logs` and `/var/cache/logwatch/` folders.

Copy the `logwatch.sh` script in `/root/logwatch_bot` folder. Ensure it has execution permissions.

Edit the crontab.

```ad-command
~~~bash
crontab -e
~~~
```

Add the following line to send the logwatch results every day at 8.00 AM.

```ad-command
title: cronjob
~~~bash
0 8 \* \* \* /bin/bash /root/logwatch\_bot/logwatch.sh
~~~
```

&emsp;

### Logwatch.sh

```ad-code
title: logwatch.sh
~~~bash
#!/bin/bash

# Credits to Neolot (original script: https://gist.github.com/Neolot/ef7fce2518a8ec71bbe09beb9381ee95)

# Config

day=$(date +%Y-%m-%d)

filename=/var/cache/logwatch/$day-logwatch.txt

token=<YOUR BOT TOKEN>

chat_id=<YOUR CHAT ID>

#Check if removed-but-not-purged

test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0

#execute

/usr/sbin/logwatch --output file --filename $filename

chmod 644 $filename

mv $filename /root/logwatch_bot/logs/

curl -F chat_id="$chat_id" -F text="$(head /root/logwatch_bot/logs/$day-logwatch.txt -n 9)" https://api.telegram.org/bot$token/sendMessage >/dev/null 2>&1

curl -F chat_id="$chat_id" -F document=@"/root/logwatch_bot/logs/$day-logwatch.txt" https://api.telegram.org/bot$token/sendDocument >/dev/null 2>&1
~~~
```

&emsp;

## Related Links

-   [How To Install and Use Logwatch Log Analyzer and Reporter on a VPS](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-logwatch-log-analyzer-and-reporter-on-a-vps)
-   [Logwatch - ArchWiki](https://wiki.archlinux.org/index.php/Logwatch)
-   [OpenVPN logwatch script](https://gist.github.com/fxkjd/7162cc54fc8f3a3f3ba88ba258ce74c3)