Redian新闻
>
使用Loki收集网络设备日志

使用Loki收集网络设备日志

科技


新钛云服已累计为您分享716篇技术干货


前言

Loki是Grafana Labs团队的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统,它的设计非常简洁易于操作。

受Prometheus启发的,可以水平扩展、高可用以及支持多租户的日志聚合系统,使用了和Prometheus相同的服务发现机制,将标签添加到日志流中而不是构建全文索引,从promtail接收到的日志和应用的Metrics指标就有相同的标签集,不仅提供了更好的日志和指标之间的上下文切换,还避免了对日志进行全文索引。

日常的网络运维中,如果能把网络设备的日志收集起来,集中查看,在处理故障或日常巡检时,会比较方便一些

如果没有专业的日志收集硬件或软件设备,那么可以搭建Loki进行收集,并使用Grafana查看收集好的日志

本文的主要内容如下:

  1. 如何安装部署loki

  2. 如何配置网络设备的syslog

  3. 如何使用rsyslog收集到网络设备的日志

  4. 如何配置Grafana并查看日志


环境准备

1台主机,可以是云主机、虚机,可以根据日志的多少来决定配置的大小,本实验中的配置是4C8G的

OS为Debian11,但其他发行版如CentOS,大部分情况下也是适用的

该主机将会安装loki,rsyslog、promtail

*本文档不再介绍如何安装Grafana

安装部署Loki

  1. 下载最新的版本

    https://github.com/grafana/loki/releases/[1]

    在Linux中安装时可下载loki-linux-amd64.zip

  2. 解压可执行文件到目标目录

    unzip -d /usr/local/bin/ loki-linux-amd64.zip
  3. 创建用户

    useradd -r -s /sbin/nologin loki
  4. 创建配置文件

    mkdir -pv /etc/loki /data/loki

    chown -R loki:loki /etc/loki
  5. 编辑Loki的配置文件

    auth_enabled: false

    server:
      http_listen_port: 3100
      grpc_listen_port: 9096

    common:
      path_prefix: /data/loki
      storage:
        filesystem:
          chunks_directory: /data/loki/chunks
          rules_directory: /data/loki/rules
      replication_factor: 1
      ring:
        instance_addr: 10.20.20.20
        kvstore:
          store: inmemory

    schema_config:
      configs:
        - from: 2020-10-24
          store: boltdb-shipper
          object_store: filesystem
          schema: v11
          index:
            prefix: index_
            period: 24h

    ruler:
      alertmanager_url: http://localhost:9093
  6. 请修改以上几项内容

    1. instance_addr,修改为安装主机的IP地址
    2. alertmanager_url:修改为alertmanager的url,本次并未使用alertmanager,所以写的localhost
  7. 编辑Systemd[2]的服务配置文件

    vim /lib/systemd/system/loki.service

    [Unit]
    Description=Loki service
    After=network.target

    [Service]
    Type=simple
    User=loki
    ExecStart=/usr/local/bin/loki-linux-amd64 -config.file /etc/loki/loki-my-config.yaml

    [Install]
    WantedBy=multi-user.target
  8. 启动并设置为开机自启动

    systemctl start loki; systemctl enable loki

    systemctl status loki

安装并配置promtail

  1. https://github.com/grafana/loki/releases[3] 下载安装包

  2. 下载示例的配置文件

    wget https://raw.githubusercontent.com/grafana/loki/master/cmd/promtail/promtail-local-config.yaml

    也可以直接使用如下的示例配置,注意个别地址需要修改,已进行注释

    server:
      http_listen_port: 9080
      grpc_listen_port: 0

    positions:
      filename: /etc/promtail/positions.yaml

    clients:
    # 将地址修改为实际的 loki Server 的地址
      - url: http://10.20.20.20:3100/loki/api/v1/push


    scrape_configs:
    - job_name: loki
      static_configs:
      - targets:
          - localhost
        labels:
          job: syslog
          env: prod
          location: whcq
          vendor: loki
          hostname: m-loki
          __path__: /var/log/network/m-loki-127.0.0.1.log

    - job_name: syslog
      static_configs:
      - targets:
          - localhost
        labels:
          job: syslog
          env: prod
          location: whcq   # 设备的机房或者所在的位置
          vendor: huawei   # 品牌
          hostname: Test-S6720-254  # 主机名
          __path__: /var/log/network/Test-S6720-254-10.20.99.254.log  # 日志的路径

    - job_name: syslog
      static_configs:
      - targets:
          - localhost
        labels:
          job: syslog
          env: prod
          location: shbd
          vendor: cisco
          hostname: Test-C3560G
          __path__: /var/log/network/192.168.99.254-192.168.99.254.log

  3. 调整promtail执行文件和配置文件的路径

    mv promtail-linux-amd64 /usr/local/bin/

    mkdir -pv /etc/promtail; mv promtail-local-config.yaml config-promtail.yml
  4. 创建用户并修改文件的权限

    useradd -r promtail

    chown promtail:promtail /tmp/positions.yaml
  5. 编辑 Promtail.service

    vim /lib/systemd/system/promtail.service

    [Unit]
    Description=Promtail service
    After=network.target

    [Service]
    Type=simple
    User=promtail
    ExecStart=/usr/local/bin/promtail -config.file /etc/promtail/config-promtail.yml

    [Install]
    WantedBy=multi-user.target 
  6. 启动服务

    systemctl start promtail

    systemctl enable promtail 

