智能日志管理平台

  • 配置分发与批量管理

    最近更新时间:2018-10-22 16:14:29

    配置批量分发

    对于一个已经配置完成的收集任务,点击分发按钮,可以看到两种批量分发方式。

    批量分发到多个机器

    点击分发按钮后,会弹出一个分发的选框,默认是分发到机器,在左侧选择希望分发到的机器,选择完毕后点击分发即可。

    分发任务发出后,无论agent之前是否已经在运行该收集器,都会重新以新的配置开始收集,所以修改收集器后重新分发一次,就能使得修改生效。

    重新分发并不会导致数据丢失,logkit-pro agent 会记录读取位置,新老配置更替时读取和发送照样能不重不漏。

    分发到机器

    如图所示,我们的收集器之前已经分发到了 zhonghuipingdeMacBook-pro.local 这台机器,然后我们选择 MacBookPro.localWenzhengdeMacbook-Pro.local, 点击确认后,这三台都会运行该收集任务。
    同时 zhonghuipingdeMacBook-pro.local 会以本次分发的新配置运行。

    批量分发到某些标签

    与分发到机器类似,分发到标签可以方便您对具有同一类标签的机器进行批量操作。具体如何对机器打标签,我们在本文随后进行介绍。

    分发到标签

    如图所示,我们之前已经分发到了 smartelf 这个标签,所有打上 smartelf 标签的机器都已经在运行。

    然后我们这次加上 oracle 这个标签,再次分发。所有打上 smartelforacle 标签的机器都会执行该收集任务。

    若配置有编辑更新,再次分发,会以新的配置运行。

    若一台机器同时打上了 oraclesmartelf 两个标签,则对于同一个任务,只会执行一次。

    标签管理

    在机器列表中,您可能已经注意到有个 "+" 标记的图标,鼠标放上去可以看到添加标签。

    添加标签

    点击该按钮,可以看到将某个机器添加到标签的选项。

    在该页面点击 <标签管理> 可以进入到添加标签的页面。

    该页面可以添加标签,并对标签的备注进行修改。

    其他批量操作

    在 <机器列表> 以及 <数据收集> 列表中,我们还支持一些批量操作。

    如图所示,通过勾选列表最左侧的复选框,可以进行批量的升级、添加标签、查看收集任务进行对比等操作。

    与Puppet、Ansible等运维工具结合进行配置分发

    上文介绍的配置批量分发都是使用 logkit-pro 系统实现,但是 logkit-pro 的 agent 本身也支持与成熟的运维工具想结合使用,即监听配置文件的修改,实时热更新。

    以下是一个简化版的 logkit-pro agent 配置。

    {
      "version": 1,
      "service": {
        "bind_host": ":3000",
        "static_dir": "public/"
      },
      "service_url": {
        "smart_elf": "https://logkit-pro.qiniu.com/"
      },
      "agent": {
        "connect_to_server": false,
        "ak": "",
        "sk": ""
      },
      "runtime": {
        "max_procs": 1,
        "pprof_host": ":3002"
      },
      "security": {
        "disable_auths": false,
        "auths_file": "auths.conf"
      },
      "confs_path": ["/home/path/to/confs*"]
    }
    

    可以看到 confs_path 参数,该参数指定了logkit-pro agent 监听的目录, 这个参数是以 json 数组的形式存在的,支持填写多个路径,同时也支持linux通配符。

    具体来说,我们可以创建一个文件夹,用于存放配置文件,如目录 /home/path/to/confs/ 的文件夹,然后使用 PuppetAnsible 等工具对写好的配置进行推送。

    推送的配置文件放入 /home/path/to/confs/,如

    qboxserver@hostname:/home/path/to/confs/$: ls
    runner1.conf   runner2.conf
    

    在文件新增或修改的时候,logkit-pro agent 会实时感知配置文件的变化,使得配置生效。

    • 七牛公司内部也采用类似的方法,通常服务在机器上遵循这样的路径 /home/qboxserver/<服务名称>/_package/ ,我们会把收集任务的配置文件写到各自的服务中去,如创建一个文件夹 /home/qboxserver/<服务名称>/_package/logkit-pro/, 然后指定logkit-pro的配置文件监听此类文件夹 "confs_path": ["/home/qboxserver/*/_package/logkit-pro/"] ,这样所有服务上线后第一时间就可以采集日志,并且互不影响,不需要去操作 logkit-pro 本身。

    那么如何获得像 runner1.confrunner2.conf 这样的配置文件呢?

    一方面,在配置收集器的最后一步可以看到:

    另一方面,可以在收集器列表中直接查看收集器配置:


    • 注意我们为了安全隐藏了七牛鉴权相关的配置,在实际配置时要添加

    当然,也可以利用服务端的分发功能,先分发一台,然后在 logkit-pro agent 所在机器的 .logkitconfs 文件夹下找到配置文件,再修改使用。

    以上内容是否对您有帮助?
  • Icon free helper
    Close