开源分布式监控系统 OWLv5.0.0 安装部署完整手册

OWL 是TalkingData公司推出的一款开源分布式监控系统 . 目前使用OWL监控了二十几台服务器,便捷很多 Go语言开发,部署维护简单

  • 分布式,支持多机房
  • 多维的数据模型,类opentsdb
  • 支持多种报警算法,支持多条件组合、时间范围、报警模板等
  • 灵活的插件机制,支持任意语言编写,支持传参,自动同步
  • 丰富的报警渠道,邮件、微信、短信、电话、自定义
  • 原始数据永久存储,支持发送到opentsdb、kairosdb、kafka
  • 自带web管理界面以及强大的自定义图表功能

OWL架构图

测试环境为:

腾讯云centos 7.2 64位。

具体操作步骤如下:

1.0 下载网盘资源

https://pan.baidu.com/s/1UTYOOB8YE8nng0guXOXkmg#list/path=%2Fowl

将网盘内容全部上传到

/usr/local/src/tools下。

方便统一管理

1.1 JDK 1.8 下载.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装:

rpm -ivh jdk-8u161-linux-x64.rpm

1.2. Kairosdb

kairosdb可以基于内存、cassandra、hbse等,演示建议使用内存存储,生产建议使用cassandra,安装部署请参考官方文档。

cassandra:http://cassandra.apache.org/doc/latest/getting_started/installing.html#installation-from-binary-tarball-files
Kairosdb: https://kairosdb.github.io/docs/build/html/GettingStarted.html#using-with-cassandra

Kairosdb:

rpm -ivh kairosdb-1.2.0-1.rpm

运行:

/etc/init.d/kairosdb start

验证是否:

#检查服务端口是否监听

netstat -nltp | grep 8080

2. MySQL

安装

cd 到mysql 5.7目录下

yum localinstall mysql*

运行:

service mysqld start

安装完成初始化数据库

查密码:

冒号后面都是

root@VM_60_230_centos tools# grep 'temporary password' /var/log/mysqld.log

2018-04-13T03:48:04.206334Z 1 Note A temporary password is generated for root@localhost: )sRs0gP/lW8R

mysql -uroot -p

#输入上文过滤出来的密码,冒号后面的都是

首次修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL2OWL!';

mysql> CREATE DATABASE `owl` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
#将下面的password替换成自己设置的密码
#如果cfc、api、controller都在本机,可以只授权localhost
#如果部署在其他机器请设置成对应机器的IP地址
mysql> GRANT ALL ON owl.* TO 'root'@'localhost' IDENTIFIED BY 'password';  
mysql> FLUSH PRIVILEGES;
mysql> use owl;
mysql> source /usr/local/src/tools/owl-5.0.0rpm/owl.sql;//这里是sql脚本文件路径。
mysql> INSERT INTO `user` (username, password, role, status) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 1, 1);
mysql> exit;

3. cfc

rpm -ivh owl-cfc-5.0.0-1.el7.centos.x86_64.rpm

vim /usr/local/owl-cfc/conf/cfc.conf
#设置数据库访问地址和账号密码
mysql_addr=127.0.0.1:3306
mysql_user=root
mysql_dbname=owl
mysql_password= 

#启动服务
/etc/init.d/owl-cfc start

#检查服务状态
netstat -nltp | grep 10020  

####4. repeater

#安装
rpm -ivh owl-repeater-5.0.0-1.el7.centos.x86_64.rpm

#修改配置文件
vim /usr/local/owl-repeater/conf/repeater.conf
backend=kairosdb
opentsdb_addr=127.0.0.1:4242  #修改为kairosdb安装的主机地址

#启动服务
/etc/init.d/owl-repeater start 

#检查服务
netstat -nltp | grep repeater

5. api

#安装
rpm -ivh owl-api-5.0.0-1.el7.centos.x86_64.rpm

#创建证书目录
mkdir -p /usr/local/owl-api/certs  

#生成rsa密钥对,不要设置密码,直接回车即可
a、生成私钥
openssl genrsa -out /usr/local/owl-api/certs/owl-api.key 1024

b、将原始私钥转换为pkcs8格式(复制结果替换owl-api.key)
openssl pkcs8 -topk8 -inform PEM -in /usr/local/owl-api/certs/owl-api.key -outform PEM -nocrypt

c、根据私钥生成公钥
openssl rsa -in /usr/local/owl-api/certs/owl-api.key -pubout -out /usr/local/owl-api/certs/owl-api.key.pub

#编辑配置文件
vim /usr/local/owl-api/conf/api.conf

public_key=./certs/owl-api.key.pub
private_key =./certs/owl-api.key
#修改为controller机器的IP地址
alarm_health_check_url=http://127.0.0.1:10051  

#配置数据库访问用户密码
mysql_addr=127.0.0.1:3306
mysql_user=root
mysql_dbname=owl
mysql_password=  
timeseirs_storage=kairosdb

#设置kairosdb安装地址和端口
kairosdb_addr=127.0.0.1:8080  

#保存退出


#启动服务
/etc/init.d/owl-api start 

#检查服务端口是否监听
netstat -nltp | grep api

6. controller

#安装
rpm -ivh owl-controller-5.0.0-1.el7.centos.x86_64.rpm 

#修改配置文件
vim /usr/local/owl-controller/conf/controller.conf 
#配置数据库地址和用户密码
mysql_addr=127.0.0.1:3306
mysql_user=root
mysql_dbname=owl
mysql_password=

#启动服务
/etc/init.d/owl-controller start

#检查服务
netstat -nltp | grep controller

7. inspector

#安装
rpm -ivh owl-inspector-5.0.0-1.el7.centos.x86_64.rpm 

#修改配置文件
vim /usr/local/owl-inspector/conf/inspector.conf 
#配置controller地址
controller_addr=127.0.0.1:10050

