您现在的位置是:物联网 >>正文
基于 Go 语言开发的监控系统
物联网758人已围观
简介1.介绍小米开源的监控系统 open-falcon 和滴滴开源的日志采集工具 falcon-log-agent 作为一组黄金搭档,被互联网公司广泛使用。本文介绍怎么使用这组黄金搭档监控业务系统的日志 ...
小米开源的基于监控系统 open-falcon 和滴滴开源的日志采集工具 falcon-log-agent 作为一组黄金搭档,被互联网公司广泛使用。开发控系
本文介绍怎么使用这组黄金搭档监控业务系统的基于日志 。
2.open-falconopen-falcon 使用 Golang 和 Python 开发,开发控系其中 Python 主要开发的基于是 Dashboard 。
限于篇幅,开发控系本文不准备介绍 open-falcon 的基于原理,仅介绍如何安装。开发控系
安装 open-falcon 之前,基于必须确保已成功安装 Redis 和 MySQL,开发控系因为 open-falcon 需要使用这两个存储组件。香港云服务器基于
同时,开发控系我们还需要确保已成功安装 Golang 和 Python 。基于
需要注意的开发控系是,我们还需要确保已设置 $GOPATH 和 $GOROOT 环境变量(也可以使用默认值)。基于
安装 open-falcon :
下载源码和初始化数据库
复制mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/falcon-plus.gitcd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/# 初始化数据库
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sqlmysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sqlmysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sqlmysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sqlmysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql1.2.3.4.5.6.7.8.9.10.编译
复制cd $GOPATH/src/github.com/open-falcon/falcon-plus/# make all modules
make all
# make specified module
make agent
# pack all modules
make pack1.2.3.4.5.6.7.8.9.10.在执行 make pack 之后,我们得到一个压缩包 open-falcon-vx.x.x.tar.gzmake pack 之后 ,我们得到一个压缩包 open-falcon-vx.x.x.tar.gz
如果我们想要修改每个模块的配置文件,在执行 make pack 之前,我们可以修改模块的 config/xxx.jsonmake pack 之前 ,我们可以修改模块的 config/xxx.json
需要注意的是高防服务器,模块的配置文件中 ,MySQL 的账号和密码 ,默认分别是 root 和空,如果我们的 MySQL 账号和密码与之不同,我们需要编辑模块的配置文件进行修改 。root 和空,如果我们的 MySQL 账号和密码与之不同,我们需要编辑模块的配置文件进行修改。免费模板
部署
我们可以将得到的压缩包解压缩到指定目录进行部署 ,例如:
复制make ~/open-falcon
tar -zxvf open-falcon-vx.x.x.tar.gz -C ~/open-falcon1.2.启动所有模块
复制cd ~/open-falcon
./open-falcon start
# 检查模块状态
./open-falcon check1.2.3.4.5.安装仪表盘
在安装 Dashboard 之前,我们需要先安装依赖项:
复制# Centos
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools"# Ubuntu
apt-get install -y python-virtualenv
apt-get install -y slapd ldap-utils
apt-get install -y libmysqld-dev
apt-get install -y build-essential
apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev1.2.3.4.5.6.7.8.9.10.11.12.13.安装 Dashboard:
复制cd ~/open-falcon
git clone https://github.com/open-falcon/dashboard.gitcd dashboard
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt1.2.3.4.5.需要注意的是,这里有一个 Bug,会导致无法在仪表盘注册账号(点击按钮无反应),需要将 falcon api 的端口号 18080 改为 8080。18080 改为 8080。
复制cd ~/open-falcon/dashboard
vim rrd/config.py# 端口 18080 改为 8080API_ADDR = os.environ.get("API_ADDR","http://81.70.201.193:8080/api/v1")1.2.3.4.在启动 Dashboard 之前,我们再检查一下 open-falcon 的 api 模块是否已启动:
复制cd ~/open-falcon
./open-falcon check1.2.启动 Dashboard :
复制$ cd ~/open-falcon/dashboard
$ ./control start1.2.在浏览器中 ,打开 http://127.0.0.1:8081。建站模板http://127.0.0.1:8081。
3.falcon-log-agentfalcon-log-agent 不同于 ELK ,它不是日志查看系统,而是日志计算系统。
它通过外挂式的日志采集方式,实时读取日志文件中的内容,实时计算,并将计算结果直接推送到 open-falcon 。
它有几个限定条件,分别是要求日志必须包含时间 ,不支持文件软链接 ,源码库日志时间必须有序 。
安装 falcon-log-agent:
构建
复制make -p $GOPATH/src/github.com/didi &&cd $_
git clone https://github.com/didi/falcon-log-agent.gitmake build1.2.3.修改配置文件
复制cd $GOPATH/src/github.com/didi/falcon-log-agent
cp cfg/dev.cfg cfg/cfg.json# 基础配置
cp cfg/strategy.dev.json cfg/strategy.json # 策略配置1.2.3.部署
复制cd $GOPATH/src/github.com/didi/falcon-log-agent
make pack
mkdir ~/open-falcon/falcon-log-agent
tar -zxvf falcon-log-agent.tar.gz -C ~/open-falcon/falcon-log-agent1.2.3.4.启动
复制cd ~/open-falcon/falcon-log-agent
./control start1.2.检查
http://ip:8003/health 健康检查http://ip:8003/strategt 查看生效策略策略配置示例:
本文以 open-falcon 的 agent 模块的日志为例,介绍怎么配置一个新策略。
复制[ { "id":10,# 多个策略,id 必须唯一
"name":"agent send data count", # 对应 open-falcon 中的 metric(监控项)
"file_path":"/root/open-falcon/agent/logs/agent.log",# 日志路径(支持动态路径)
"time_format":"yyyy/mm/dd HH:MM:SS",# 时间格式
"pattern":"Total=(\\d+)",# 匹配正则表达式
"exclude":"",# 排除正则表达式
"step":60,# 日志采集周期,单位秒
"tags":{ }, 对应 open-falcon 中的 tag
"func":"cnt",# 日志采集方式,cnt、avg、sum、max、min
"degree":6,# 精度
"comment":"",# 备注
"parse_succ":true }]1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.重启 falcon-log-agent,我们在 Dashboard 中的源码下载 Couters 列表中可以看到 agent send data count 。agent send data count 。
4.监控配置我们介绍完 open-falcon 和 falcon-log-agent 的安装和启动。
已实现自动采集日志并将计算数据上报到 open-falcon ,接下来,我们介绍针对日志数据怎么配置监控。
监控配置操作步骤 :
创建用户组 。创建模板。添加策略,其中 metric 对应 falcon-log-agent 策略配置文件中配置项的 name,max 是最大报警次数 ,P 是报警级别(<3:既发短信也发邮件 ,>=3:只发邮件),run 是策略生效时间(不填写代表全天生效),if 代表条件。告警条件支持函数如下 :告警条件支持函数如下:
all(#3) 最新 3 个点都满足阈值条件则报警。
max(#3) 最新 3 个点,最大值满足阈值条件则报警。
min(#3) 最新 3 个点,最小值满足阈值条件则报警。
sum(#3) 最新 3 个点,其和满足阈值条件则报警。
avg(#3) 最新 3 个点,其平均值满足阈值条件则报警。
diff(#3) 将最新 push 过来的点(被减数) ,与历史最新 3 个点(减数)相减,得到 3 个差 ,有一个差满足阈值条件则报警。
pdiff(#3) 将最新 push 过来的点(被减数),与历史最新 3 个点(减数)相减 ,得到 3 个差 ,再将 3 个差值分别除以减数 ,得到 3 个商值 ,有一个商值满足阈值条件则报警。
lookup(#2,3) 最新的 3 个点中有 2 个满足阈值条件则报警 。
配置报警接收用户组。5.总结本文我们介绍了基于 Go 语言开发的开源监控系统和日志采集工具的安装和使用方式。
建议读者朋友们动手操作一遍,需要注意的是,尽量严格按照本文的目录结构操作。
参考资料 :https://github.com/open-falcon/falcon-plus
https://github.com/open-falcon/dashboard
https://github.com/didi/falcon-log-agent
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“信息技术视野”。http://www.bziz.cn/html/775e899216.html
相关文章
持续威胁暴露面管理(CTEM)会颠覆网络安全传统吗?
物联网不管我们是否愿意接受,有一个残酷的现实必须要面对,网络安全形势正在不断恶化而非缓解,网络攻击的复杂性、多发性和危害性都在不断打破记录。在此情况下,我们应该反思:为什么之前所做的一切努力并没有显著改善当 ...
【物联网】
阅读更多数据中心的七个关键特征
物联网随着信息技术的不断演进,数据中心的可靠性、可扩展性、高效性、安全性、灵活性、管理性和可持续性成为业界探讨的焦点。下面让我们一同深入剖析这些关键特征,了解它们是如何影响数据中心的建设和运营,塑造着一个信 ...
【物联网】
阅读更多Long-Polling vs WebSockets,如何选择?
物联网Long-Polling长轮询)和 WebSockets 是客户端和服务器之间实时通信的两种常见方法,这篇文章,我们将探讨这两种技术的区别、各自的架构、优点、缺点以及适用的使用场景。一、什么是实时通信 ...
【物联网】
阅读更多
热门文章
最新文章
友情链接
- KB4509476更新了哪些内容
- 电脑计算器输入数字错误的问题(探讨计算器输入数字错误的原因和解决方法)
- 电脑吃鸡显示网络错误,如何解决?(探究网络错误对电脑吃鸡游戏的影响与解决方法)
- win10版本1903任务栏没有黑色吗
- 极云普汇云电脑致命错误的原因与解决方法(探究极云普汇云电脑的常见致命错误,并提供解决方案)
- 电脑报read错误的解决方法(遇到电脑报read错误如何应对,尝试这些方法解决问题)
- 新主机怎么装win10操作系统
- 开展少儿电脑美术培训的重要性(培养创造力和美感,提升孩子综合素质)
- 电脑账户密码错误的原因及解决方法(详解密码错误的几种情况与应对措施) b2b信息平台亿华云香港物理机网站建设源码库云服务器企业服务器