From 87049aa4982abf37de5edfb2c43592440edae5c2 Mon Sep 17 00:00:00 2001
From: Fu Zi Xiang
Date: Mon, 6 Nov 2023 15:58:15 +0800
Subject: [PATCH] fix: added permission fix for container logs
---
doc/logging.md | 12 +++++++++---
docker/filebeat/grant_container_logs_permissions.sh | 8 ++++++++
2 files changed, 17 insertions(+), 3 deletions(-)
create mode 100755 docker/filebeat/grant_container_logs_permissions.sh
diff --git a/doc/logging.md b/doc/logging.md
index eb60d40a9..d92033971 100644
--- a/doc/logging.md
+++ b/doc/logging.md
@@ -21,11 +21,17 @@ Exiting: error loading config file: config file ("filebeat.yml") can only be wri
- Solution: remove write permission on the file: `chmod -w docker/filebeat/filebeat.yml`
### No Logs
+- Observation: There are no logs in OpenSearch Dashboard
+- Possibe Diagnostic: No read permission for `*.log` files in `/var/lib/docker/containers`
+
+- One Time Solution: give read permission to docker logs
```
-$ docker logs appflowy-cloud-filebeat-1
-...Non-zero metrics in the last 30s...
+chmod -R a+r /var/lib/docker/containers
```
-- Solution: give read permission to docker logs: `chmod -R a+r /var/lib/docker/containers`
+- Permanent Solution: give read permission to docker logs every time there's a modification
+In the project root directory: `sudo ./docker/filebeat/grant_container_logs_permissions.sh`
+ - Caveat: Only work on unix like operating system, requires `inotifywait`(`inotify-tools`) to be installed.
+ MacOS alternative: `fswatch`
## Credentials
- After deployment, when you go to localhost:5601, both username and password will be `admin`
diff --git a/docker/filebeat/grant_container_logs_permissions.sh b/docker/filebeat/grant_container_logs_permissions.sh
new file mode 100755
index 000000000..89eb7455d
--- /dev/null
+++ b/docker/filebeat/grant_container_logs_permissions.sh
@@ -0,0 +1,8 @@
+#! /usr/bin/env bash
+
+while true
+do
+ inotifywait /var/lib/docker/containers
+ sleep 1
+ sudo chmod -R a+r /var/lib/docker/containers
+done