• open-falcon学习总结


    open-falcon安装

    直接安装openfalcon

    (略,见docker学习总结-openfalcon镜像的制作和打包或下面的链接)

    https://book.open-falcon.org/zh_0_2/quick_install/prepare.html

    https://www.cnblogs.com/nulige/p/7741580.html

    使用自定义镜像部署openfalcon

    获取openfalcon的docker镜像

    可通过移动硬盘获取镜像的tar包或者直接从远程仓库获取

    运行openfalcon容器

    运行容器时需要映射四个端口,其中8081是openfalcon的Dashboard界面访问端口,1988(Agent组件 数据上报)、6030(HBS服务 心跳服务)、8433(Transfer组件 数据接收)在监控时需要用到。

    docker run -dit --name 容器名称n -p Dashboard组件映射端口:8081 -p Agent组件映射端口:1988 -p HBS服务映射端口:6030 -p Transfer组件映射端口:8433 openfalcon镜像名称:openfalcon镜像tag /bin/bash
    
    ## 示例
    docker run -dit --name my_openfalcon -p 10101:8081 -p 10102:1988 -p 10103:6030 -p 10104:8433 my_openfalcon:0.1 /bin/bash
    

    进入openfalcon容器

    ## 查看运行中的容器,获取openfalcon对应容器的编号
    docker ps
    ## 以交互方式进入容器内部
    docker exec -it 容器编号 /bin/bash
    

    修改openfalcon容器中MySQL的配置

    因为新创建容器之后MySQL没有对应的pid文件,会出现无法启动的情况,所有需要创建对应的pid文件,并配置相应的权限,使得MySQL可以访问到它。

    ## 前往MySQL安装目录
    cd /apps/mysql-5.7.27/data
    ## 创建当前容器对应的MySQL的pid文件
    touch 容器编号.pid
    ## 修改创建的pid文件的权限
    cd ..
    chown -R mysql:mysql data
    chmod -R 755 data
    

    修改openfalcon容器中的配置文件

    检查一下openfalcon的agent组件的配置文件是否正确。

    ## 前往openfalcon后端agent组件安装目录
    cd /apps/open-falcon-beckend/agent/config
    ## 编辑配置文件
    vim ./cfg.json
    

    修改cfg.json文件的以下内容:

    //修改HBS服务的IP地址和端口号,这里改成openfalcon安装宿主机的ip和容器内6030端口对应宿主机映射的端口号(docker run时设置的),本机的话可以直接设置成127.0.0.1:6030
    "heartbeat": {
    	"addr": "47.96.72.151:10103",
    },
    //修改Transfer组件的IP地址和端口号,这里改成openfalcon安装宿主机的ip和容器内8433端口对应宿主机映射的端口号(docker run时设置的),本机的话可以直接设置成127.0.0.1:8433
    "transfer": {
        "addrs": [
            "47.96.72.151:10104"
        ],
    },
    //修改Agent组件的IP地址的端口号,这里改成容器内1988端口对应宿主机映射的端口号(docker run时设置的),本机的话可以直接设置成127.0.0.1:1988
    "http": {
        "listen": ":10102",
    },
    

    运行脚本文件,开启服务

    运行sh文件,开启服务。

    当出现文件运行完成,容器自动停止的情况时,可编辑/apps/start.sh文件,在最后面加上【while true; do echo openfalconRuning; sleep 1; done】再重新运行start.sh文件,运行成功后直接关闭该ssh连接即可。

    ## 前往openfalcon软件安装根目录
    cd /apps
    ## 运行脚本文件
    ./start.sh
    

    查看open-falcon服务端界面是否可以正常访问

    访问【宿主机IP地址:Dashboard组件映射端口】即可访问open-falcon服务端,默认为8081端口

    open-falcon简介

    画面介绍

    访问

    IP地址:8081(默认)

    ![](https://img2018.cnblogs.com/blog/1592246/201909/1592246-20190904084154901-1332843973.png)
    

    界面

    官方说明:https://book.open-falcon.org/zh_0_2/usage/getting-started.html

    1. Dashboard页面:监控机列表及监控数据查看

      查看当前openfalcon服务端监控的实体(Endpoints)和对应的指标(Counters)。

    2. Screen页面:自定义看板

      创建和管理监控指标的看板。分别创建看板组合看板画面,可配置单个看板的监控实体、监控指标、展示样式。

    3. Hostgroup页面:监控机组

      创建和管理监控实体组。openfalcon有监控组的概念,报警时不针对单个的实体,而是根据组来报警。

      在Hostgroup页面,可创建和编辑每个组的基本信息、配置组成员、配置组报警策略、配置组插件等。

      plugins参考:官方文档博客

    1. Template页面:监控报警策略模板

      查看和管理报警策略。可以根据需求创建和管理报警信息,

      报警对象:一个实体组(Hostgroup)或者一个实体(Endpoint)

      报警指标:自定义指标及报警值

      给谁报警:一个用户组(Team)

      报警回调:可设置一个URL,当报警被触发时,openfalcon会以get方式回调这个URL,回调时可发送提醒和结果

    2. Expression页面:监控报警策略表达式

      查看和管理表达式。

    3. Nodata页面:无数据报警

      查看和管理无数据上报时的报警。可根据实体组和实体来报警,选择无数据的周期,即可在无数据的时候报警。

    4. Alarm-Dashboard页面:报警仪表盘

      报警信息展示。

    5. 用户管理

      1. Profile页面:登录用户信息管理

        管理当前登录用户的信息

      2. Users页面:用户管理

        查看当前系统的所有用户

      1. 用户组管理

        当前用户组管理。用户组与报警相关。

    组件的关系

    绘图组件

    组件名称 用途 服务端口 备注
    Agent 部署在目标机器采集机器监控项 http: 1988
    Transfer 数据接收端,转发数据到后端Graph和Judge http: 6060 rpc: 8433 socket: 4444
    Graph 操作rrd文件存储监控数据 http: 6070 rpc: 6071 1.可部署多实例做集群 2.需要连接数据库graph
    Query 查询各个Graph数据,提供统一http查询接口 http: 9966
    Dashboard 查询监控历史趋势图的web端 http: 8081 1.需要python虚拟环境 2.需要连接数据库dashborad、graph
    Task 负责一些定时任务,索引全量更新、垃圾索引清理、自身组件监控等 http: 8002 1.需要连接数据库graph

    报警组件

    组件名称 用途 服务端口 备注
    Nodata 检测监控数据的上报异常 http: 6090 1.需要连接数据库:falcon_portal
    Portal 配置报警策略,管理机器分组的web端 http: 5050 1.需要连接数据库:falcon_portal 2.需要python虚拟环境
    Judge 报警判断模块 http: 6081 rpc: 6080 1.可部署多实例
    Alarm 报警事件处理器 http: 9912
    Sender 报警发送模块,控制并发度,提供发送的缓冲queue http: 6066
    mail-provider 报警邮件http api http: 4000 小米提供
    sms-provider 报警短信http api http: 4040 自行编写
    Links 报警合并依赖的web端,存放报警详情 http: 5090 1.需要连接数据库:falcon_links 2.需要python虚拟环境
    HBS HeartBeat Server,心跳服务器 http: 6031rpc: 6030 1.需要连接数据库:falcon_portal
    UIC(fe) 用户组管理,单点登录 http: 80 1.需要连接数据库:uic
    Aggregator 集群聚合模块——聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验。 http: 6055 1.需要连接数据库:falcon_portal

    组件关系

    架构图

    https://blog.csdn.net/beta_xiyan/article/details/81911653

    https://blog.51cto.com/chenguomin/1865550

    open-falcon系统的使用

    配置一个open-falcon监控机

    1. 获取监控数据

      新增一个监控机

      根据监控物的不同而不同,可参考下面的各种监控配置或者官方文档

    2. 查看监控数据

      在Dashboard菜单查看刚刚配置的监控机,选择这个监控机可查看指标

    3. 配置监控组

      在HostGroup菜单将监控机配置到组中,可新增组或者点击hosts将当前的机器加到指定的组中

    4. 配置报警策略

      在Template菜单配置报警策略

      在HostGroup菜单找到指定的组,点击template将报警策略与监控组绑定

    5. 配置无数据报警

      在Nodata菜单配置无数据报警

    6. 配置报警方式

      参考下面的【openfalcon配置报警方式】

    7. 查看指标或者查看报警

      在Dashboard中查看监控指标

      在Screen中配置一个看板

      在Alarm-Dashboard中查看报警信息(配置了报警方式的话可以收到报警信息)

    通过open-falcon查看监控机的指标信息

    1. 访问open-falcon服务端

      默认是8081端口。

    2. 选择需要查看指标的监控机(可搜索、多选)

    3. 点击【刷新counter列表】按钮

    4. 点击指标可查看单个指标的动态图

    5. 选择多个指标后,点击【看图】按钮,选择对应的视角,可同时查看多个指标(视角介绍见下方Q&A)

    通过open-falcon创建指标看板

    1. 访问open-falcon服务端,进入screen菜单

    2. 点击screen首页,在弹出的下拉画面中可搜索已有的看板组或直接新建组

    3. 点击【+导航】,在打开的画面中输入组名称,点击【新增】即可新建一个卡板组

    4. 新增组之后,即可新增看板画面。选择对应的组,点击【选择】【+screen】即可进入看板新增页面

    5. 进入看板新增页面,填写相关信息即可新增看板

      Graph标题:看板名称

      Endpoints列表:看板展示的机器列表,一行一个

      Counters列表:看板展示的指标列表,一行一个

      默认时间跨度:看板展示指标的时间跨度,即展示多久的数据

      视角:看板数据的展示视角

      是否加和:是否对数据进行加和运算并将和展示出来(与指标信息相同的方法展示)

    通过open-falcon管理机器组

    openfalcon对机器的管理是以组的形式进行的,报警策略配置是按照机器组来的,可根据需要将不同的机器进行编组,再进行管理。

    1. 访问open-falcon服务端,进入Hostgroup菜单

    2. 在页面中展示了机器组列表,可进行搜索

    3. 输入名称后点击右上角的+可新增组

    4. 在组列表中,可配置该组的报警策略、组成员机器、组插件等信息


    通过open-falcon管理报警信息

    配置报警策略

    1. 访问open-falcon服务端,进入Template菜单

    2. 在页面中展示了报警策略列表,可进行搜索

    3. 输入名称后点击右上角的+可进入新增报警策略页面

    4. 设置相应的信息即可新增报警策略

      模板基本信息

      name:模板名称

      parent:父级模板名称

      该模板中的策略列表

      metric/tags[note]:指标名称

      condition:报警条件

      max:最大报警次数

      P:报警级别(<3时既发短信也发邮件 , >=3时只发邮件)

      run:报警时间(默认全天)

      模板报警配置

      报警接收组:报警信息的接收人组(openfalcon的用户组)

      callback地址:报警之后回调的URL(GET方法回调),并可配置回调前的提醒和回调之后的结果通知

    配置报警方式

    在openfalcon的Alarm-Dashboard菜单中可查看报警信息,如果需要短信、电话、邮箱、微信等方式报警,需要自己配置,可以使用官方的控件也可以自己写接口实现,主要是修改【后端-Alarm-config-cfg.json】文件,docker镜像中为【/apps/open-falcon-beckend/alarm/config/cfg.json】。

    修改其中的api部分:

    "api": {
       //im报警接口URL,如微信,对应openfalcon用户中的IM
       "im": "http://127.0.0.1:10086/wechat",
       //短信、电话报警接口URL,对应openfalcon用户中的手机
       "sms": "http://127.0.0.1:10086/sms",
       //邮件报警接口URL,对应openfalcon用户中的邮箱
       "mail": "http://127.0.0.1:10086/mail",
       "dashboard": "http://127.0.0.1:8081",
       "plus_api":"http://127.0.0.1:8080",
       "plus_api_token": "default-token-used-in-server-side"
    },
    

    官方说明文档:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html

    详见下面的配置报警方式。

    配置无数据报警

    1. 访问open-falcon服务端,进入Nodata菜单

    2. 在页面中展示了无数据报警列表,可进行搜索

    3. 输入名称后点击右上角的+可进入新增无数据报警页面

    4. 设置相应的信息即可新增无数据报警

      name:无数据报警的名称

      endpoint选择:设置无数据报警的机器,可设置机器组或者机器,一行一个

      metric:监测指标

      tags:监控指标的tag

      type:监控指标的值类型

      周期(秒):数据上报的周期,需要与监控项上报数据的step一致

      数据上报中断时, 补发如下值:无数据上报时补发的值

    查看报警内容

    1. 访问open-falcon服务端,进入Alarm-Dashboard菜单
    2. 在页面中展示了报警信息列表
    3. 配置了短信、邮件等报警方式时,会收到报警信息

    open-falcon监控指标说明(主机)

    其他具体内容,请参考:

    官方文档0.1官方文档0.2

    Satori官方文档

    博客

    组件相关

    指标名称 指标说明
    agent.alive agent存活(存活时为1)

    CPU相关

    参考博客:https://blog.51cto.com/asinego/1949715

    指标名称 指标说明
    cpu.idle CPU空闲时间,不包括等待I/O的时间
    cpu.iowait 等待I/O的CPU时间
    cpu.switches cpu上下文切换次数(计数器类型)
    cpu.system 内核态CPU时间
    cpu.user 用户态CPU时间
    cpu.nice 低优先级用户态CPU时间,也就是进程nice值被调整为1-19之间的CPU时间
    cpu.irq 处理硬中断的CPU时间
    cpu.softirq 处理软中断的CPU时间
    cpu.guest 运行虚拟机的CPU时间
    cpu.steal 系统运行在虚拟机中的时候,被其他虚拟机占用的CPU时间

    内存相关

    参考博客:https://blog.51cto.com/asinego/1905622

    指标 说明
    mem.memtotal 内存总大小
    mem.memused 内存使用量
    mem.memused.percent 内存使用百分比
    mem.memfree 内存剩余量
    mem.memfree.percent 内存剩余百分比
    mem.swaptotal swap总量
    mem.swapused sqap使用量
    mem.swapused.percent swap使用百分比
    mem.swapfree swap剩余量
    mem.swapfree.percent swap剩余百分比

    磁盘相关

    参考博客:https://blog.51cto.com/asinego/1902213

    指标名称 指标说明
    df.statistics.total 磁盘总量
    df.statistics.used 磁盘使用总量
    df.statistics.used.percent 磁盘使用百分比
    df.bytes.used 磁盘使用量
    df.bytes.used.percent 磁盘使用百分比
    df.bytes.free 磁盘可用量
    df.bytes.free.percent 磁盘可用百分比
    df.inodes.free.percent 磁盘可用inode占比

    IO相关

    指标名称 指标说明
    disk.io.util 在统计时间内所有处理IO时间,除以总共统计时间
    disk.io.svctm 表示平均每次设备I/O操作的服务时间
    disk.io.avgqu-sz 平均请求队列的长度
    disk.io.avgrq_sz 平均请求扇区的大小
    disk.io.await 每一个IO请求的处理的平均时间(毫秒)
    disk.io.ios_in_progress 当前正在运行的实际I / O请求数
    disk.io.msec_read 所有读取所花费的总时间(毫秒)
    disk.io.msec_write 所有写入所花费的总时间(毫秒)
    disk.io.read_bytes 读取字节数,单位是byte的数字
    disk.io.read_merged 相邻的读取请求合并在单个请求中
    disk.io.read_requests 成功读取完成的总次数
    disk.io.read_sectors 成功读取的扇区总数
    disk.io.write_bytes 写入字节数,单位是byte的数字
    disk.io.write_merged 相邻的写入请求合并在单个请求中
    disk.io.write_requests 成功写入磁盘的总次数
    disk.io.write_sectors 成功写入扇区数的总次数
    disk.io.msec_total ios_in_progress> = 1的时间量
    disk.io.msec_weighted_total 统计最近的I/O完成时间和积压

    机器内核配置

    指标 说明
    kernel.files.allocated 读取的/proc/sys/fs/file-nr第一个Field
    kernel.files.left 值=kernel.maxfiles-kernel.files.allocated
    kernel.maxfiles 读取的/proc/sys/fs/file-max
    kernel.maxproc 读取的/proc/sys/kernel/pid_max

    机器负载相关

    指标 说明
    load.15min 15min系统平均load average(load average <= CPU核数 *0.7)
    load.5min 5min系统平均load average
    load.1min 1min系统平均load average

    通信相关

    参考博客:https://satori-monitoring.readthedocs.io/zh/latest/builtin-metrics/net.html

    指标 说明
    net.if.in.bits 网络io流入位数(1字节/byte=8位/bit)
    net.if.in.bytes 网络io流入字节数
    net.if.in.packets 网络io流入包数
    net.if.in.compressed 网络io流入压缩包数
    net.if.in.multicast 网络io流入多播包数
    net.if.in.dropped 网络io流入丢弃数
    net.if.in.errors 网络io流入出错数
    net.if.in.fifo.errs 因接收缓冲区满丢掉的包数
    net.if.in.frame.errs 网络io流入错误帧数

    open-falcon配置报警方式

    在openfalcon的Alarm-Dashboard菜单中可查看报警信息,如果需要短信、电话、邮箱、微信等方式报警,需要自己配置,可以使用官方的控件也可以自己写接口实现,主要是修改【后端-Alarm-config-cfg.json】文件,docker镜像中为【/apps/open-falcon-beckend/alarm/config/cfg.json】。

    配置文件:

    openfalcon后端安装目录/alarm/config/cfg.json

    "api": {
    	//微信发送网关地址
        "im": "http://127.0.0.1:10086/wechat",
        //短信发送网关地址
        "sms": "http://127.0.0.1:10086/sms",
        //邮件发送网关地址
        "mail": "http://127.0.0.1:10086/mail",
        //dashboard模块的运行地址
        "dashboard": "http://127.0.0.1:8081",
        //falcon-plus api模块的运行地址
        "plus_api":"http://127.0.0.1:8080",
        //用于和falcon-plus api模块服务端之间的通信认证token
        "plus_api_token": "default-token-used-in-server-side"
    }
    

    官方说明文档:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html

    短信、电话报警

    官方适配了灵犀云的短信和电话接口,可直接使用。

    1. 注册灵犀云

    2. 在灵犀云中创建应用

    3. 在灵犀云中获取token

    4. 修改alarm/config/cfg.json配置文件

      "sms": "https://www.linkedsee.com/alarm/falcon_sms/自己的token"
      
      
    5. 灵犀云电话和短信均免费10次,剩下的需要付费购买

    邮件报警

    mail-provider组件:https://github.com/open-falcon/mail-provider

    1. 下载编译好的二进制文件

      cd /apps/open-falcon-msg/mail
      
      wget https://dl.cactifans.com/open-falcon/falcon-mail-provider.tar.gz
      
      
    2. 解压安装

      cd /apps/open-falcon-msg/mail
      
      mkdir -p falcon-mail-provider
      
      tar zxvf falcon-mail-provider.tar.gz
      
      cd falcon-mail-provider
      
      
    3. 修改falcon-mail-provider的配置文件

      vim /apps/open-falcon-msg/mail/falcon-mail-provider/cfg.json
      
      
      {
          "debug": true,
          "http": {
              "listen": "0.0.0.0:4000",
              "token": ""
          },
          "smtp": {
              //发件服务器地址
              "addr": "mail.example.com:25",
              //发件人邮箱
              "username": "falcon@example.com",
              //发件人邮箱密码
              "password": "123456",
              //发件人邮箱
              "from": "falcon@example.com",
              "tls":false,
              "anonymous":false,
              "skipVerify":true
          }
      }
      
      
    4. 修改open-falcon alarm组件的配置文件

      vim /apps/open-falcon-beckend/alarm/config/cfg.json
      
      
      "api": {
         "mail": "http://127.0.0.1:4000/sender/mail",
      },
      
      
    5. 启动服务

      启动服务

      cd /apps/open-falcon-msg/mail/falcon-mail-provider
      ./control start
      
      

      查看日志

      cd /apps/open-falcon-msg/mail/falcon-mail-provider
      ./control tail
      
      
    6. 测试使用

      curl http://127.0.0.1:4000/sender/mail -d "tos=收件人&subject=邮件标题&content=邮件内容"
      ## 示例
      curl http://127.0.0.1:4000/sender/mail -d "tos=a@a.com,b@b.com&subject=openfalcon报警&content=测试邮件"
      
      

    微信报警

    chat组件:https://github.com/yanjunhui/chat

    1. 克隆代码

      cd /apps/open-falcon-msg/wechart
      git clone https://www.github.com/yanjunhui/chat.git
      
      
    2. 修改chat配置文件

      cd /apps/open-falcon-msg/wechart/chat
      vim config.conf
      
      
      #http 服务端口
      [http]
      #默认为0.0.0.0, 可根据需要修改成自己的IP或者想使用本地地址修改为: 127.0.0.1
      address = 0.0.0.0
      port = 4567
      
      #微信接口信息
      [weixin]
      CorpID = ww6424d33203e90e20
      AgentId = 1000002
      Secret = FoST_8RQSTjZwH_CN3aQW6UKksjCSI9mizFqD7HKhrw
      
      
    3. 修改open-falcon alarm组件配置文件

      "api": {
      	"im": "http://yanjunhui.com:4567/send",
      },
      
      
    4. 启动服务

      cd /apps/open-falcon-msg/wechart/chat
      ./control.sh start
      
      
    5. 查看服务状态

      cd /apps/open-falcon-msg/wechart/chat
      ./control.sh status
      
      

    open-falcon组件说明

    绘图相关

    Agent:部署在目标机器采集机器监控项
    Transfer:数据接收端,转发数据到后端Graph和Judge
    Graph:操作rrd文件存储监控数据
    Query:查询各个Graph数据,提供统一的http查询接口
    Dashboard:查询监控历史趋势图的web端
    Task:负责一些定时任务,所有全量更新、垃圾索引清理、自身组件监控等

    报警相关

    Sender:报警发送模块,控制并发度,提供发送的缓冲queue
    UIC(FE):用户组管理,单点登录
    Portal(python):配置报警策略,管理机器分组的web端
    HBC:Hearbeat Server,心跳服务器
    Judge:报警判断模块
    Links:报警合并依赖的web端,存放报警详情
    Alarm:报警事件处理器

    open-falcon监控Windows

    https://blog.51cto.com/zhuyuanpo/1775108

    1. 安装好openfalcon服务器

    2. 选择合适的Windows监控程序(这里选择windows-agent:另一个 go 语言实现的 windows-agent。支持端口,进程监控,支持后台服务运行。)

    3. 下载已经编译好的版本

      https://github.com/freedomkk-qfeng/windows-agent/releases

    4. 解压压缩包(windows-agent-release-1.0.3和里面的nssm-2.24都要解压)

    5. 修改配置文件内容

      找到cfg.example.json文件,复制一份到windows-agent.exe同级目录(根据自己的机器选择x64和x86)

      1566810430444

      修改配置文件内容

      {
          "debug": true,
      	"logfile": "windows.log",
          //给这台机器取个名字,在openfalcon中就是显示的这个名字
          "hostname": "hutianyao.windows.test",
          //修改IP地址为本机的IP地址
          "ip": "47.96.72.151",
      	"iis":{
      		"enabled": false,
      		"websites": [
      	        "Default Web Site"
      	    ]
       	}, 
          //本机数据库配置
      	"mssql":{
      		"enabled": false,
      		"addr":"127.0.0.1",
      		"port":3306,
      		"username":"sa",
      		"password":"123456",
      		"encrypt":"disable",
      		"instance": [
      	        "test"
      	    ]
       	}, 
          "heartbeat": {
              "enabled": true,
              //修改为openfalcon服务端的IP:端口号,默认是6030,这里映射到了10103
              "addr": "47.96.72.151:10103",
              "interval": 60,
              "timeout": 1000
          },
          "transfer": {
              "enabled": true,
              //修改为openfalcon服务端的IP:端口号,默认是8433,这里映射到了10104
              "addrs": [
                  "47.96.72.151:10104"
              ],
              "interval": 60,
              "timeout": 1000
          },
          "http": {
              "enabled": true,
              //修改为openfalcon服务端的IP:端口号,默认是1988,这里映射到了10102
              "listen": ":10102",
              "backdoor": false
          },
          "collector": {
              "ifacePrefix": ["网络"]
          },
      	"default_tags": {
          },
          "ignore": {
              "cpu.busy": true
          }
      }
      
      
      
    6. 以管理员身份运行CMD

    7. CD到解压目录

      cd H:	mpwindows-agent-release-1.0.3x64
      
      
    8. CD到包含windows-agent.exe的文件夹下运行命令

      windows-agent.exe
      
      
    9. 输出正常后使用 nssm 注册为 Windows 服务

      CD到nssm解压目录中包含nssm.exe的文件夹根据自己的机器选择win32和win64)

      执行命令

      nssm.exe install windows-agent
      
      

      输入或选择windows-agent.exe文件的绝对路径,以及其上一级目录

    10. 启动服务

      nssm.exe start windows-agent
      
      

    open-falcon监控Linux

    https://www.cnblogs.com/yinzhengjie/p/10111390.html

    open-falcon监控MySQL

    MySQL监控部署

    https://github.com/open-falcon/mymon

    1. 安装和配置go环境

      ## 下载go安装包
      https://golang.google.cn/dl/
      
      ## 解压安装包到指定位置
      cd /apps && mkdir go
      tar -C /apps/go -xzf go1.12.9.linux-amd64.tar.gz
      
      ## 配置环境变量
      export GOROOT=/apps/go/go
      export GOPATH=/apps/go/goWork
      export PATH=$PATH:/apps/go/go/bin
      
      ## 测试是否安装成功
      go version
      
      
    2. 克隆代码

      go get -u github.com/open-falcon/mymon
      
      
    3. 编译代码

      cd $GOPATH/src/github.com/open-falcon/mymon
      make
      
      
    4. 修改配置文件

      [default]
      ## 工作目录
      basedir = . 
      ## 日志目录,默认日志文件为myMon.log,旧版本有log_file项,如果同时设置了,会优先采用log_file
      log_dir = ./fixtures 
      ## 配置忽略的metric项
      ignore_file = ./falconignore 
      ## 保存快照(process, innodb status)的目录
      snapshot_dir = ./snapshot 
      ## 保存快照的时间(日)
      snapshot_day = 10 
      ##  日志级别[RFC5424]
      log_level  = 5 
      # 0 LevelEmergency
      # 1 LevelAlert
      # 2 LevelCritical
      # 3 LevelError
      # 4 LevelWarning
      # 5 LevelNotice
      # 6 LevelInformational
      # 7 LevelDebug
      # falcon agent连接地址
      falcon_client=http://127.0.0.1:1988/v1/push 
      
      [mysql]
      ## 数据库用户名
      user=root 
      ## 数据库密码
      password=1tIsB1g3rt 
      ## 数据库连接地址
      host=127.0.0.1 
      ## 数据库端口
      port=3306 
      
      
    5. 测试启动

      cd $GOPATH/src/github.com/open-falcon/mymon
      ./mymon -c etc/myMon.cfg
      
      
    6. 添加定时任务

      echo '* * * * * cd mymon编译目录 && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon
      
      ##示例
      echo '* * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon
      
      

      注:可能需要安装crontabs(定时任务)服务

      ## 安装crontabs
      yum -y install crontabs
      
      ## 开机自启动crontabs
      
      
      ## 配置定时任务
      vim /etc/crontab
      ## 在文件中加上(/1表示每分钟执行一次)
      */1 * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg
      
      ## 保存定时任务
      crontab /etc/crontab
      
      ## 查看定时任务
      crontab -l
      
      

      ​ 当在docker容器中运行时,可直接在启动容器时添加参数:

      docker exec -it 容器编号 crond restart
      ## 或者
      docker exec -it 容器编号 /usr/sbin/crond -i
      ## 示例
      docker exec -it 315e4af50cbd crond restart
      
      
    7. 查看日志

      cd $GOPATH/src/github.com/open-falcon/mymon
      cat myMon.log
      
      

    MySQL监控指标

    open-falcon监控Redis

    open-falcon监控Tomcat

    官方文档

    博客

    Tomcat监控部署

    1. 安装和配置JDK(使用tar.gz文件)

      1. 解压JDK到指定的目录
      tar zxvf /tmp/jdk-8u221-linux-x64.tar.gz -C /tomcat
      
      
      1. 配置环境变量

        ## 配置环境变量
        vi ~/.bashrc
        
        
        ## 在文件最后添加
        export JAVA_HOME=jdk安装目录
        export PATH=$JAVA_HOME/bin:$PATH
        
        ## 示例
        export JAVA_HOME=/tomcat/jdk1.8.0_211
        export PATH=$JAVA_HOME/bin:$PATH
        
        
      2. 刷新配置文件

        ## 刷新配置
        source ~/.bashrc
        
        
      3. 验证是否安装成功

        ## 查看java版本
        java -version
        
        
    2. 安装Tomcat

      tar zxvf /tmp/apache-tomcat-8.5.45.tar.gz -C /tomcat
      
      
    3. 修改Tomcat启动文件

      ## 前往Tomcat的bin目录
      cd /tomcat/apache-tomcat-8.5.45/bin
      ## 修改配置文件
      vi catalina.sh
      
      

      catalina.sh中需要添加的内容(可使用/CATALINA_OPTS搜索位置)

      CATALINA_OPTS="$CATALINA_OPTS
      -Dcom.sun.management.jmxremote //开启jmxremote
      -Djava.rmi.server.hostname=tomcat所在机器的IP(默认是本机的IP)
      -Dcom.sun.management.jmxremote.port=jmxremote使用的端口号
      -Dcom.sun.management.jmxremote.ssl=是否开启ssl通信
      -Dcom.sun.management.jmxremote.authenticate=是否需要鉴权"
      
      ## 示例
      CATALINA_OPTS="$CATALINA_OPTS
      -Dcom.sun.management.jmxremote
      -Djava.rmi.server.hostname=127.0.0.1
      -Dcom.sun.management.jmxremote.port=8999
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.authenticate=false"
      
      
    4. 启动Tomcat

      ## 前往Tomcat的bin目录
      cd /tomcat/apache-tomcat-8.5.45/bin
      ## 启动Tomcat
      sh startup.sh
      
      
    5. 安装openfalcon的Agent组件

      ## 安装Agent组件
      tar xvf /tmp/agent.tar -C /tomcat
      ## 修改Agent配置文件(修改其中上报数据的IP地址和端口号)
      cd /tomcat/agent/config/cfg.json
      ## 启动Agent服务
      nohup /tomcat/agent/bin/falcon-agent -c /tomcat/agent/config/cfg.json
      ## 检查服务是否开启
      netstat -antp | grep 1988
      ps -ef | grep -i "falcon"
      
      

      agent配置文件说明

      {
          "debug": true,
          //这里是本机在openfalcon中显示的名称
          "hostname": "",
          "ip": "",
          "plugin": {
              "enabled": false,
              "dir": "./plugin",
              "git": "https://github.com/open-falcon/plugin.git",
              "logs": "./logs"
          },
          "heartbeat": {
              "enabled": true,
              //这里是openfalcon的heartbeat模块的URL,默认端口号为6030
              "addr": "47.96.72.151:10104",
              "interval": 60,
              "timeout": 1000
          },
          "transfer": {
              "enabled": true,
              //这里是openfalcon的transfer模块的URL,默认端口号为8433
              "addrs": [
                  "47.96.72.151:10105"
              ],
              "interval": 60,
              "timeout": 1000
          },
          "http": {
              "enabled": true,
              //这里是openfalcon的agent模块的URL,默认端口号为1988
              "listen": ":10103",
              "backdoor": false
          },
          "collector": {
              "ifacePrefix": ["eth", "em"],
              "mountPoint": []
          },
          "default_tags": {
          },
          "ignore": {
              "cpu.busy": true,
              "df.bytes.free": true,
              "df.bytes.total": true,
              "df.bytes.used": true,
              "df.bytes.used.percent": true,
              "df.inodes.total": true,
              "df.inodes.free": true,
              "df.inodes.used": true,
              "df.inodes.used.percent": true,
              "mem.memtotal": true,
              "mem.memused": true,
              "mem.memused.percent": true,
              "mem.memfree": true,
              "mem.swaptotal": true,
              "mem.swapused": true,
              "mem.swapfree": true
          }
      }
      
      
    6. 部署jmxmon

      ## 获取jmxmon
      cd /tmp
      wget https://github.com/toomanyopenfiles/jmxmon/releases/download/v0.0.2/jmxmon-v0.0.2.tar.gz
      ## 解压jmxmon
      tar zxvf /tmp/jmxmon-v0.0.2.tar.gz -C /tomcat
      ## 修改jmxmon配置文件
      cd /tomcat/jmxmon-v0.0.2
      cp conf.example.properties conf.properties
      vi conf.properties
      
      

      conf.properties文件说明

      ## 监听端口号(和上面Tomcat启动文件中的port一致)
      jmx.ports=8999
      ## 上报的URL(openfalcon服务端1988端口)
      agent.posturl=http://47.96.72.151:10102/v1/push
      ## openfalcon中显示的当前监控Tomcat的名称
      hostname=hutianyao.tomcat.test
      
      
    7. 启动jmxmon服务

      cd /tomcat/jmxmon-v0.0.2
      sh control start
      
      
    8. 查看jmxmon日志

      cd /tomcat/jmxmon-v0.0.2
      cat var/app.log
      
      

    Tomcat监控指标

    指标名称 指标说明
    parnew.gc.avg.time 一分钟内,每次YoungGC(parnew)的平均耗时
    concurrentmarksweep.gc.avg.time 一分钟内,每次CMSGC的平均耗时
    parnew.gc.count 一分钟内,YoungGC(parnew)的总次数
    concurrentmarksweep.gc.count 一分钟内,CMSGC的总次数
    gc.throughput GC的总吞吐率(应用运行时间/进程总运行时间)
    new.gen.promotion 一分钟内,新生代的内存晋升总大小
    new.gen.avg.promotion 一分钟内,平均每次YoungGC的新生代内存晋升大小
    old.gen.mem.used 老年代的内存使用量
    old.gen.mem.ratio 老年代的内存使用率
    thread.active.count 当前活跃线程数
    thread.peak.count 峰值线程数

    Q&A

    Endpoint视角、Counter视角和组合视角有什么区别?

    Endpoint视角:按指标展示数据,不同监控机得相同指标,在一个图表中展示。

    图表为指标,线为机器。

    Counter视角:按监控机展示数据,一个监控机的所有数据(选择的指标)展示在一个图表中。

    图表是机器,线是指标。

    组合视角:所有的数据,展示在一个图表中。

    一个图表,线是一个机器的一个指标。

    open-falcon监控项的上报数据格式是怎么样的?

    {
    	// 监控项名称
    	metric: cpu.busy,
        // 目标服务器的主机名
    	endpoint: open-falcon-host,
        // tag标签,作用是聚合和归类,在配报警策略时会比较方便。
    	tags: srv=falcon,group=az1,
        // 监控项数值
    	value: 10,
        // 采集时间
    	timestamp: `date +%s`,
        //  监控项类型。
    	counterType: GAUGE,
        // 采集间隔(秒)。
    	step: 60
    }
    
    

    open-falcon监控项的类型有哪些?

    1. GAUGE:实测值,直接使用采集的原始数值,比如气温;
    2. COUNTER:记录连续增长的数据,只增不减。比如汽车行驶里程,网卡流出流量,cpu_idle等;
    3. DERIVE:变化率,类似COUNTER ,但是可增可减。

    open-facon的报警函数有哪些?

    • all(#3): 最新的3个点都满足阈值条件则报警
    • max(#3): 对于最新的3个点,其最大值满足阈值条件则报警
    • min(#3): 对于最新的3个点,其最小值满足阈值条件则报警
    • sum(#3): 对于最新的3个点,其和满足阈值条件则报警
    • avg(#3): 对于最新的3个点,其平均值满足阈值条件则报警
    • diff(#3): 拿最新push上来的点(被减数),与历史最新的3个点(3个减数)相减,得到3个差,只要有一个差满足阈值条件则报警
    • pdiff(#3): 拿最新push上来的点,与历史最新的3个点相减,得到3个差,再将3个差值分别除以减数,得到3个商值,只要有一个商值满足阈值则报警
  • 相关阅读:
    http和HTTPS的区别及SSL介绍
    cas系列(三)--HTTP和HTTPS、SSL
    cas系列(一)--cas单点登录基本原理
    修改cas登陆页面-服务器端
    rest例子
    RESTful 架构风格概述
    Java分布式应用技术架构介绍
    tomcat的server.xml详解
    Apache Shiro 快速入门教程,shiro 基础教程 (这篇文章非常好)
    fmt:formatDate标签的输出格式
  • 原文地址:https://www.cnblogs.com/hutianyao/p/11456827.html
Copyright © 2020-2023  润新知