监控open-falcon

OpenFalcon是一款企业级、高可用、可扩展的开源监控解决方案。

open-falcon architecture

每台服务器,都有安装falcon-agent,falcon-agent是一个golang开发的daemon程序,用于自发现的采集单机的各种数据和指标,这些指标包括不限于以下几个方面,共计200多项指标。

  • CPU相关
  • 磁盘相关
  • IO
  • Load
  • 内存相关
  • 网络相关
  • 端口存活、进程存活
  • ntp offset(插件)
  • 某个进程资源消耗(插件)
  • netstat、ss 等相关统计项采集
  • 机器内核配置参数

只要安装了falcon-agent的机器,就会自动开始采集各项指标,主动上报,不需要用户在server做任何配置(这和zabbix有很大的不同),这样做的好处,就是用户维护方便,覆盖率高。当然这样做也会server端造成较大的压力,不过open-falcon的服务端组件单机性能足够高,同时都可以水平扩展,所以自动多采集足够多的数据,反而是一件好事情,对于SRE和DEV来讲,事后追查问题,不再是难题。

另外,falcon-agent提供了一个proxy-gateway,用户可以方便的通过http接口,push数据到本机的gateway,gateway会帮忙高效率的转发到server端。

1. 环境准备

1.1.1. 安装redis

yum install -y redis

1.1.2. 安装mysql

生产推介二进制安装mysql

yum  install  -y  epel-release
yum install mariadb-server.x86_64  -y
systemctl start mariadb

注意,请确保redis和MySQL已启动。

1.1.3. 初始化MySQL表结构

cd /tmp/ && git clone http://github.com/open-falcon/falcon-plus.git 
cd /tmp/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
rm -rf /tmp/falcon-plus/

1.1.4.下载编译好的包

wget http://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz

2. 后端安装

mkdir /opt/workspace
export FALCON_HOME=/opt/workspace/
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE
tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE

修改数据库账号密码

real_user:real_password  对应你自己的mysql账号密码

cd $WORKSPACE
grep -Ilr 3306  ./  xargs -n1 -- sed -i 's/root:/real_user:real_password/g'

启动

cd $WORKSPACE
./open-falcon start

# 检查所有模块的启动状况
./open-falcon check

3.前端安装

cd $WORKSPACE
git clone http://github.com/open-falcon/dashboard.git
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools"


cd $WORKSPACE/dashboard/
virtualenv ./env

./env/bin/pip install -r pip_requirements.txt -i http://pypi.douban.com/simple

配置文件修改

dashboard的配置文件为: 'rrd/config.py',请根据实际情况修改

## API_ADDR 表示后端api组件的地址
API_ADDR = "http://127.0.0.1:8080/api/v1" 

## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为""
## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为""

启动

bash control start

4.agent安装

agent需要安装到要监控的客户端

拷贝$WORKSPACE下的agent 目录到要监控的主机,修改配置文件

{
    "debug": true,  # 控制一些debug信息的输出,生产环境通常设置为false
    "hostname": "", # agent采集了数据发给transfer,endpoint就设置为了hostname,默认通过`hostname`获取,如果配置中配置了hostname,就用配置中的
    "ip": "", # agent与hbs心跳的时候会把自己的ip地址发给hbs,agent会自动探测本机ip,如果不想让agent自动探测,可以手工修改该配置
    "plugin": {
        "enabled": false, # 默认不开启插件机制
        "dir": "./plugin",  # 把放置插件脚本的git repo clone到这个目录
        "git": "http://github.com/open-falcon/plugin.git", # 放置插件脚本的git repo地址
        "logs": "./logs" # 插件执行的log,如果插件执行有问题,可以去这个目录看log
    },
    "heartbeat": {
        "enabled": true,  # 此处enabled要设置为true
        "addr": "127.0.0.1:6030", # hbs的地址,端口是hbs的rpc端口
        "interval": 60, # 心跳周期,单位是秒
        "timeout": 1000 # 连接hbs的超时时间,单位是毫秒
    },
    "transfer": {
        "enabled": true, 
        "addrs": [
            "127.0.0.1:18433"
        ],  # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
        "interval": 60, # 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
        "timeout": 1000 # 连接transfer的超时时间,单位是毫秒
    },
    "http": {
        "enabled": true,  # 是否要监听http端口
        "listen": ":1988",
        "backdoor": false
    },
    "collector": {
        "ifacePrefix": ["eth", "em"], # 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息
        "mountPoint": []
    },
    "default_tags": {
    },
    "ignore": {  # 默认采集了200多个metric,可以通过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
    }
}

启动agent

./open-falcon start agent  启动进程
./open-falcon stop agent  停止进程
./open-falcon monitor agent  查看日志

5.访问Dashboard

http://IP:8081   IP为安装dashboard的地址

6报警接口

邮件接口

wget http://dl.cactifans.com/open-falcon/falcon-mail-provider.tar.gz  
mkdir /opt/workspace/open-falcon/falcon-mail-provider  
tar xvf falcon-mail-provider.tar.gz -C /opt/workspace/open-falcon/falcon-mail-provider/

修改对应的配置文件

{
 "debug": true,
 "http": {
 "listen": "0.0.0.0:4000",    #监听地址  对应alarm/config/cfg.json中配置的邮件监听地址端口

 "token": ""
 },
 "smtp": {
 "addr": "mail.www.jcwit.com:25",   #邮件服务器地址
 "username": "falcon@www.jcwit.com",  #账户
 "password": "123456",              #密码
 "from": "falcon@www.jcwit.com",      #发件人
 "tls":false,
 "anonymous":false,
 "skipVerify":true
 }
}
./control start  启动

微信报警

git clone http://www.github.com/yanjunhui/chat.git

修改对应配置文件config.conf 

#http 服务端口
[http]
#默认为0.0.0.0, 可根据需要修改成自己的IP或者想使用本地地址修改为: 127.0.0.1 

#对应alarm/config/cfg.json中配置的微信监听地址端口
address = 0.0.0.0
port = 4567

#微信接口信息,需要注册企业号 添加应用后即可获取
[weixin]
CorpID = ww6424d33203e90e20    
AgentId = 1000002
Secret = FoST_8RQSTjZwH_CN3aQW6UKksjCSI9mizFqD7HKhrw
  1. 打开目录 cd chat
  2. 启动 ./control.sh start
  3. 停止 ./control.sh stop
  4. 重启 ./control.sh restart
  5. 状态 ./control.sh status

常用监控报警指标,具体请参考地址


监控open-falcon
http://www.jcwit.com/article/154/
作者
Carlos
发布于
2019年5月22日
许可协议