摘要:目前此系統(tǒng)僅支持類系統(tǒng)下使用,不支持系統(tǒng)什么是這是一個獲取各種系統(tǒng)的監(jiān)控數(shù)據(jù)的。監(jiān)控數(shù)據(jù)上報公有的跟官方社區(qū)的思想一致采集的系統(tǒng)監(jiān)控信息如內存等等一百多種沒有任何信息其他的業(yè)務系統(tǒng)的監(jiān)控都會打上。
OpenFalcon-SuitAgent
項目地址:github
版本說明本系統(tǒng)版本劃分如下
alpha:內部測試版(不建議使用于生產(chǎn)環(huán)境)
beta:公開測試版(不建議使用于生產(chǎn)環(huán)境)
final:最終正式版(可用于生產(chǎn)環(huán)境)
當前版本請查看pom.xml信息。
使用之前此系統(tǒng)是和OpenFalcon監(jiān)控系統(tǒng)一起使用,是為了更方便的進行運維監(jiān)控。若不了解,可以先點擊鏈接去OpenFalcon的官方社區(qū)進行了解。
目前此系統(tǒng)僅支持類Unix系統(tǒng)下使用,不支持Windows系統(tǒng)
什么是SuitAgent這是一個獲取各種系統(tǒng)的監(jiān)控數(shù)據(jù)的Agent。
其中內置了OpenFalcon的社區(qū)組件:FalconAgent,因所有的監(jiān)控數(shù)據(jù)都必須要上報到FalconAgent,所以為了部署方便和管理,SuitAgent集成了FalconAgent,若agent.falcon.push.url配置為本地地址,則啟動時會同時啟動自帶的FalconAgent,關閉時也會同時關閉FalconAgent。
OpenFalcon監(jiān)控系統(tǒng),是由一系列的組件構成。對于操作系統(tǒng)的監(jiān)控,官方有FalconAgent,但是對于其他系統(tǒng)的監(jiān)控,
都是使用腳本或者其他方式進行多帶帶采集,然后將數(shù)據(jù)上報給FalconAgent系統(tǒng)。
公司為了運維監(jiān)控的方便和自動化,便有了這個項目,將系統(tǒng)的采集,集中在一個系統(tǒng)中,并且盡可能的采集便捷。
自動探測部署機上的服務,自動監(jiān)控
監(jiān)控配置動態(tài)生效,無需重啟
能夠動態(tài)發(fā)現(xiàn)部署機上新啟動的服務
支持Mock接口功能,有自動化運維的公司,可利用此特性進行監(jiān)控自動化開發(fā)
監(jiān)控服務全部插件化實現(xiàn),可自定義開發(fā)自己需求的監(jiān)控服務的插件,只需要開發(fā)采集邏輯和插件運行配置。SuitAgent可自動發(fā)現(xiàn)插件,并根據(jù)配置自動運行,無需關心插件的啟動。
目前支持的監(jiān)控服務Docker(包括Docker內的應用存活情況監(jiān)控)
ElasticSearch
Http
Logstash
Mysql
交換機
Ntp
Oracle
Ping
Standalone Jar(Java通過java -jar xxx.jar運行的服務)
Tcp
Tomcat
Zookeeper
SuitAgent編譯構建工具:maven
Java版本:jdk 1.8
選擇對應的版本進行編譯:
- linux-64 : mvn clean package -Plinux-64 -Dmaven.test.skip=true - linux64-noJar : mvn clean package -Plinux64-noJar -Dmaven.test.skip=true - osx-noJar : mvn clean package -Posx-noJar -Dmaven.test.skip=true
編譯后,在target目錄下可看到編譯后的壓縮包,解壓縮,改改配置,即可使用
或者直接下載編譯后的文件,地址:
https://yunpan.cn/cMTHpgsQ3e5DV (提取碼:9f74)
版本說明:
linux-64 : linux-64位自帶Jre運行環(huán)境。不需要目標系統(tǒng)安裝java
osx-noJar : 蘋果系統(tǒng)。需要安裝java環(huán)境
linux64-noJar : linux-64位系統(tǒng)。需要目標系統(tǒng)安裝個java環(huán)境
修改相關配置后,直接啟動SuitAgent即可
建議:推薦編譯使用,因目前SuitAgent尚在完善中,代碼和配置難免會有所變動。網(wǎng)盤中的文件不能保證隨時都是最新的。
SuitAgent配置
FalconAgent配置文件(配置官方社區(qū)的FalconAgent)
{SuitAgentHome}/conf/falcon/agent.cfg.json
SuitAgent配置文件
{SuitAgentHome}/conf/agent.properties
監(jiān)控服務授權配置
{SuitAgentHome}/conf/authorization.properties
監(jiān)控服務插件配置
{SuitAgentHome}/conf/plugin目錄下
SuitAgent相關命令
啟動:./bin/agent.sh start (使用root用戶)
啟動日志查看
可通過tail -f conf/console.log
觀察SuitAgent的運行情況
關閉:./bin/agent.sh stop
狀態(tài):/bin/agent.sh status
SuitAgent日志SuitAgent運行中的日志分為四種:
1、console(debug)
2、info
3、warn
4、error
每種日志均自動控制日志大小,每到5MB就自動進行日志分割,最多有10個同類文件。既所有的日志文件,最多只會達到200MB,無需擔心日志文件過于龐大。
跟OpenFalcon官方社區(qū)的思想一致,FalconAgent采集的系統(tǒng)監(jiān)控信息(如內存,CPU等等一百多種)沒有任何tag信息 其他的業(yè)務系統(tǒng)的監(jiān)控,都會打上tag。`SuitAgent`采集的系統(tǒng),基本都是業(yè)務系統(tǒng)(非Linux操作系統(tǒng)監(jiān)控信息),所以都會有對應的Tag
tag來區(qū)分服務
例如:
`service`={value} :(內建)服務產(chǎn)品名,如tomcat `service.type`={value} :(內建)監(jiān)控服務類型,如jmx,database `agentSignName`={value} :(內建)agent提供的標識字符串,如 allUnVariability(代表該服務SuitAgent啟動時就不存在),標識服務的占用端口號,服務名等。 `metrics.type`={value} :(內建)監(jiān)控值類型,如availability,jmxObjectConf,jmxObjectInBuild,httpUrlConf,sqlConf,sqlInBuild,snmpConnomInBuild,snmpPluginInBuild
可用性(availability)會自動打上標簽:
metrics.type=availability,service={value}
若某個服務有自定義的endPoint(如SNMP V3),則會加上customerEndPoint=true的tag
Tomcat監(jiān)控值會打上dir={dirName}的tag,方便同一個物理機啟動多個tomcat時,更好的識別具體的tomcat
SuitAgent Plugin 說明SuitAgent所有的監(jiān)控服務都是插件式開發(fā)集成
如何自定義插件開發(fā)SuitAgent支持的插件一共以下幾種:
JDBC的監(jiān)控服務,實現(xiàn)com.yiji.falcon.agent.plugins.JDBCPlugin接口
JMX的監(jiān)控服務,實現(xiàn)com.yiji.falcon.agent.plugins.JMXPlugin接口
SNMP V3的監(jiān)控服務,實現(xiàn)com.yiji.falcon.agent.plugins.SNMPV3Plugin接口
探測監(jiān)控服務,實現(xiàn)com.yiji.falcon.agent.plugins.DetectPlugin接口
若要開發(fā)自己的監(jiān)控服務,想好自己的監(jiān)控服務是哪種類型,參照SuitAgent目前已實現(xiàn)的插件結構,
在包com.yiji.falcon.agent.plugins.plugin下建立自己的插件目錄,將插件類放在該目錄中,
然后根據(jù)規(guī)則,在src/main/resources_ext/conf/plugin/目錄下建立自己的插件配置文件即可。
- 若SuitAgent在啟動時,需要進行監(jiān)控的服務(對應的work配置為true的)未啟動,則將會上報一個名為`allUnVariability`的metrics監(jiān)控指標,值為`0`。tag中有metrics的詳情(參考tag命名),代表為該服務全部不可用
JMX監(jiān)控的屬性,由以下三部分組成
SuitAgent內置的JMX監(jiān)控屬性
- `HeapMemoryUsedRatio` - 堆內存使用比例 - `HeapMemoryCommitted` - 堆內存已提交的大小 - `NonHeapMemoryCommitted` - 非堆內存已提交的大小 - `HeapMemoryFree` - 堆內存空閑空間大小 - `HeapMemoryMax` - 堆內存最大的空間大小 - `HeapMemoryUsed` - 堆內存已使用的空間大小 - `NonHeapMemoryUsed` - 非堆內存已使用的空間大小
JMX 公共的監(jiān)控屬性自定義配置
定義于conf/jmx/common.properties文件
自定義的監(jiān)控屬性
每個插件自定義的屬于自身的監(jiān)控屬性
正常情況下,若Java應用停機,則它的JMX連接將會不可用,此時,SuitAgent將會上報該應用不可用的監(jiān)控報告,并且,在每一次重新獲取監(jiān)控值時,都會嘗試重新連接此應用。
若該應用是被下線了,就是廢棄了,那么豈不是會永遠上報不可用狀態(tài)?所以,SuitAgent有一個處理機制,在SuitAgent啟動時,它會記錄每一個Java應用的應用路徑,如果該應用被發(fā)現(xiàn)停機了,它會檢查該路徑還是否存在有效,如果路徑無效,SuitAgent將會清除此下線應用的監(jiān)控信息,就不會上報不可用了。
zookeeper
tomcat
elasticSearch
logstash
standaloneJar(多帶帶Jar包運行的應用,如SpringBoot)
JDBC監(jiān)控的服務- Oracle - MysqlSNMP監(jiān)控服務
每個接口的Metrics:
- {ifName}.if.HCInBroadcastPkts - {ifName}.if.HCInMulticastPkts - {ifName}.if.HCInOctets - {ifName}.if.HCInUcastPkts - {ifName}.if.HCOutBroadcastPkts - {ifName}.if.HCOutMulticastPkts - {ifName}.if.getIfHCOutUcastPkts - {ifName}.if.HCOutOctets - {ifName}.if.OperStatus : (接口狀態(tài),1 up, 2 down, 3 testing, 4 unknown, 5 dormant, 6 notPresent, 7 lowerLayerDown)
ping Metrics:
- pingAvgTime : Ping延時(正常返回延時,超時返回 -1)
說明
監(jiān)控的設備采集信息和采集邏輯主要參考了Falcon社區(qū)的swcollector項目,因swcollector不支持SNMP V3協(xié)議。
[https://github.com/gaochao1/swcollector](https://github.com/gaochao1/swcollector)
采集的私有metric列表
- 公共的metrics數(shù)據(jù) - CPU利用率 - 內存利用率
內存和CPU的目前測試的支持設備
- Cisco IOS(Version 12) - Cisco NX-OS(Version 6) - Cisco IOS XR(Version 5) - Cisco IOS XE(Version 15) - Cisco ASA (Version 9) - Ruijie 10G Routing Switch - Huawei VRP(Version 8) - Huawei VRP(Version 5.20) - Huawei VRP(Version 5.120) - Huawei VRP(Version 5.130) - Huawei VRP(Version 5.70) - Juniper JUNOS(Version 10) - H3C(Version 5) - H3C(Version 5.20) - H3C(Version 7)探測監(jiān)控服務
HTTP監(jiān)控
監(jiān)控Metrics:
availability
response.code : 響應狀態(tài)碼
response.time : 響應時間 毫秒
Ping監(jiān)控
監(jiān)控Metrics
availability
pingAvgTime : ping的平均延時(當前為每次ping5次,取絕對值)
pingSuccessRatio : ping的成功次數(shù)占比,如ping了5次,只成功返回4次,則為0.8
TCP(Socket)監(jiān)控
監(jiān)控Metrics :
availability
response.time : 響應時間 毫秒
Yiji NTP 監(jiān)控
監(jiān)控Metrics
availability
0:NTP監(jiān)控失?。ㄈ鏽tpdate命令執(zhí)行失?。?/p>
1:NTP監(jiān)控成功
ntpOffset : ntpdate命令解析的offset值
Docker 監(jiān)控
監(jiān)控Metrics
availability
0:Docker daemon 探測失敗
1:Docker daemon 探測成功
availability-container
說明:在SuitAgent第一次運行Docker插件時,會將第一次檢測到的容器名稱保存到內存緩存中,在以后的每一次監(jiān)控時,會上報內存緩存中的容器的可用性狀態(tài)
0:容器已停止運行
1:容器正在運行
availability.container.app
說明:在SuitAgent第一次運行Docker插件時,會將第一次檢測到的容器內的進程情況進行緩存到內存中,在以后的每一次監(jiān)控時,會重新獲取容器內的進程情況,若與第一次一致,則為可用
0:容器內應用運行不正常
1:容器內應用正常運行
-1:容器內的應用狀態(tài)數(shù)據(jù)獲取失敗
has_cpu : 是否有CPU使用權限
total.cpu.usage.rate : CPU總使用率百分比
user.cpu.usage.rate : CPU用戶級別使用率百分比
system.cpu.usage.rate : CPU系統(tǒng)級別使用率百分比
has_memory : 是否有內存使用權限
mem.size.usage : 當前已使用的內存大?。▎挝徽祝?/p>
mem.size.cache : 當前已緩存的內存大?。▎挝徽祝?/p>
mem.usage.rate : 內存已使用與容器總內存百分比
mem.cache.rate : 內存緩存與容器總內存的百分比
has_network : 是否有網(wǎng)絡使用權限
net.if.in.bytes : 網(wǎng)絡IO流入字節(jié)數(shù)
net.if.in.packets : 網(wǎng)絡IO流入包數(shù)
net.if.in.dropped : 網(wǎng)絡IO流入丟棄數(shù)
net.if.in.errors : 網(wǎng)絡IO流入出錯數(shù)
net.if.out.bytes : 網(wǎng)絡IO流出字節(jié)數(shù)
net.if.out.packets : 網(wǎng)絡IO流出包數(shù)
net.if.out.dropped : 網(wǎng)絡IO流出丟棄數(shù)
net.if.out.errors : 網(wǎng)絡IO流出出錯數(shù)
自動發(fā)現(xiàn)功能說明
zookeeper
無需配置,可自動發(fā)現(xiàn)
tomcat
無需配置,可自動發(fā)現(xiàn)
elasticSearch
無需配置,可自動發(fā)現(xiàn)
logstash
無需配置,可自動發(fā)現(xiàn)
standalone應用(java -jar 方式的Jar包運行)
需要配置`conf/plugin/standaloneJarPlugin.properties`配置文件的`jmxServerName`或`jmxServerDir`, 然后SuitAgent會自動發(fā)現(xiàn)已配置的standalone應用
Oracle
需要配置`conf/authorization.properties`配置中的Oracle連接信息,然后會根據(jù)配置的連接信息,進行自動發(fā)現(xiàn)Oracle應用,并監(jiān)控
Mysql
需要配置`conf/authorization.properties`配置中的Mysql連接信息,然后會根據(jù)配置的連接信息,進行自動發(fā)現(xiàn)Mysql應用,并監(jiān)控
SNMP V3 交換機
需要配置`conf/authorization.properties`配置中的交換機的SNMP V3的連接信息,然后會根據(jù)配置的連接信息,進行自動發(fā)現(xiàn)交換機并監(jiān)控。
HTTP監(jiān)控
只要配置了被探測的地址,就會觸發(fā)監(jiān)控服務
Ping監(jiān)控
只要配置了被探測的地址,就會觸發(fā)監(jiān)控服務
TCP監(jiān)控
只要配置了被探測的地址,就會觸發(fā)監(jiān)控服務
NTP監(jiān)控
只要配置了NTP服務器地址,就會觸發(fā)監(jiān)控服務
Docker監(jiān)控
無需配置地址,自動探測本機的`Docker`服務:若發(fā)現(xiàn)有命令`/usr/bin/docker`存在,就會啟動`Docker`監(jiān)控插件。并自動連接本機的`cAdvisor`服務或啟動內置的`vAdvisor`服務SuitAgent 動態(tài)配置
SuitAgent支持部分配置的動態(tài)生效,支持的范圍見如下說明
authorization.properties文件的改動
若對應插件未啟動,則文件修改后,將在SuitAgent下一次的自動服務發(fā)現(xiàn)時生效。
若對應的插件已啟動,因系統(tǒng)不會重復啟動相同的監(jiān)控服務,故雖然插件配置會生效,但是不會重新啟動服務
plugin目錄下的插件配置文件的改動
若改動的是未啟動的監(jiān)控服務配置(如StandaloneJarPlugin插件的standaloneJarPlugin.properties文件,添加了一個服務名。或更改了插件啟動類型等),將在SuitAgent下一次的自動服務發(fā)現(xiàn)時生效
若改動的是插件的監(jiān)控配置(如Tomcat插件的tomcatPlugin.properties文件的服務器監(jiān)控參數(shù)配置),下一次監(jiān)控掃描就能夠生效。
若改動的是插件的自定義配置文件,它的改動將不會觸發(fā)插件的配置更新事件,不過可以利用改動它的插件配置文件,觸發(fā)配置更新。
注意
已啟動的插件服務,不會因為配置文件的改動而停止服務
插件啟動時的配置項(如插件的step,pluginActivateType等)被改動時,若插件已啟動,雖然改動的配置插件會實時更新,但由于服務已啟動,這些屬性已經(jīng)在啟動時固定,所以將不會因為改動而生效
SuitAgent mock 接口接口說明
SuitAgent提供可用性(availability)的mock服務。
mock服務具有有效性,有效性時長,通過配置 agent.properties 文件的 agent.mock.valid.time 配置項
有效的mock,將會讓mock的目標服務即使已經(jīng)停止運行,也會上報一個可用的監(jiān)控數(shù)據(jù),并且?guī)?mock=true 的 tag
若mock的時間超時,既無效,則會上報目標服務不可用的監(jiān)控數(shù)據(jù),并且?guī)?mock=timeout-{time} 的 tag 。其中{time}是停機時間
接口使用
http://ip:port/mock/list
查看SuitAgent當前所有的mock配置,返回json格式的數(shù)據(jù),示例:
{ "jmx": { "service": "tomcat", "isTimeout": false, "shutdownTime": 0 } }
http://ip:port/mock/add/|f1f204026cc40a72030bbf5a799e1bb675|/service
添加一個mock配置
http://ip:port/mock/remove/|f1f204026cc40a72030bbf5a799e1bb677|/service
刪除一個mock配置
參數(shù)說明
serviceType : 對應于監(jiān)控值tag中的service.type屬性
service : 對應于監(jiān)控值tag中的service或agentSignName屬性
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/65116.html
摘要:目前此系統(tǒng)僅支持類系統(tǒng)下使用,不支持系統(tǒng)什么是這是一個獲取各種系統(tǒng)的監(jiān)控數(shù)據(jù)的。監(jiān)控數(shù)據(jù)上報公有的跟官方社區(qū)的思想一致采集的系統(tǒng)監(jiān)控信息如內存等等一百多種沒有任何信息其他的業(yè)務系統(tǒng)的監(jiān)控都會打上。 OpenFalcon-SuitAgent 項目地址:github 版本說明 本系統(tǒng)版本劃分如下 alpha:內部測試版(不建議使用于生產(chǎn)環(huán)境) beta:公開測試版(不建議使用于生產(chǎn)環(huán)境)...
摘要:作為骨灰級粉絲,一直以來對第三方監(jiān)控都是拒絕的。例如白屏時間首屏時間腳本錯誤網(wǎng)頁加載就緒時間各種瀏覽器的訪問情況,甚至能了解不同瀏覽器運營商地區(qū)用戶的訪問狀況。腳本錯誤在所難免,錯誤進一步導致網(wǎng)站部分功能無法使用。 作為 Zabbix 骨灰級粉絲,一直以來對第三方監(jiān)控(APM)都是拒絕的。一來覺得收費,二來擔心數(shù)據(jù)被人所知,三來覺得 Zabbix 牛逼到無可取代。但是,隨著 APM 市...
摘要:和就構成了監(jiān)控系統(tǒng)的核心服務。其中,一臺物理機器中,包含了多個,每個中運行這一個。性能對第一個版本進行了性能測試,得到了以下性能指標臺服務器,臺部署,臺部署。 (原文地址:https://blog.goquxiao.com/posts/2015/02/17/ji-yu-zabbix-dockerkai-fa-de-jian-kong-xi-tong/) 背景 團隊所開發(fā)的持續(xù)監(jiān)測網(wǎng)站/...
摘要:本文主要分為三個部分,將介紹監(jiān)控系統(tǒng)的歷史流派及如何選型,希望對讀者能有所幫助。圖監(jiān)控系統(tǒng)發(fā)展歷史早期的監(jiān)控系統(tǒng)互聯(lián)網(wǎng)發(fā)展早期的監(jiān)控系統(tǒng),主要是指基于簡單網(wǎng)絡管理協(xié)議的網(wǎng)絡監(jiān)控和系統(tǒng)主要指操作系統(tǒng)監(jiān)控。 本文作者 劉俊微博平臺監(jiān)控技術負責人,負責微博平臺、PC微博大規(guī)模監(jiān)控系統(tǒng)的建設,主要關注實時大數(shù)據(jù)、運維自動化、智能化方向,2014年加入微博,之前曾在新浪、搜狐等公司從事運維監(jiān)控方面的工...
閱讀 2866·2021-10-21 09:38
閱讀 2764·2021-10-11 10:59
閱讀 3057·2021-09-27 13:36
閱讀 1673·2021-08-23 09:43
閱讀 806·2019-08-29 14:14
閱讀 3044·2019-08-29 12:13
閱讀 3212·2019-08-29 12:13
閱讀 319·2019-08-26 12:24