Skip to content
This repository was archived by the owner on Nov 5, 2024. It is now read-only.

Commit 641bdf6

Browse files
committed
commit
1 parent a193da6 commit 641bdf6

File tree

196 files changed

+3262
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+3262
-0
lines changed

Index.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# 帮助文档
2+
* [简介](main/Summary.md)
3+
* [安装](main/Install.md)
4+
* [升级](main/Upgrade.md)
5+
* [常用命令](main/Commands.md)
6+
* [登录](main/Login.md)
7+
* [常见问题](main/FAQ.md)
8+
* 通用设置
9+
* [管理界面](settings/Service.md)
10+
* [个人资料](settings/Profile.md)
11+
* [登录设置](settings/Login.md)
12+
* [MongoDB](settings/MongoDB.md)
13+
* 代理
14+
* [原理](proxy/Architect.md)
15+
* [添加代理](proxy/CreateProxy.md)
16+
* [域名](proxy/Domain.md)
17+
* [绑定网络地址](proxy/Listen.md)
18+
* [HTTPS](proxy/HTTPS.md)
19+
* [后端服务器](proxy/Backend.md)
20+
* [路径规则](proxy/Location.md)
21+
* [自定义Header](proxy/Header.md)
22+
* [Fastcgi](proxy/Fastcgi.md)
23+
* [重写规则](proxy/Rewrite.md)
24+
* [匹配条件](proxy/RequestCond.md)
25+
* [Websocket](proxy/Websocket.md)
26+
* Gzip压缩
27+
* 访问日志
28+
* 统计
29+
* [缓存](cache/Index.md)
30+
* [清除缓存指令](cache/PurgeAPI.md)
31+
* [WAF](waf/Index.md)
32+
* [使用WAF](waf/Usage.md)
33+
* [定制WAF](waf/Config.md)
34+
* [参数](waf/Checkpoints.md)
35+
* [操作符](waf/Operators.md)
36+
* [正则表达式](waf/Regexp.md)
37+
* [内置变量](proxy/Variables.md)
38+
* [前端代理](proxy/Frontend.md)
39+
* [Nginx](proxy/Nginx.md)
40+
<!-- * Apache -->
41+
<!-- * Varnish -->
42+
<!-- * Squid -->
43+
<!-- * HAProxy -->
44+
* [性能指南](proxy/Performance.md)
45+
* 监控
46+
* [Agent概念](agents/Index.md)
47+
* [安装Agent](agents/Install.md)
48+
* [应用(App)](agents/App.md)
49+
<!--* 任务-->
50+
* [监控项](agents/Item.md)
51+
* [阈值](agents/Threshold.md)
52+
* [监控实例-监控进程](agents/examples/Mongo.md)
53+
* [监控实例-监控Nginx](agents/examples/Nginx.md)
54+
* 通知媒介
55+
* [钉钉群机器人](notices/DingTalk.md)
56+
* [企业微信](notices/QyWeixin.md)
57+
* [阿里云短信](notices/AliyunSms.md)
58+
* [TeaOS云短信](notices/TeaSms.md)
59+
* 图表API
60+
* 通用知识
61+
* 图表
62+
* HTML
63+
* URL
64+
* 线图
65+
* 饼图
66+
* 仪表盘
67+
* 堆叠柱状图
68+
* 表格
69+
* 数据
70+
* 代理统计
71+
* 代理访问日志
72+
* 主机监控项
73+
* Javascript辅助函数
74+
* 数组
75+
* 高级
76+
* [外部监控API](advanced/APIMonitor.md)
77+
* [主机监控项API](advanced/APIMonitorAgentItem.md)
78+
* [集群](advanced/cluster/Index.md)
79+
* 开发者
80+
* [从源码启动或编译](main/Build.md)
81+
* 插件
82+
* [写一个插件](plugins/Write.md)
83+
* [安装插件](plugins/Install.md)
84+
* [正则表达式](regexp/Regexp.md)
85+
* [TeaWeb+](plus/Index.md)
86+
* [捐助作者](donate/Index.md)

