open-falcon-agent部署

目前监控同时使用了阿里云云监控(基础监控)、prometheus(应用监控),监控系统比较混乱,接入方式以及查询入口、报警配置及报警方式不统一,所以使用open-falcon来做统一。

使用open-falcon对比prometheus主要是考虑一下几个方面:

  1. open-falcon相较prometheus方式有更好的性能。
  2. open-falcon各个组件基本都是实现很好的横向扩展。
  3. open-falcon对比prometheus可以通过hostgroup和template更好的管理应用、host、报警规则的关系。
  4. open-falcon接口完善,可以更高效率的配置报警信息。
兼容历史数据问题

业务暴露业务指标通过promehtues进行采集,迁移到open-falcon时也需要做对应的兼容,通过falcon-agent的plugin功能对服务暴露的prometheus指标进行解析push到本地agent。

agent部署规范

open-falcon agent使用ansible进行标准话推送:

推送方式:

# 1. 更新hosts文件, 更新需要推送的IP信息
# 2. ansible 批量推送
ansible-playbook -i hosts -e host=all install_openfalcon_agent.yaml -f 30

ansible任务如下:

  - name: "install the git"
    yum:
      name: git

  - name: "init the dir"
    file:
      path: "/opt/servers/.openfalcon_agent"
      recurse: yes
      state: directory

  - name: "push openfalcon_agent file"
    copy:
      src: "{{ item.src }}"
      dest: "{{ item.dest }}"
      mode: 0755
      owner: root
      group: root
    with_items:
      - { src: "files/openfalcon_agent.tar.gz", dest: "/opt/servers/.openfalcon_agent/openfalcon_agent.tar.gz" }

  - name: "unarchive file "
    unarchive:
      src: /opt/servers/.openfalcon_agent/openfalcon_agent.tar.gz
      dest: /opt/servers/.openfalcon_agent/
      remote_src: yes

  - name: "push the openfalcon_agent configuration!"
    template:
      src: "{{ item.src }}"
      dest: "{{ item.dest }}"
      mode: 0755
      owner: root
      group: root
    with_items:
      - { src: "templates/cfg.json.j2", dest: "/opt/servers/.openfalcon_agent/agent/config/cfg.json" }

  - name: "start openfalcon_agent"
    shell: "cd /opt/servers/.openfalcon_agent/ && chmod 755 ./open-falcon  && nohup ./open-falcon restart agent &"
    become_user: root

  - name: "plugin update"
    shell: "curl -X GET http://127.0.0.1:1988/plugin/update"
plugin插件使用方式
  1. 在git仓库中创建public类型的项目,线上生产环境使用的git地址为:https://code.soulapp-inc.cn/falcon/falcon-plugin

  2. 在agent的配置文件中修改plugin相关的配置。

        "plugin": {
            "enabled": true,
            "dir": "./plugin",
            "git": "https://code.soulapp-inc.cn/falcon/falcon-plugin.git",
            "logs": "./logs"
        },
    
  3. 配置完成后确保节点下发最新的配置后,在hostgroup中对host主机和plugin进行绑定,

注意事项
  1. open-falcon-agent在启动后不会去主动拉取plugin相关的代码信息, 需要手动触发,这里我使用在ansilbe中配置服务启动后进行相关接口的调用来触发代码拉取,需要注意git仓库的压力问题。
  2. 推送open-falcon-agent时注意不要有plugin目录,会导致clone代码异常。
  3. plugin相关的脚本执行后后输出信息,会有日志的报错信息。这个不影响使用,非必需。
  4. portal上配置完成之后并不会立马生效,有个同步的过程,最终是agent通过调用hbs的接口获取的,需要一两分钟。上例我们绑定了sys/ntp,这实际是个目录,这个目录下的所有插件都会被执行,那什么样的文件会被看做插件呢?文件名是数字下划线打头的,这个数字代表的是step,即多长时间跑一次,单位是秒,比如60_a.py,就是在通过命名告诉agent,这个插件每60秒跑一次。sys/ntp目录下的子目录、其他命名方式的文件都会被忽略。
参考文档:

Prometheus-exporter-collector: https://github.com/n9e/prometheus-exporter-collector

plugin机制:https://book.open-falcon.org/zh_0_2/philosophy/plugin.html

open-falcon-agent接口:https://github.com/open-falcon/falcon-plus/blob/master/modules/agent/http/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值