From 3b96b5bf7dc1e40e8848c4e980c7fe36bb90e9e3 Mon Sep 17 00:00:00 2001 From: colin Date: Sun, 13 Oct 2024 21:31:32 +0800 Subject: [PATCH] feat: add new post --- ...°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 content/posts/æ¥è°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md diff --git a/content/posts/æ¥è°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md b/content/posts/æ¥è°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md new file mode 100644 index 0000000..212418e --- /dev/null +++ b/content/posts/æ¥è°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md @@ -0,0 +1,152 @@ +--- +title: æ¥è°ˆè°ˆæ—¥å¿—é›†ä¸­ç®¡ç†æ–¹æ¡ˆ - syslog是你的好伙伴.md +date: 2024-10-13 +lastmod: 2024-10-13 +description: 身为一个数ç å®…, 家里总是会有越æ¥è¶Šå¤šçš„æ•°ç è®¾å¤‡, 智能化的设备多起æ¥, 总是难å…会é‡åˆ°å„ç§å„样的问题, 排查问题的时候日志就很é‡è¦äº†, 对于一些å¶å‘çš„ case, 比如å¶å‘网络å¡é¡¿, 能够看到足够完整清晰的日志, 就很方便了. +categories: +- 技术 +tags: +- Linux +- NAS +- OpenWRT +- Docker +--- + + +身为一个数ç å®…, 家里总是会有越æ¥è¶Šå¤šçš„æ•°ç è®¾å¤‡, 智能化的设备多起æ¥, 总是难å…会é‡åˆ°å„ç§å„样的问题, 排查问题的时候日志就很é‡è¦äº†, 对于一些å¶å‘çš„ case, 比如å¶å‘网络å¡é¡¿, 能够看到足够完整清晰的日志, 就很方便了. + +对于一些低功耗设备, 比如路由器, å…¶ç£ç›˜èµ„æºå¾ˆç´§å¼ , 日志通常ä¸ä¼šä¿å­˜å¾ˆä¹…. è¿™ä¸ªæ—¶å€™è¦æŽ’æŸ¥ä¸€äº›å¶å‘çš„æŒç»­æ—¶é—´é•¿çš„å° bug 就很头痛了. 好在 openwrt 原生就支æŒå°†æ—¥å¿—通过 syslog åè®®å‘é€åˆ°è¿œç¨‹æœåС噍. ä¸è¿‡çœ‹äº†ä¸€åœˆ, å‘逿˜¯å‘é€è¿‡åŽ»äº†, 但是看日志还得命令行一个个看, è¦æƒ³æœ‰ä¸ªæ–¹ä¾¿çš„地方看的è¯å°±å¾—上 ELK 那一套éžå¸¸ç¹ç且åƒèµ„æºçš„那一套, 我的需求是这样的: + +- å…è´¹,å¯ä»¥æŒç»­ä½¿ç”¨ +- 能够通过 syslog å议收集日志 +- 能够自部署最佳, 但是ä¸å¸Œæœ›æ˜¯ ELK é‚£ç§ç¹ç且éžå¸¸æ¶ˆè€—资æºçš„ +- 有个 web 界é¢èƒ½æ–¹ä¾¿çš„æŸ¥æ‰¾æ—¥å¿— +- 能够é…置监控, 那样的è¯å¦‚果设备有 fatal 日志我å¯ä»¥ç«‹å³çŸ¥é“ + +æœå¯»äº†ä¸€ç•ª, å‘现有个 datalust å…¬å¸å‡ºçš„ seq çœ‹èµ·æ¥æŒºä¸é”™, 在自己æœåŠ¡å™¨ä¸Šéƒ¨ç½²äº†ä¸€å¥—, å®Œç¾Žç¬¦åˆæˆ‘的需求, 分享一下. + +seq ä¸ä»…æ”¯æŒ syslog, 还支æŒç¨‹åºä¸»åŠ¨ä¸ŠæŠ¥ã€é‡‡é›†å®¹å™¨æ—¥å¿—等很多功能, 这里åªä¸»è¦å›´ç»• syslog, 收集å„ç§ç»ˆç«¯è®¾å¤‡æ—¥å¿—åšä»‹ç» + +![Pasted image 20241013170403](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128864.png) + +![Pasted image 20241013170340](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128865.png) + +## 安装: 通过 docker compose 部署 seq + +首先生æˆä¸‹é»˜è®¤å¯†ç , 这里需è¦é€šè¿‡ç¨‹åºè‡ªèº«çš„æŒ‡ä»¤ç”Ÿæˆæ˜Žæ–‡å¯†ç å¯¹åº”的密文æ‰è¡Œ. 比如我这里指定åˆå§‹å¯†ç çš„æ˜Žæ–‡ä¸º`initP@ss`, è¿è¡Œè¿™ä¸ªæŒ‡ä»¤, 就会输出对应的密文, 这个待会部署的时候需è¦ä½¿ç”¨ + +```bash +âžœ echo 'initP@ss' | sudo docker run --rm -i datalust/seq config hash + + +QE6k2bZLWkh7BwWYRNsG3h9sZPcLskSLKJGii4mvU0rsDyN0/UqW1TwEZp43O09wvOCjbOgswZxHX7FeNo05cfiv3KkB8/q/Msj8nlXL4TGd +``` + +之åŽé€šè¿‡ docker compose 进行部署, 下é¢ä¸º compose 文件示例 + +```yaml +services: + seq-input-syslog: + image: datalust/seq-input-syslog:latest + container_name: seq_syslog_input + depends_on: + - seq + ports: + - "20014:514/udp" # 接收 syslog å议请求的端å£, 这里é…置的是20014, å¯ä»¥è‡ªå®šä¹‰, åŽé¢éœ€è¦ç”¨åˆ° + environment: + SEQ_ADDRESS: "http://seq:5341" # è¦è½¬å‘到主程åºè¿›è¡Œå¤„ç†, 端å£ä¸ºé»˜è®¤çš„5341, ä¸ç”¨æ”¹ + restart: unless-stopped + + seq: + image: datalust/seq:latest + container_name: seq_log + ports: + - "20054:80" # web ui + environment: + ACCEPT_EULA: Y + SEQ_FIRSTRUN_ADMINPASSWORDHASH: QE6k2bZLWkh7BwWYRNsG3h9sZPcLskSLKJGii4mvU0rsDyN0/UqW1TwEZp43O09wvOCjbOgswZxHX7FeNo05cfiv3KkB8/q/Msj8nlXL4TGd # 这里填写刚生æˆçš„密文 + restart: unless-stopped + volumes: + - /data/seq-data:/data +``` + +ä¹‹åŽæ‰§è¡Œ sudo docker compose up -d , 顺利的è¯, 在é…置的 web ui 端å£, å°±å¯ä»¥çœ‹åˆ°ç®¡ç†å°äº†. 默认账户为 admin, 密ç ä¸ºåˆšæ‰è®¾ç½®çš„密ç çš„原始明文. + +## 使用: syslog é…ç½® + +基本上所有 Linux-base 系统都支æŒå°†ç³»ç»Ÿæ—¥å¿—通过 syslog åè®®å‘é€åˆ°è¿œç«¯æœåС噍. 我手头主è¦çš„ openwrt 路由器ã€è¿è¡Œ truenas 系统的 nasã€æ ‘莓派上跑的 debian, 以åŠå…¶ä»– linux 云æœåŠ¡å™¨éƒ½å¯ä»¥æ— ç¼æŽ¥å…¥, 这里简å•介ç»ä¸‹ + +### openwrt é…置远程 log + +在 system -> system èœå•下, 有个 logging çš„ tab, 里é¢é…置好æœåС噍 ipã€ç«¯å£å°±å¯ä»¥ä½¿ç”¨äº†. å议记得选 udp + +![Pasted image 20241013165852](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128867.png) + +### truenas é…置远程 log + +在 system setting -> advaned -> syslog èœå•下, é…置远程æœåŠ¡å™¨åœ°å€å’Œç«¯å£, å议选择 udp, ä¿å­˜å°±å¯ä»¥äº† + +![Pasted image 20241013171725](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128868.png) + +### linux æœåС噍é…置远程 log + +大多数 Linux å‘行版已ç»é¢„装了 rsyslog。å¯ä»¥é€šè¿‡ä»¥ä¸‹å‘½ä»¤æ£€æŸ¥æ˜¯å¦å·²å®‰è£…: +`rsyslogd -version` +如果未安装,å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤å®‰è£…: + +```bash +# Debian/Ubuntu: +sudo apt update +sudo apt install rsyslog + +# CentOS/RHEL: +sudo yum install rsyslog +``` + +步骤 2:é…置客户端的 rsyslog +编辑 rsyslog é…置文件: 打开é…置文件进行编辑,通常ä½äºŽ `/etc/rsyslog.conf` 或 `/etc/rsyslog.d/` 目录下。 + +```bash +sudo nano /etc/rsyslog.conf +``` + +添加远程æœåС噍é…置: 在文件末尾,添加以下行以指定远程æœåŠ¡å™¨çš„ IP 地å€å’Œç«¯å£ï¼ˆé»˜è®¤æ˜¯ UDP 514 或 TCP 514): + +```conf +*.* @remote-server-ip:514 # 使用 UDP +*.* @@remote-server-ip:514 # 使用 TCP +``` + +这里我们需è¦ä½¿ç”¨ udp å议的. +å°† remote-server-ip 替æ¢ä¸ºè¿œç¨‹ Syslog æœåŠ¡å™¨çš„å®žé™… IP åœ°å€æˆ–者域å, ä¿å­˜å¹¶å…³é—­æ–‡ä»¶ã€‚ + +比如 + +```conf +*.* @syslog.myserver.com:20014 +``` + +步骤 3:é‡å¯ rsyslog æœåŠ¡ +在进行更改åŽï¼Œé‡å¯ rsyslog æœåŠ¡ä»¥åº”ç”¨æ–°é…置: + +```bash +sudo systemctl restart rsyslog +``` + +## å…¶ä»–é…ç½® + +### é…ç½®æ—¥å¿—å®šæœŸæ¸…ç† + +默认情况下, 是没有é…置日志清ç†è§„则的, 时间一长æœåŠ¡å™¨ç¡¬ç›˜å¯èƒ½ç›´æŽ¥æ»¡äº†, 所以这里一定ä¸è¦å¿˜è®°é…置自动清ç†. 在èœå•里的 retention å¯ä»¥é…置过多少天删除 + +![Pasted image 20241013170659](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128869.png) + +![Pasted image 20241013170654](https://blog-1301127393.cos.ap-shanghai.myqcloud.com/BlogImgs/202410132128870.png) + +### é…置告警通知 + +å„ç§é€šçŸ¥æ¸ é“çš„æ”¯æŒæ˜¯é€šè¿‡æ’ä»¶å½¢å¼æä¾›çš„, 在 设置里å¯ä»¥è‡ªè¡Œå®‰è£…. å¯ä»¥æ”¯æŒ emailã€http webhook, 钉钉机器人ã€telegram æœºå™¨äººç­‰å¤šç§æ¸ é“. + +[æ’件市场链接](https://www.nuget.org/packages?q=Tags%3A%22seq-app%22) + +---