advanced/APIMonitor.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# 外部监控API
2+
如果你想在外部监控TeaWeb,可以通过API实现,API地址为:
3+
~~~
4+
http://TeaWeb访问地址/api/monitor?TeaKey=登录用户密钥
5+
~~~
6+
把上面的"TeaWeb访问地址"换成你的TeaWeb实际访问地址,当然也有可能是`https://TeaWeb访问地址`
7+
8+
然后在"设置">"登录设置"中可以查看你的用户密钥:
9+
![api_monitor1.png](api_monitor1.png)
10+
如果还没有生成KEY,点击生成即可。
11+
12+
把密钥填到上面最开始的URL中,即可使用GET方法访问,组合后的网址类似于:
13+
~~~
14+
http://127.0.0.1:7777/api/monitor?TeaKey=z8O4MuXixbKH6aiVyZigYTxxovRblR3u
15+
~~~
16+
17+
请求结果是一个JSON,类似于:
18+
~~~javascript
19+
{
20+
"arch": "amd64",
21+
"heap": 12685664,
22+
"memory": 74840312,
23+
"mongo": true,
24+
"os": "darwin",
25+
"routines": 98,
26+
"version": "0.0.8"
27+
}
28+
~~~
29+
30+
其中:
31+
* `arch` - CPU架构
32+
* `heap` - Heap值(字节)
33+
* `memory` - 总内存值(字节)
34+
* `mongo` - MongoDB连接是否正常
35+
* `os` - 操作系统代号
36+
* `routines` - go routine数量
37+
* `version` - TeaWeb版本

advanced/APIMonitorAgentItem.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# 主机监控项API
2+
从v0.0.9开始,可以通过API获取TeaWeb中App某个监控项的最新数值记录,API监控URL为:
3+
~~~
4+
http://TeaWeb访问地址/api/monitor/主机ID/item/监控项ID?TeaKey=登录用户密钥
5+
~~~
6+
可以通过`GET``POST`请求此URL,其中:
7+
* "TeaWeb访问地址"换成你的TeaWeb实际访问地址,当然如果你开启了HTTPS,也可以是`https://TeaWeb访问地址`
8+
* `登录用户密钥` - 可以在"设置">"登录设置"中可以查看,[api_monitor1.png](api_monitor1.png)
9+
* `主机ID` - 可以在主机"设置"中查看
10+
* `监控项ID` - 可以在监控项详情中查看
11+
12+
为了用户方便,我们在监控项详情中加入了`外部监控API`
13+
![api_monitor_agent_item.png](api_monitor_agent_item.png)
14+
15+
## 数据格式
16+
获取的数据格式同数值记录一致。

advanced/api_monitor1.png

176 KB
Loading

advanced/api_monitor_agent_item.png

373 KB
Loading

advanced/cluster/Index.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# 集群
2+
即将上线。。。

