️ 进一步提供选项降低 agent 占用

This commit is contained in:
naiba 2021-10-10 00:03:02 +08:00
parent 7422de1269
commit eea5bafeaa
3 changed files with 26 additions and 21 deletions

View File

@ -14,9 +14,11 @@
\>> [我们的用户](https://www.google.com/search?q="powered+by+哪吒监控"&filter=0) (Google)
| 默认主题 | DayNight [@JackieSung](https://github.com/JackieSung4ev) | hotaru |
| ----------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------- |
| ![默认主题](resource/template/theme-default/screenshot.png) | ![daynight](resource/template/theme-daynight/screenshot.png) | <img src="resource/template/theme-hotaru/screenshot.png" width="1600px" /> |
| 默认主题 | DayNight [@JackieSung](https://github.com/JackieSung4ev) | hotaru |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------- |
| ![默认主题](resource/template/theme-default/screenshot.png) | ![daynight](resource/template/theme-daynight/screenshot.png) | <img src="resource/template/theme-hotaru/screenshot.png" width="2000px" /> |
| **默认主题魔改 [教程](https://ii.do/43.html)** | | |
| ![默认主题魔改](https://cdn.jsdelivr.net/gh/idarku/img@main/me/1631120192341.webp) | | |
## 安装脚本
@ -40,6 +42,7 @@ _\* 使用 WatchTower 可以自动更新面板Windows 终端可以使用 nssm
通过执行 `./nezha-agent --help` 查看支持的参数,如果你使用一键脚本,可以编辑 `/etc/systemd/system/nezha-agent.service`,在 `ExecStart=` 这一行的末尾加上
- `--report-delay` 系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4
- `--skip-conn` 不监控连接数,机场/连接密集型机器推荐设置,不然比较占 CPU([shirou/gopsutil/issues#220](https://github.com/shirou/gopsutil/issues/220))
- `--skip-procs` 不监控进程数,也可以降低 agent 占用
- `--disable-auto-update` 禁止 Agent 自动更新
@ -161,7 +164,7 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
</style>
```
- DayNight 主题更改进度条颜色示例(来自 [@hyt-allen-xu](https://github.com/hyt-allen-xu)
- DayNight 主题更改进度条颜色、修改页脚示例(来自 [@hyt-allen-xu](https://github.com/hyt-allen-xu)
```
<style>
@ -169,9 +172,16 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
background-color: #00a7d0 !important;
}
</style>
<script>
window.onload = function(){
var footer=document.querySelector("div.footer-container")
footer.innerHTML="©2021 你的名字 & Powered by 你的名字"
footer.style.visibility="visible"
}
</script>
```
- 默认主题修改 LOGO、移除版权示例来自 [@iLay1678](https://github.com/iLay1678)
- 默认主题修改 LOGO、修改页脚示例(来自 [@iLay1678](https://github.com/iLay1678)
```
<style>
@ -197,18 +207,6 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
</script>
```
- DayNight 移除版权示例(来自 [@hyt-allen-xu](https://github.com/hyt-allen-xu)
```
<script>
window.onload = function(){
var footer=document.querySelector("div.footer-container")
footer.innerHTML="©2021 你的名字 & Powered by 你的名字"
footer.style.visibility="visible"
}
</script>
```
- hotaru 主题更改背景图片示例
```
@ -231,9 +229,9 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
</details>
<details>
<summary>Agent不上线不启动自检流程</summary>
<summary>Agent 启动/上线 问题自检流程</summary>
1. 直接执行 `/opt/nezha/agent/nezha-agent -s 面板IP或非CDN域名:面板RPC端口 -p Agent密钥 -d` 查看日志是否是 DNS 问题。
1. 直接执行 `/opt/nezha/agent/nezha-agent -s 面板IP或非CDN域名:面板RPC端口 -p Agent密钥 -d` 查看日志是否是 DNS、网络不佳导致超时timeout 问题。
2. `nc -v 域名/IP 面板RPC端口` 或者 `telnet 域名/IP 面板RPC端口` 检验是否是网络问题,检查本机与面板服务器出入站防火墙,如果单机无法判断可借助 <https://port.ping.pe/> 提供的端口检查工具进行检测。
3. 如果上面步骤检测正常Agent 正常上线,尝试关闭 SELinux[如何关闭 SELinux](https://www.google.com/search?q=%E5%85%B3%E9%97%ADSELINUX)

View File

@ -35,6 +35,7 @@ type AgentConfig struct {
Debug bool
Server string
ClientSecret string
ReportDelay int
}
var (
@ -71,6 +72,7 @@ func main() {
flag.BoolVarP(&agentConf.Debug, "debug", "d", false, "开启调试信息")
flag.StringVarP(&agentConf.Server, "server", "s", "localhost:5555", "管理面板RPC端口")
flag.StringVarP(&agentConf.ClientSecret, "password", "p", "", "Agent连接Secret")
flag.IntVar(&agentConf.ReportDelay, "report-delay", 1, "系统状态上报间隔")
flag.BoolVar(&agentConf.SkipConnectionCount, "skip-conn", false, "不监控连接数")
flag.BoolVar(&agentConf.SkipProcsCount, "skip-procs", false, "不监控进程数")
flag.BoolVar(&agentConf.DisableAutoUpdate, "disable-auto-update", false, "禁用自动升级")
@ -81,6 +83,11 @@ func main() {
return
}
if agentConf.ReportDelay < 0 || agentConf.ReportDelay > 4 {
println("report-delay 的区间为 1-4")
return
}
run()
}
@ -221,7 +228,7 @@ func reportState() {
client.ReportSystemInfo(context.Background(), monitor.GetHost().PB())
}
}
time.Sleep(time.Second)
time.Sleep(time.Second * time.Duration(agentConf.ReportDelay))
}
}

View File

@ -109,7 +109,7 @@ func checkStatus() {
max, passed := alert.Check(alertsStore[alert.ID][server.ID])
if !passed {
alertsPrevState[alert.ID][server.ID] = _RuleCheckFail
message := fmt.Sprintf("[主机故障] %s(%s) 规则:%s", server.Name, utils.IPDesensitize(server.Host.IP), alert.Name)
message := fmt.Sprintf("[主机故障] %s(%s) 规则:%s", server.Name, utils.IPDesensitize(server.Host.IP), alert.Name)
go SendNotification(message, true)
} else {
if alertsPrevState[alert.ID][server.ID] == _RuleCheckFail {