#配置tsdb类型和地址
backend_tsdb=kairosdb
tsdb_addr=127.0.0.1:8080

#启动服务
/etc/init.d/owl-inspector start

#检查服务,inspector没有启动端口
ps -ef | grep inspector

8. client

#安装
rpm -ivh owl-client-5.0.0-1.el7.centos.x86_64.rpm

#修改配置文件
vim /usr/local/owl-client/conf/client.conf 
#配置cfc和repeater的地址
cfc_addr=127.0.0.1:10020
repeater_addr=127.0.0.1:10040

#启动服务
/etc/init.d/owl-client start

#检查服务,inspector没有启动端口 
ps -ef | grep client

#查看日志是否有错误输出
tail /usr/local/owl-client/logs/client.log  

9. frontend

#frontend 为静态资源文件,需要安装web服务器,这里以nginx为例子
#安装nginx
yum install -y nginx

#编辑配置文件
vim /etc/nginx/nginx.conf
server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;  
        #此处为修改后的root路径,其他保持不变
        root         /usr/share/nginx/html/owl-frontend;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / { 
        }   

        error_page 404 /404.html;
            location = /40x.html {
        }   

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }   
    } 

#解压静态文件
tar zxvf owl-frontend-5.0.0.tar.gz -C /usr/share/nginx/html/

#编辑配置
vim /usr/share/nginx/html/owl-frontend/index.html

#修改proUrl为api的安装地址
proUrl:"http://127.0.0.1:10060"   此处IP为真实IP  我用的腾讯云 此处就把IP替换成真实的。

#启动nginx
nginx 

#打开浏览器,检查页面访问,默认用户名密码为 admin/admin
#登录以后进入管理页面即可创建产品线并分配主机和人员

至此部署环节完成。

1. 登录WEB端

URL:http://真实IP

admin admin

最开始设置产品所以需要手工设置一下

操作流程如下 :

2.添加产品线,并绑定主机和人员

点击【进入管理员页面】-》【创建产品线】=》【添加主机】 & 并添加相关人员包含用户里面的【添加用户】

3.添加企业微信脚本

点击【进入管理员页面】-》左侧菜单【脚本列表】=》【添加脚本】

我这里测试企业微信发送

3.1 登录企业版微信找到几个关键的值。

成员ID:就是我们平台上的微信号(切忌否则发不出去)。

CORP_ID: 这是公司id,在https://work.weixin.qq.com/wework_admin/frame#profile 最下面有wx开头的

下面两个是需要在 https://work.weixin.qq.com/wework_admin/frame#apps 新建一个自建应用然后点击进去可以看到

SECRET

AGENT_ID

获取到以后修改默认脚本里面的数据

controller\scripts\notifications\send_wechat.py

CORP_ID = ""
SECRET = ""
AGENT_ID = 0

替换保存即可。

4 查看产品线

点击右上角【个人中心】-》跳转到主画面点击刚刚添加的产品线名称

5 设备管理

点击【设备管理】-》【主机组列表】-》【添加主机组】,并【添加主机】

6 人员设置

点击【人员设置】-》【用户组列表】-》【添加用户组】,并【添加用户】

7 预警告警

点击【预警告警】-》【策略列表】-》【创建策略】

7.1 编辑预警条件

填写策略名称,选择metirc,计算规则

7.2 选择预警设备

选择主机组 ,就是我们前面添加的。在此处也可以排除不需要监控的主机

7.3 指定告警对象

选择告警人员,这个地方就是选择前面添加的人员组。(注意人员组里一定要有人,另外个人中心编辑自己的微信号就是前面提到的企业微信里的成员ID)

8 等待触发监控然后企业微信可以收到了

至此简单操作环节完成,我们也可以添加一些看板,来查看里面的数据

备注一些命令:

查找日志:

find / -name *.logs 命令

重启Nginx服务

方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

编译windows

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build owl/controller

root@VM_60_230_centos ~# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build owl/client

正常编译:

godep go install owl/agent

编译插件:

godep go install

install在$gopath/bin下啊

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

整合ThinkPHP功能系列之微信网页OAuth2.0授权登录

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应...

14710
来自专栏咸鱼不闲

jsp与数据库的面对面交流

前言:要完成数据的交互的一种方式就是jsp+jsp+数据库。下面就来演示一个用jsp展示数据库内的图片的小例子。

12330
来自专栏快乐八哥

PHP+MySQL代码部署在Linux(Ubuntu)上注意事项

最近帮同学做一个网站,同学买的是阿里云服务器,Linux发行版是Ubuntu12.04。我在本地把程序写好,都调试好了。然后他让我自己发布和部署。之前在大学里上...

474100
来自专栏同步博客

搭建MySQL高可用负载均衡集群

  使用MySQL时随着时间的增长,用户量以及数据量的逐渐增加,访问量更是剧增,最终将会使MySQL达到某个瓶颈,那么MySQL的性能将会大大降低。这一结果也不...

44960
来自专栏Rainbond开源「容器云平台」

关于K8s集群器日志收集的总结

29230
来自专栏我是攻城师

ElasticSearch入门介绍之会当凌绝顶(一)

37750
来自专栏后端云

本地存储条件下的热迁移

每个读者都可能会问这样一个问题,虚拟机用的好好的,为啥要迁移呀?也就是迁移的价值和目的在哪里。在数据中心的日常运维中,常常要处理下面几种场景和需求,了解了这些需...

37540
来自专栏java一日一条

数据库的读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务...

11830
来自专栏java一日一条

数据库的读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务...

18730
来自专栏Linux运维学习之路

zabbix自动发现与自动注册及SNMP监控

自动发现与自动注册 自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户...

95280

扫码关注云+社区

领取腾讯云代金券