agents/App.md

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# 应用(App)
2+
在TeaWeb中,App是一个很灵活的概念,一个软件、一个服务、一个脚本都可以成为App,只要你想把一组任务和信息放在一起,就可以创建一个App,把这些信息放到这个App中;比如我们可以把`MySQL`作为一个App,然后把MySQL启动脚本、定时备份脚本和监控脚本都放到这个App中,在TeaWeb中都可以轻松设置。
3+
4+
~~~
5+
|----------------------------------------------------|
6+
| 图表 | 任务日志 |
7+
|----------------------------------------------------|
8+
| 数值 | 定时任务 | 启动任务 | 手动任务 | App2, ....
9+
|----------------------------------------------------|
10+
| 监控项 | 任务 |
11+
|----------------------------------------------------|
12+
| App1 |
13+
|----------------------------------------------------|
14+
~~~
15+
16+
* `任务` - 一个App可以设置多个任务,根据任务的启动方式有以下三种类型:
17+
* `定时任务` - 固定在某个时刻运行的任务成为定时任务,可以设置在某个定点时间(比如2019年10月10日零点)执行;也可以循环执行,比如每小时运行一次、每分钟运行一次等;
18+
* `启动任务` - 随Agent启动而执行的任务,这些任务在Agent启动的时候会执行一次;如果你多次重启Agent,则会执行多次,所以有必要做好有些服务不多次重复执行的判断;
19+
* `手动任务` - 可以手动执行的任务,可以通过TeaWeb Master手动执行或者在Agent主机上通过`bin/teaweb-agent run [TASK ID]`来执行这个任务;
20+
* `任务日志` - Agent在执行任务的过程中产生的输出会上报到Master主机,从而可以通过TeaWeb查看这些日志;
21+
* `监控项` - 把一些App需要监控的指标叫做监控项,比如一个系统的CPU、`MySQL`的进程数和连接数等都可以做成监控项;
22+
* `数值记录` - 每个监控项产生的数据都会上报到Master主机,可以在`数值记录`中查看,要使用数值记录,TeaWeb需要能正常连接MongoDB数据库;
23+
* `图表` - 依据`数值记录`中的数据,可以添加一些图表,比如线图、饼图等。

agents/Index.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Agent主机
2+
每个Agent主机为一个独立的服务器,用来向TeaWeb上报本服务器信息,以便于TeaWeb可以展示这些独立服务器的信息;运维人员也可以在TeaWeb上配置Agent相关信息,TeaWeb会自动同步到Agent。
3+
4+
## 结构
5+
以下是一个简单的结构示例:
6+
~~~
7+
|-------------------| |------------------------|
8+
| | <--> | Agent1(192.168.1.100) |
9+
| | | |
10+
| | | App1, App2, ... |
11+
| | |------------------------|
12+
| |
13+
| | |------------------------|
14+
| Master(TeaWeb) | <--> | Agent2(192.168.1.101) |
15+
| (192.168.1.2) | | |
16+
| | | App1, App2, ... |
17+
| | |------------------------|
18+
| |
19+
| | |------------------------|
20+
| | <--> | ... |
21+
|-------------------| |------------------------|
22+
~~~
23+
24+
其中:
25+
* `Master` - 主控制服务器,`TeaWeb`部署在此服务器上,用来接收`Agent`发送的数据、向`Agent`发送在`TeaWeb`平台上的配置;
26+
* `Agent` - Agent主机,`TeaWeb Agent`部署在此类服务器上,接收`Master`发送的配置信息、向`Master`发送本机产生的数据。
27+
28+
一个`Master`可以添加多个`Agent`,实际部署时要考虑主服务器的性能,来决定最多添加多少个`Agent`
29+
30+
## 本地主机
31+
`TeaWeb`启动时,会启动一个和`TeaWeb`同服务器的本地`Agent`,行为和一般的`Agent`一致。
32+
33+
## `Agent`主机信息
34+
* 基本信息
35+
* `主机名` - 容易识别主机用途的名字
36+
* `主机地址` - 主机的IP地址
37+
* `ID` - 主机的ID,通常是系统随机生成
38+
* `密钥` - 连接Master所用的密钥
39+
* `允许所有的IP` - 是否限制主机程序必须在某个IP上运行,默认是不限制的
40+
* `App(应用)` - 一个Agent上可以设置多个App,具体请看[App(应用)](App.md)
41+
42+
## 安装Agent
43+
请在这里查看[Agent安装文档](Install.md)

