Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
Docker部署LokiGrafanaVector实现全服务器日志监控含N8N/SSH/Fail2ban监控一、前言很多自建服务玩家、服务器运维新手都想把Docker容器日志N8N/Airflow等、服务器SSH登录日志、Fail2ban攻防拦截日志统一收集在Grafana图形界面集中查看、检索、回溯。本文全程小白向无复杂命令、无专业术语绕弯手把手教你用Docker Compose 一键部署 Loki Grafana Vector实现所有Docker容器日志自动采集服务器SSH登录/失败日志收集Fail2ban拦截黑客暴力破解日志收集Grafana可视化检索、按关键词过滤、按时间回溯二、架构原理Vector日志采集搬运工负责抓取容器日志、系统日志转发给LokiLoki日志存储仓库专门存放所有日志不占大量磁盘Grafana可视化面板用来查询、看日志、做监控面板简单理解Vector收日志 → Loki存日志 → Grafana看日志三、前置准备一台Linux云服务器Ubuntu/Debian均可已安装docker和docker-compose服务器开放3000(Grafana)、3100(Loki)端口四、目录准备新建专属部署目录后续所有配置都放这里mkdir-p~/apps/log-monitorcd~/apps/log-monitor五、编写docker-compose.yml在log-monitor目录创建docker-compose.yml复制以下内容直接使用version:3.8services:loki:image:grafana/loki:2.9.0container_name:lokirestart:alwaysports:-3100:3100volumes:-./loki-data:/lokicommand:-config.file/etc/loki/local-config.yamlgrafana:image:grafana/grafana:latestcontainer_name:grafanarestart:alwaysports:-3000:3000volumes:-./grafana-data:/var/lib/grafanaenvironment:-GF_SECURITY_ADMIN_PASSWORDadminXXXXXdepends_on:-lokivector:image:timberio/vector:0.55.0-alpinecontainer_name:vectorrestart:alwaysvolumes:-./vector.toml:/etc/vector/vector.toml-/var/run/docker.sock:/var/run/docker.sock-/var/log:/host/var/log:ro说明挂载docker.sock让Vector能监听所有Docker容器日志挂载/var/log:ro只读挂载系统日志目录用来采集auth.log、fail2ban.logGrafana默认账号admin密码adminxxx可自行修改六、编写Vector核心配置 vector.toml在同目录创建vector.toml最终稳定可用版无语法报错、无429限流data_dir /var/lib/vector # 1. 采集所有Docker容器日志 [sources.docker_logs] type docker_logs docker_host unix:///var/run/docker.sock # 2. 采集服务器SSH登录日志 auth.log [sources.host_auth] type file include [/host/var/log/auth.log] read_from end # 3. 采集Fail2ban拦截日志 [sources.fail2ban] type file include [/host/var/log/fail2ban.log] read_from end # 输出所有日志到Loki [sinks.loki] type loki inputs [docker_logs, host_auth, fail2ban] endpoint http://loki:3100 encoding.codec json # 固定标签保证Loki正常接收 labels.job vector配置关键点小白解释read_from end只采集后续新产生日志不加载海量历史日志避免Loki被限流报429错误三个数据源容器日志、SSH日志、Fail2ban日志统一发给Loki七、启动整套服务在log-monitor目录执行dockercompose up-d等待1分钟三个容器全部后台启动完成。查看Vector运行日志确认无报错dockercompose logs-fvector出现Healthcheck passed即为正常启动。八、配置Grafana对接Loki浏览器访问服务器IP:3000账号admin密码admin123456左侧菜单 →Connections → Data sources点击Add data source→ 选择LokiURL填写http://loki:3100拉到最下方 →Save test显示成功即可九、日常日志查询用法小白直接复制进入Grafana左侧Explore数据源选Loki直接用下面语句查询1. 查看所有采集的日志{jobvector}2. 只看N8N容器日志{containern8n}3. 只看SSH登录、登录失败日志{jobvector} | sshd4. 只看Fail2ban黑客拦截、封禁IP日志{jobvector} | fail2ban十、常见问题避坑全程踩坑总结问题1Grafana打开日志一片空白明明Vector已采集原因Grafana默认只显示前1000行Docker容器日志太多把系统日志挤没了解决右上角Limit默认1000改成10000不用全量查询直接用| 关键词过滤问题2Vector报 429 Too Many Requests原因一次性读取海量历史日志Loki限流拒绝解决配置里统一用read_from end只收集新日志不加载历史问题3看不到Fail2ban/SSH日志Vector能读到文件但不显示原因1日志文件权限限制Vector无读取权限执行命令开放权限sudochmod644/var/log/auth.log /var/log/fail2ban.log原因2混用动态标签模板Loki解析失败解决直接用本文极简配置不搞复杂标签模板只用固定jobvector问题4Vector配置文件报TOML语法错误原因缩进、冒号格式不对解决直接复制本文完整vector.toml不要手动改格式十一、使用总结整套架构一条命令启动无需复杂安装自动全覆盖Docker容器日志 SSH安全日志 Fail2ban攻防日志不用登录服务器看日志浏览器随时随地检索、回溯只需复制配置无需懂日志原理即可落地使用避开了429限流、标签解析、行数限制、权限不足等所有坑
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2571261.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!