使用rsyslog收集到网络设备的日志

· 搭建并配置rsyslog

  1. 配置文件如下

    vim /etc/rsyslog.conf

    # provides UDP syslog reception
    module(load="imudp")
    input(type="imudp" port="514")

    # provides TCP syslog reception
    module(load="imtcp")
    input(type="imtcp" port="514")



    $template IpTemplate,"/var/log/network/%HOSTNAME%-%FROMHOST-IP%.log"
    *.*  ?IpTemplate
    & ~

    %HOSTNAME%-%FROMHOST-IP%.log是日志文件的名字,表示主机名+发送源主机的IP

  2. 重启服务

    systemctl restart rsyslog

配置交换机发送日志到Loki

· Cisco交换机

# 设置发送日志的源端口
logging source-interface Vlan99

# 设置目标主机
logging 10.20.20.20

· 华为交换机

# 根据实际情况修改源接口,或者不配置
info-center loghost source Vlanif999

# 设置 syslog 的目标主机
info-center loghost 10.20.20.20

# 默认情况下是Info级别,所以此命令可以不执行
info-center source default channel loghost log level informational

· 配置Grafana

  1. 导入ID为13639的Dashboard

  2. 配置Variables,建议的配置如下


3. 查看日志

参考资料:

[1]https://github.com/grafana/loki/releases/: https://github.com/grafana/loki/releases/
[2]
Systemd: https://www.wolai.com/5YUVEN1zqVdZG2inbWBKh9
[3]
https://github.com/grafana/loki/releases: https://github.com/grafana/loki/releases


    推荐阅读   




    推荐视频    

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
端到端音视频说话人日志网络,一作解读INTERSPEECH 2022论文一行log日志,引发了P1的线上事故Looking for Love in China? Get Into Esports.10分钟学会使用Loki日志聚合系统乔伊斯的这句“love loves to love love”,到底啥意思?logback - 自定义日志脱敏组件,一种不错的脱敏方案麻州公立学校出事!师生应避免在家里使用学校发放的设备...佐治亚州长禁止这些设备使用TikTok、微信和Telegram胡锦涛与钱学森筑格精选|如何用logo营销,如何靠设计溢价?Kubernetes 1.24发布,支持网络策略状态、上下文日志记录和子资源德州多所高校禁止在校园网络使用TikTok如何使用 journalctl 查看和分析 systemd 日志(附实例) | Linux 中国你用Lumion出的图,太假了!直播预约 | Violet:员工数据收集、使用和出境合规路径探讨 | DPOHUB何谈第12期So long, flowers. The London Plane将于平安夜永久关门YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8,必卷!美众议院封杀TikTok!禁止在官方设备上使用该应用普通人的理想生活绿卡申请——美“公共负担”新规:首次收集大量信息,福利使用收入职业教育等均列入审查 | 北美候鸟使用 Vector 将 PostgreSQL 日志输出为 Prometheus 指标中国的教育失败在哪里?中芯国际回应半导体万亿补贴传闻;字节内部会:将继续“去肥增瘦”;美参议院通过禁止政府设备使用TikTok的法案 | AI一周资讯大摩面试官让我当场写CIM,还必须用LBO模型!我慌了…原创 | 药源回顾2022:装备日益精良的制药业我用Lambda表达式写代码,开发速度提高了10倍!【Locker Room】LOL联赛?篮球全明星?Lockerroom有什么新活?龙卷风健康快递 220白玫瑰传苹果XR头显将由和硕独家代工、Quest设备禁止13岁以下用户使用《Rec Room》当当、赶集网、土豆网的教训:创始人的婚姻如何影响企业发展?日本设备巨头:地球上每一个芯片都经过我们的设备佐治亚最新提案:这类设备上禁止使用TikTok、微信,学校也如此!【实操日记】使用PyQt5设计下载远程服务器日志文件程序赏樱季,快用Lisa宋妍霏同款粉色单品占领朋友圈
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。