agents/Install.md

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# 安装Agent
2+
## 步骤1:添加一个Agent主机
3+
点击下图中的"添加新主机":
4+
![install1.png](install1.png)
5+
6+
在出现的表单中填入主机名和主机地址,这两项都没有严格的要求,只要能表明主机的用途和主机的地址就好:
7+
![install2.png](install2.png)
8+
9+
点击上图中的"保存",即可保存成功。
10+
11+
## 步骤2:查看部署的配置
12+
点击刚添加的主机对应的"设置"按钮,会出现以下界面:
13+
![install3.png](install3.png)
14+
15+
可以在这个界面上看到主机的ID(`id`)和密钥(`key`)。
16+
17+
## 步骤3:下载并部署Agent
18+
[http://teaos.cn/download](http://teaos.cn/download) 下载对应平台的Agent版本,解压后用编辑器打开`configs/agent.conf`,然后修改里面的内容:
19+
* `master` - 可以访问到Master的地址,需要带有`http://`或者`https://`;如果有必要,需要设置`iptables``firewall`
20+
* `id` - 将此值修改为步骤2看到的ID;
21+
* `key` - 将此值修改为步骤2看到的密钥。
22+
23+
### 测试
24+
使用以下脚本测试连接:
25+
~~~bash
26+
bin/teaweb-agent test
27+
~~~
28+
29+
### 启动
30+
如果测试后同Master的连接没有错误,则可以启动Agent:
31+
~~~bash
32+
bin/teaweb-agent start
33+
~~~
34+
35+
启动后,可以在`logs/run.log`中看运行的日志。
36+
37+
## 更多命令
38+
除了测试和启动命令外,还提供了以下几个命令:
39+
~~~bash
40+
# 查看帮助
41+
bin/teaweb-agent help
42+
43+
# 测试和主服务器连接
44+
bin/teaweb-agent test
45+
46+
# 在前端运行,阻塞当前命令窗口
47+
bin/teaweb-agent
48+
49+
# 启动
50+
bin/teaweb-agent start
51+
52+
# 停止
53+
bin/teaweb-agent stop
54+
55+
# 重启
56+
bin/teaweb-agent restart
57+
58+
# 手动执行任务,123456是任务ID示例
59+
bin/teaweb-agent run 123456
60+
61+
# 手动执行监控项数据源,123456是监控项ID示例
62+
bin/teaweb-agent run 123456
63+
64+
# 查看Agent版本(从v0.1.1开始支持):
65+
bin/teaweb-agent version
66+
~~~
67+
68+
## Windows系统
69+
在Windows系统上,需要将相关命令改成:
70+
~~~bash
71+
bin\teaweb-agent.exe xxx
72+
~~~
73+
74+
## 开机启动
75+
在Linux上可以设置开机启动服务,具体 [看这里](http://teaos.cn/doc/main/Install.md#%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC)

agents/Item.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# 监控项
2+
把一些[App](App.md)需要监控的指标叫做监控项,比如一个系统的CPU、`MySQL`的进程数和连接数等都可以做成监控项。我们可以利用这些监控项来监控某个App的运行状态。
3+
4+
## 添加监控项
5+
以下以监控系统的负载为例,来演示如果添加一个监控项,这个示例可以运行在Linux、Unix和MacOS上。大体流程如下:
6+
1. 创建一个App叫"系统监控";
7+
2. 添加一个监控项叫"负载",这个监控项通过一个脚本来获取系统当前的负载;
8+
3. 查看收集到的监控项的数值记录;
9+
4. 添加一个阈值来决定是否自动发送提醒通知;
10+
5. 添加一个图表来让数据更加直观。
11+
12+
## 1.创建App
13+
打开要添加App的主机,比如"本地",选择这个就是TeaWeb安装的机器,比较方便我们做测试。点击到Apps选项卡:
14+
![item1.png](item1.png)
15+
16+
点击上图中的"添加App":
17+
![item2.png](item2.png)
18+
19+
点击保存,跳转到App列表:
20+
![item3.png](item3.png)
21+
22+
可以看到我们添加的应用"系统监控",点击右侧的连接"详情"进入App详情:
23+
![item4.png](item4.png)
24+
25+
## 2.创建监控项
26+
点击上图中的"监控"进入监控项列表,可以看到目前还是空的:
27+
![item5.png](item5.png)
28+
29+
点击上图中的"添加",进入添加监控项页面:
30+
![item6.png](item6.png)
31+
32+
在脚本代码框中(上图中的1)输入以下的代码:
33+
~~~bash
34+
#!/usr/bin/env bash
35+
36+
uptime=`uptime`
37+
loads=${uptime#*: }
38+
for i in ${loads}
39+
do
40+
echo ${i%,*}
41+
done
42+
~~~
43+
这段代码的意思是从`uptime`命令中分析负载数据,每行一条记录。
44+
45+
点开"更多选项",将"数据格式"项修改为"多行数据"(上图中的2)。
46+
47+
修改好后,点击"保存",跳转到监控项列表:
48+
![item7.png](item7.png)
49+
50+
## 3.查看数值记录
51+
在监控项列表页等待30秒钟以后,监控项列表页就会显示通过脚本采集到的数据:
52+
![item8.png](item8.png)
53+
54+
点击上图中的数值部分就会跳转到数值记录页:
55+
![item9.png](item9.png)
56+
57+
## 4.添加阈值
58+
点击监控项列表的详情进入监控项详情:
59+
![item10.png](item10.png)
60+
61+
点击上图中的"修改",进入修改界面:
62+
![item11.png](item11.png)
63+
64+
点击上图中的"更多选项",可以看到阈值设置:
65+
![item12.png](item12.png)
66+
67+
点击上图红线框中的加号按钮可以添加一个新的阈值,这里因为数值里有三条记录,我们只需要判断第一条,所以加了一个`${0}`
68+
![item13.png](item13.png)
69+
上图中阈值相关的几个概念:
70+
* 参数:使用${N}表示第N行数据,从0行开始,比如:${0}, ${1};使用${NAME}来获取KEY-VALUE形式的数据,比如${name}。支持加(+)减(-)乘(*)除(/)取余(%)运算符。
71+
* 运算符:可以使用正则表达式匹配、大于、小于之类的,运算符是用来判断参数值和对比值之间的关系,如果满足了这个关系此阈值才会提醒
72+
* 提醒类型:分为信息、警告、错误、成功四种,一般只会关注警告和错误
73+
* 通知消息:是此阈值达到条件时,系统发送的通知消息,v0.0.8及以后可以设置通知邮件、脚本和Webhook通知
74+
75+
几个阈值相关的内容填写完成后,点击保存即可保存成功,并返回到监控项详情,展示已经设置好的阈值:
76+
![item14.png](item14.png)
77+
78+
## 5.添加图表
79+
上面的步骤中我们演示了通过创建监控项可以获得一组数值记录,这些数值记录可以通过图表来展示。
80+
81+
在监控项详情中,点击"图表"选项卡:
82+
![item15.png](item15.png)
83+
84+
点击上图中的"添加"按钮,进入到添加图表界面:
85+
![item16.png](item16.png)
86+
87+
上图中我们把名称写为"1分钟负载",数据项1的值为"${0}"不变,表示取得数值记录中的第一个数据,其他的都不用填,点击底部的"保存"按钮,即可创建完成:
88+
![item17.png](item17.png)
89+
90+
当然在这个界面中的"更多选项"中可以选择图表的宽度是1列,还是2列,默认是1列。
91+
92+
日常维护过程中就可以查看这个图表内容,也可以继续添加更多的图表,流程一样,只不过可以选择不同的图表类型、数据项。
93+
94+
### 将图表添加到看板
95+
可以在看板中点击"添加图表",即可看到刚才添加的图表:
96+
![item18.png](item18.png)
97+
98+
点击上图中的"添加到看板"即可把这个图表添加到看板:
99+
![item18.png](item19.png)

0 commit comments

Comments
 (0)