(略,見docker學習總結-openfalcon鏡像的製做和打包或下面的連接)html
https://book.open-falcon.org/zh_0_2/quick_install/prepare.htmljava
https://www.cnblogs.com/nulige/p/7741580.htmlnode
可經過移動硬盤獲取鏡像的tar包或者直接從遠程倉庫獲取python
運行容器時須要映射四個端口,其中8081是openfalcon的Dashboard界面訪問端口,1988(Agent組件 數據上報)、6030(HBS服務 心跳服務)、8433(Transfer組件 數據接收)在監控時須要用到。mysql
docker run -dit --name 容器名稱n -p Dashboard組件映射端口:8081 -p Agent組件映射端口:1988 -p HBS服務映射端口:6030 -p Transfer組件映射端口:8433 openfalcon鏡像名稱:openfalcon鏡像tag /bin/bash ## 示例 docker run -dit --name my_openfalcon -p 10101:8081 -p 10102:1988 -p 10103:6030 -p 10104:8433 my_openfalcon:0.1 /bin/bash
## 查看運行中的容器,獲取openfalcon對應容器的編號 docker ps ## 以交互方式進入容器內部 docker exec -it 容器編號 /bin/bash
由於新建立容器以後MySQL沒有對應的pid文件,會出現沒法啓動的狀況,全部須要建立對應的pid文件,並配置相應的權限,使得MySQL能夠訪問到它。linux
## 前往MySQL安裝目錄 cd /apps/mysql-5.7.27/data ## 建立當前容器對應的MySQL的pid文件 touch 容器編號.pid ## 修改建立的pid文件的權限 cd .. chown -R mysql:mysql data chmod -R 755 data
檢查一下openfalcon的agent組件的配置文件是否正確。ios
## 前往openfalcon後端agent組件安裝目錄 cd /apps/open-falcon-beckend/agent/config ## 編輯配置文件 vim ./cfg.json
修改cfg.json文件的如下內容:git
//修改HBS服務的IP地址和端口號,這裏改爲openfalcon安裝宿主機的ip和容器內6030端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:6030 "heartbeat": { "addr": "47.96.72.151:10103", }, //修改Transfer組件的IP地址和端口號,這裏改爲openfalcon安裝宿主機的ip和容器內8433端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:8433 "transfer": { "addrs": [ "47.96.72.151:10104" ], }, //修改Agent組件的IP地址的端口號,這裏改爲容器內1988端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:1988 "http": { "listen": ":10102", },
運行sh文件,開啓服務。github
當出現文件運行完成,容器自動中止的狀況時,可編輯/apps/start.sh文件,在最後面加上【while true; do echo openfalconRuning; sleep 1; done】再從新運行start.sh文件,運行成功後直接關閉該ssh鏈接便可。golang
## 前往openfalcon軟件安裝根目錄 cd /apps ## 運行腳本文件 ./start.sh
訪問【宿主機IP地址:Dashboard組件映射端口】便可訪問open-falcon服務端,默認爲8081端口
IP地址:8081(默認)
![](https://img2018.cnblogs.com/blog/1592246/201909/1592246-20190904084154901-1332843973.png)
官方說明:https://book.open-falcon.org/zh_0_2/usage/getting-started.html
Dashboard頁面:監控機列表及監控數據查看
查看當前openfalcon服務端監控的實體(Endpoints)和對應的指標(Counters)。
Screen頁面:自定義看板
建立和管理監控指標的看板。分別建立看板組合看板畫面,可配置單個看板的監控實體、監控指標、展現樣式。
Hostgroup頁面:監控機組
建立和管理監控實體組。openfalcon有監控組的概念,報警時不針對單個的實體,而是根據組來報警。
在Hostgroup頁面,可建立和編輯每一個組的基本信息、配置組成員、配置組報警策略、配置組插件等。
Template頁面:監控報警策略模板
查看和管理報警策略。能夠根據需求建立和管理報警信息,
報警對象:一個實體組(Hostgroup)或者一個實體(Endpoint)
報警指標:自定義指標及報警值
給誰報警:一個用戶組(Team)
報警回調:可設置一個URL,當報警被觸發時,openfalcon會以get方式回調這個URL,回調時可發送提醒和結果
Expression頁面:監控報警策略表達式
查看和管理表達式。
Nodata頁面:無數據報警
查看和管理無數據上報時的報警。可根據實體組和實體來報警,選擇無數據的週期,便可在無數據的時候報警。
Alarm-Dashboard頁面:報警儀表盤
報警信息展現。
用戶管理
Profile頁面:登陸用戶信息管理
管理當前登陸用戶的信息
Users頁面:用戶管理
查看當前系統的全部用戶
用戶組管理
當前用戶組管理。用戶組與報警相關。
組件名稱 | 用途 | 服務端口 | 備註 |
---|---|---|---|
Agent | 部署在目標機器採集機器監控項 | http: 1988 | |
Transfer | 數據接收端,轉發數據到後端Graph和Judge | http: 6060 rpc: 8433 socket: 4444 | |
Graph | 操做rrd文件存儲監控數據 | http: 6070 rpc: 6071 | 1.可部署多實例作集羣 2.須要鏈接數據庫graph |
Query | 查詢各個Graph數據,提供統一http查詢接口 | http: 9966 | |
Dashboard | 查詢監控歷史趨勢圖的web端 | http: 8081 | 1.須要python虛擬環境 2.須要鏈接數據庫dashborad、graph |
Task | 負責一些定時任務,索引全量更新、垃圾索引清理、自身組件監控等 | http: 8002 | 1.須要鏈接數據庫graph |
組件名稱 | 用途 | 服務端口 | 備註 |
---|---|---|---|
Nodata | 檢測監控數據的上報異常 | http: 6090 | 1.須要鏈接數據庫:falcon_portal |
Portal | 配置報警策略,管理機器分組的web端 | http: 5050 | 1.須要鏈接數據庫:falcon_portal 2.須要python虛擬環境 |
Judge | 報警判斷模塊 | http: 6081 rpc: 6080 | 1.可部署多實例 |
Alarm | 報警事件處理器 | http: 9912 | |
Sender | 報警發送模塊,控制併發度,提供發送的緩衝queue | http: 6066 | |
mail-provider | 報警郵件http api | http: 4000 | 小米提供 |
sms-provider | 報警短信http api | http: 4040 | 自行編寫 |
Links | 報警合併依賴的web端,存放報警詳情 | http: 5090 | 1.須要鏈接數據庫:falcon_links 2.須要python虛擬環境 |
HBS | HeartBeat Server,心跳服務器 | http: 6031rpc: 6030 | 1.須要鏈接數據庫:falcon_portal |
UIC(fe) | 用戶組管理,單點登陸 | http: 80 | 1.須要鏈接數據庫:uic |
Aggregator | 集羣聚合模塊——聚合某集羣下的全部機器的某個指標的值,提供一種集羣視角的監控體驗。 | http: 6055 | 1.須要鏈接數據庫:falcon_portal |
https://blog.csdn.net/beta_xiyan/article/details/81911653
https://blog.51cto.com/chenguomin/1865550
獲取監控數據
新增一個監控機
根據監控物的不一樣而不一樣,可參考下面的各類監控配置或者官方文檔
查看監控數據
在Dashboard菜單查看剛剛配置的監控機,選擇這個監控機可查看指標
配置監控組
在HostGroup菜單將監控機配置到組中,可新增組或者點擊hosts將當前的機器加到指定的組中
配置報警策略
在Template菜單配置報警策略
在HostGroup菜單找到指定的組,點擊template將報警策略與監控組綁定
配置無數據報警
在Nodata菜單配置無數據報警
配置報警方式
參考下面的【openfalcon配置報警方式】
查看指標或者查看報警
在Dashboard中查看監控指標
在Screen中配置一個看板
在Alarm-Dashboard中查看報警信息(配置了報警方式的話能夠收到報警信息)
訪問open-falcon服務端
默認是8081端口。
選擇須要查看指標的監控機(可搜索、多選)
點擊【刷新counter列表】按鈕
點擊指標可查看單個指標的動態圖
選擇多個指標後,點擊【看圖】按鈕,選擇對應的視角,可同時查看多個指標(視角介紹見下方Q&A)
訪問open-falcon服務端,進入screen菜單
點擊screen首頁,在彈出的下拉畫面中可搜索已有的看板組或直接新建組
點擊【+導航】,在打開的畫面中輸入組名稱,點擊【新增】便可新建一個卡板組
新增組以後,便可新增看板畫面。選擇對應的組,點擊【選擇】【+screen】便可進入看板新增頁面
進入看板新增頁面,填寫相關信息便可新增看板
Graph標題:看板名稱
Endpoints列表:看板展現的機器列表,一行一個
Counters列表:看板展現的指標列表,一行一個
默認時間跨度:看板展現指標的時間跨度,即展現多久的數據
視角:看板數據的展現視角
是否加和:是否對數據進行加和運算並將和展現出來(與指標信息相同的方法展現)
openfalcon對機器的管理是以組的形式進行的,報警策略配置是按照機器組來的,可根據須要將不一樣的機器進行編組,再進行管理。
訪問open-falcon服務端,進入Hostgroup菜單
在頁面中展現了機器組列表,可進行搜索
輸入名稱後點擊右上角的+可新增組
在組列表中,可配置該組的報警策略、組成員機器、組插件等信息
訪問open-falcon服務端,進入Template菜單
在頁面中展現了報警策略列表,可進行搜索
輸入名稱後點擊右上角的+可進入新增報警策略頁面
設置相應的信息便可新增報警策略
模板基本信息:
name:模板名稱
parent:父級模板名稱
該模板中的策略列表:
metric/tags[note]:指標名稱
condition:報警條件
max:最大報警次數
P:報警級別(<3時既發短信也發郵件 , >=3時只發郵件)
run:報警時間(默認全天)
模板報警配置:
報警接收組:報警信息的接收人組(openfalcon的用戶組)
callback地址:報警以後回調的URL(GET方法回調),並可配置回調前的提醒和回調以後的結果通知
在openfalcon的Alarm-Dashboard菜單中可查看報警信息,若是須要短信、電話、郵箱、微信等方式報警,須要本身配置,可使用官方的控件也能夠本身寫接口實現,主要是修改【後端-Alarm-config-cfg.json】文件,docker鏡像中爲【/apps/open-falcon-beckend/alarm/config/cfg.json】。
修改其中的api部分:
"api": { //im報警接口URL,如微信,對應openfalcon用戶中的IM "im": "http://127.0.0.1:10086/wechat", //短信、電話報警接口URL,對應openfalcon用戶中的手機 "sms": "http://127.0.0.1:10086/sms", //郵件報警接口URL,對應openfalcon用戶中的郵箱 "mail": "http://127.0.0.1:10086/mail", "dashboard": "http://127.0.0.1:8081", "plus_api":"http://127.0.0.1:8080", "plus_api_token": "default-token-used-in-server-side" },
官方說明文檔:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html
詳見下面的配置報警方式。
訪問open-falcon服務端,進入Nodata菜單
在頁面中展現了無數據報警列表,可進行搜索
輸入名稱後點擊右上角的+可進入新增無數據報警頁面
設置相應的信息便可新增無數據報警
name:無數據報警的名稱
endpoint選擇:設置無數據報警的機器,可設置機器組或者機器,一行一個
metric:監測指標
tags:監控指標的tag
type:監控指標的值類型
週期(秒):數據上報的週期,須要與監控項上報數據的step一致
數據上報中斷時, 補發以下值:無數據上報時補發的值
其餘具體內容,請參考:
指標名稱 | 指標說明 |
---|---|
agent.alive | agent存活(存活時爲1) |
參考博客:https://blog.51cto.com/asinego/1949715
指標名稱 | 指標說明 |
---|---|
cpu.idle | CPU空閒時間,不包括等待I/O的時間 |
cpu.iowait | 等待I/O的CPU時間 |
cpu.switches | cpu上下文切換次數(計數器類型) |
cpu.system | 內核態CPU時間 |
cpu.user | 用戶態CPU時間 |
cpu.nice | 低優先級用戶態CPU時間,也就是進程nice值被調整爲1-19之間的CPU時間 |
cpu.irq | 處理硬中斷的CPU時間 |
cpu.softirq | 處理軟中斷的CPU時間 |
cpu.guest | 運行虛擬機的CPU時間 |
cpu.steal | 系統運行在虛擬機中的時候,被其餘虛擬機佔用的CPU時間 |
參考博客:https://blog.51cto.com/asinego/1905622
指標 | 說明 |
---|---|
mem.memtotal | 內存總大小 |
mem.memused | 內存使用量 |
mem.memused.percent | 內存使用百分比 |
mem.memfree | 內存剩餘量 |
mem.memfree.percent | 內存剩餘百分比 |
mem.swaptotal | swap總量 |
mem.swapused | sqap使用量 |
mem.swapused.percent | swap使用百分比 |
mem.swapfree | swap剩餘量 |
mem.swapfree.percent | swap剩餘百分比 |
參考博客:https://blog.51cto.com/asinego/1902213
指標名稱 | 指標說明 |
---|---|
df.statistics.total | 磁盤總量 |
df.statistics.used | 磁盤使用總量 |
df.statistics.used.percent | 磁盤使用百分比 |
df.bytes.used | 磁盤使用量 |
df.bytes.used.percent | 磁盤使用百分比 |
df.bytes.free | 磁盤可用量 |
df.bytes.free.percent | 磁盤可用百分比 |
df.inodes.free.percent | 磁盤可用inode佔比 |
指標名稱 | 指標說明 |
---|---|
disk.io.util | 在統計時間內全部處理IO時間,除以總共統計時間 |
disk.io.svctm | 表示平均每次設備I/O操做的服務時間 |
disk.io.avgqu-sz | 平均請求隊列的長度 |
disk.io.avgrq_sz | 平均請求扇區的大小 |
disk.io.await | 每個IO請求的處理的平均時間(毫秒) |
disk.io.ios_in_progress | 當前正在運行的實際I / O請求數 |
disk.io.msec_read | 全部讀取所花費的總時間(毫秒) |
disk.io.msec_write | 全部寫入所花費的總時間(毫秒) |
disk.io.read_bytes | 讀取字節數,單位是byte的數字 |
disk.io.read_merged | 相鄰的讀取請求合併在單個請求中 |
disk.io.read_requests | 成功讀取完成的總次數 |
disk.io.read_sectors | 成功讀取的扇區總數 |
disk.io.write_bytes | 寫入字節數,單位是byte的數字 |
disk.io.write_merged | 相鄰的寫入請求合併在單個請求中 |
disk.io.write_requests | 成功寫入磁盤的總次數 |
disk.io.write_sectors | 成功寫入扇區數的總次數 |
disk.io.msec_total | ios_in_progress> = 1的時間量 |
disk.io.msec_weighted_total | 統計最近的I/O完成時間和積壓 |
指標 | 說明 |
---|---|
kernel.files.allocated | 讀取的/proc/sys/fs/file-nr第一個Field |
kernel.files.left | 值=kernel.maxfiles-kernel.files.allocated |
kernel.maxfiles | 讀取的/proc/sys/fs/file-max |
kernel.maxproc | 讀取的/proc/sys/kernel/pid_max |
指標 | 說明 |
---|---|
load.15min | 15min系統平均load average(load average <= CPU核數 *0.7) |
load.5min | 5min系統平均load average |
load.1min | 1min系統平均load average |
參考博客:https://satori-monitoring.readthedocs.io/zh/latest/builtin-metrics/net.html
指標 | 說明 |
---|---|
net.if.in.bits | 網絡io流入位數(1字節/byte=8位/bit) |
net.if.in.bytes | 網絡io流入字節數 |
net.if.in.packets | 網絡io流入包數 |
net.if.in.compressed | 網絡io流入壓縮包數 |
net.if.in.multicast | 網絡io流入多播包數 |
net.if.in.dropped | 網絡io流入丟棄數 |
net.if.in.errors | 網絡io流入出錯數 |
net.if.in.fifo.errs | 因接收緩衝區滿丟掉的包數 |
net.if.in.frame.errs | 網絡io流入錯誤幀數 |
在openfalcon的Alarm-Dashboard菜單中可查看報警信息,若是須要短信、電話、郵箱、微信等方式報警,須要本身配置,可使用官方的控件也能夠本身寫接口實現,主要是修改【後端-Alarm-config-cfg.json】文件,docker鏡像中爲【/apps/open-falcon-beckend/alarm/config/cfg.json】。
配置文件:
openfalcon後端安裝目錄/alarm/config/cfg.json
"api": { //微信發送網關地址 "im": "http://127.0.0.1:10086/wechat", //短信發送網關地址 "sms": "http://127.0.0.1:10086/sms", //郵件發送網關地址 "mail": "http://127.0.0.1:10086/mail", //dashboard模塊的運行地址 "dashboard": "http://127.0.0.1:8081", //falcon-plus api模塊的運行地址 "plus_api":"http://127.0.0.1:8080", //用於和falcon-plus api模塊服務端之間的通訊認證token "plus_api_token": "default-token-used-in-server-side" }
官方說明文檔:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html
官方適配了靈犀雲的短信和電話接口,可直接使用。
註冊靈犀雲
在靈犀雲中建立應用
在靈犀雲中獲取token
修改alarm/config/cfg.json配置文件
"sms": "https://www.linkedsee.com/alarm/falcon_sms/本身的token"
靈犀雲電話和短信均免費10次,剩下的須要付費購買
mail-provider組件:https://github.com/open-falcon/mail-provider
下載編譯好的二進制文件
cd /apps/open-falcon-msg/mail wget https://dl.cactifans.com/open-falcon/falcon-mail-provider.tar.gz
解壓安裝
cd /apps/open-falcon-msg/mail mkdir -p falcon-mail-provider tar zxvf falcon-mail-provider.tar.gz cd falcon-mail-provider
修改falcon-mail-provider的配置文件
vim /apps/open-falcon-msg/mail/falcon-mail-provider/cfg.json
{ "debug": true, "http": { "listen": "0.0.0.0:4000", "token": "" }, "smtp": { //發件服務器地址 "addr": "mail.example.com:25", //發件人郵箱 "username": "falcon@example.com", //發件人郵箱密碼 "password": "123456", //發件人郵箱 "from": "falcon@example.com", "tls":false, "anonymous":false, "skipVerify":true } }
修改open-falcon alarm組件的配置文件
vim /apps/open-falcon-beckend/alarm/config/cfg.json
"api": { "mail": "http://127.0.0.1:4000/sender/mail", },
啓動服務
啓動服務
cd /apps/open-falcon-msg/mail/falcon-mail-provider ./control start
查看日誌
cd /apps/open-falcon-msg/mail/falcon-mail-provider ./control tail
測試使用
curl http://127.0.0.1:4000/sender/mail -d "tos=收件人&subject=郵件標題&content=郵件內容" ## 示例 curl http://127.0.0.1:4000/sender/mail -d "tos=a@a.com,b@b.com&subject=openfalcon報警&content=測試郵件"
chat組件:https://github.com/yanjunhui/chat
克隆代碼
cd /apps/open-falcon-msg/wechart git clone https://www.github.com/yanjunhui/chat.git
修改chat配置文件
cd /apps/open-falcon-msg/wechart/chat vim config.conf
#http 服務端口 [http] #默認爲0.0.0.0, 可根據須要修改爲本身的IP或者想使用本地地址修改成: 127.0.0.1 address = 0.0.0.0 port = 4567 #微信接口信息 [weixin] CorpID = ww6424d33203e90e20 AgentId = 1000002 Secret = FoST_8RQSTjZwH_CN3aQW6UKksjCSI9mizFqD7HKhrw
修改open-falcon alarm組件配置文件
"api": { "im": "http://yanjunhui.com:4567/send", },
啓動服務
cd /apps/open-falcon-msg/wechart/chat ./control.sh start
查看服務狀態
cd /apps/open-falcon-msg/wechart/chat ./control.sh status
Agent:部署在目標機器採集機器監控項
Transfer:數據接收端,轉發數據到後端Graph和Judge
Graph:操做rrd文件存儲監控數據
Query:查詢各個Graph數據,提供統一的http查詢接口
Dashboard:查詢監控歷史趨勢圖的web端
Task:負責一些定時任務,全部全量更新、垃圾索引清理、自身組件監控等
Sender:報警發送模塊,控制併發度,提供發送的緩衝queue
UIC(FE):用戶組管理,單點登陸
Portal(python):配置報警策略,管理機器分組的web端
HBC:Hearbeat Server,心跳服務器
Judge:報警判斷模塊
Links:報警合併依賴的web端,存放報警詳情
Alarm:報警事件處理器
https://blog.51cto.com/zhuyuanpo/1775108
安裝好openfalcon服務器
選擇合適的Windows監控程序(這裏選擇windows-agent:另外一個 go 語言實現的 windows-agent。支持端口,進程監控,支持後臺服務運行。)
下載已經編譯好的版本
https://github.com/freedomkk-qfeng/windows-agent/releases
解壓壓縮包(windows-agent-release-1.0.3和裏面的nssm-2.24都要解壓)
修改配置文件內容
找到cfg.example.json文件,複製一份到windows-agent.exe同級目錄(根據本身的機器選擇x64和x86)
修改配置文件內容
{ "debug": true, "logfile": "windows.log", //給這臺機器取個名字,在openfalcon中就是顯示的這個名字 "hostname": "hutianyao.windows.test", //修改IP地址爲本機的IP地址 "ip": "47.96.72.151", "iis":{ "enabled": false, "websites": [ "Default Web Site" ] }, //本機數據庫配置 "mssql":{ "enabled": false, "addr":"127.0.0.1", "port":3306, "username":"sa", "password":"123456", "encrypt":"disable", "instance": [ "test" ] }, "heartbeat": { "enabled": true, //修改成openfalcon服務端的IP:端口號,默認是6030,這裏映射到了10103 "addr": "47.96.72.151:10103", "interval": 60, "timeout": 1000 }, "transfer": { "enabled": true, //修改成openfalcon服務端的IP:端口號,默認是8433,這裏映射到了10104 "addrs": [ "47.96.72.151:10104" ], "interval": 60, "timeout": 1000 }, "http": { "enabled": true, //修改成openfalcon服務端的IP:端口號,默認是1988,這裏映射到了10102 "listen": ":10102", "backdoor": false }, "collector": { "ifacePrefix": ["網絡"] }, "default_tags": { }, "ignore": { "cpu.busy": true } }
以管理員身份運行CMD
CD到解壓目錄
cd H:\tmp\windows-agent-release-1.0.3\x64
CD到包含windows-agent.exe的文件夾下運行命令
windows-agent.exe
輸出正常後使用 nssm 註冊爲 Windows 服務
CD到nssm解壓目錄中包含nssm.exe的文件夾根據本身的機器選擇win32和win64)
執行命令
nssm.exe install windows-agent
輸入或選擇windows-agent.exe文件的絕對路徑,以及其上一級目錄
啓動服務
nssm.exe start windows-agent
https://www.cnblogs.com/yinzhengjie/p/10111390.html
https://github.com/open-falcon/mymon
安裝和配置go環境
## 下載go安裝包 https://golang.google.cn/dl/ ## 解壓安裝包到指定位置 cd /apps && mkdir go tar -C /apps/go -xzf go1.12.9.linux-amd64.tar.gz ## 配置環境變量 export GOROOT=/apps/go/go export GOPATH=/apps/go/goWork export PATH=$PATH:/apps/go/go/bin ## 測試是否安裝成功 go version
克隆代碼
go get -u github.com/open-falcon/mymon
編譯代碼
cd $GOPATH/src/github.com/open-falcon/mymon make
修改配置文件
[default] ## 工做目錄 basedir = . ## 日誌目錄,默認日誌文件爲myMon.log,舊版本有log_file項,若是同時設置了,會優先採用log_file log_dir = ./fixtures ## 配置忽略的metric項 ignore_file = ./falconignore ## 保存快照(process, innodb status)的目錄 snapshot_dir = ./snapshot ## 保存快照的時間(日) snapshot_day = 10 ## 日誌級別[RFC5424] log_level = 5 # 0 LevelEmergency # 1 LevelAlert # 2 LevelCritical # 3 LevelError # 4 LevelWarning # 5 LevelNotice # 6 LevelInformational # 7 LevelDebug # falcon agent鏈接地址 falcon_client=http://127.0.0.1:1988/v1/push [mysql] ## 數據庫用戶名 user=root ## 數據庫密碼 password=1tIsB1g3rt ## 數據庫鏈接地址 host=127.0.0.1 ## 數據庫端口 port=3306
測試啓動
cd $GOPATH/src/github.com/open-falcon/mymon ./mymon -c etc/myMon.cfg
添加定時任務
echo '* * * * * cd mymon編譯目錄 && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon ##示例 echo '* * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon
注:可能須要安裝crontabs(定時任務)服務
## 安裝crontabs yum -y install crontabs ## 開機自啓動crontabs ## 配置定時任務 vim /etc/crontab ## 在文件中加上(/1表示每分鐘執行一次) */1 * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg ## 保存定時任務 crontab /etc/crontab ## 查看定時任務 crontab -l
當在docker容器中運行時,可直接在啓動容器時添加參數:
docker exec -it 容器編號 crond restart ## 或者 docker exec -it 容器編號 /usr/sbin/crond -i ## 示例 docker exec -it 315e4af50cbd crond restart
查看日誌
cd $GOPATH/src/github.com/open-falcon/mymon cat myMon.log
安裝和配置JDK(使用tar.gz文件)
tar zxvf /tmp/jdk-8u221-linux-x64.tar.gz -C /tomcat
配置環境變量
## 配置環境變量 vi ~/.bashrc
## 在文件最後添加 export JAVA_HOME=jdk安裝目錄 export PATH=$JAVA_HOME/bin:$PATH ## 示例 export JAVA_HOME=/tomcat/jdk1.8.0_211 export PATH=$JAVA_HOME/bin:$PATH
刷新配置文件
## 刷新配置 source ~/.bashrc
驗證是否安裝成功
## 查看java版本 java -version
安裝Tomcat
tar zxvf /tmp/apache-tomcat-8.5.45.tar.gz -C /tomcat
修改Tomcat啓動文件
## 前往Tomcat的bin目錄 cd /tomcat/apache-tomcat-8.5.45/bin ## 修改配置文件 vi catalina.sh
catalina.sh中須要添加的內容(可以使用/CATALINA_OPTS搜索位置)
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote //開啓jmxremote -Djava.rmi.server.hostname=tomcat所在機器的IP(默認是本機的IP) -Dcom.sun.management.jmxremote.port=jmxremote使用的端口號 -Dcom.sun.management.jmxremote.ssl=是否開啓ssl通訊 -Dcom.sun.management.jmxremote.authenticate=是否須要鑑權" ## 示例 CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
啓動Tomcat
## 前往Tomcat的bin目錄 cd /tomcat/apache-tomcat-8.5.45/bin ## 啓動Tomcat sh startup.sh
安裝openfalcon的Agent組件
## 安裝Agent組件 tar xvf /tmp/agent.tar -C /tomcat ## 修改Agent配置文件(修改其中上報數據的IP地址和端口號) cd /tomcat/agent/config/cfg.json ## 啓動Agent服務 nohup /tomcat/agent/bin/falcon-agent -c /tomcat/agent/config/cfg.json ## 檢查服務是否開啓 netstat -antp | grep 1988 ps -ef | grep -i "falcon"
agent配置文件說明
{ "debug": true, //這裏是本機在openfalcon中顯示的名稱 "hostname": "", "ip": "", "plugin": { "enabled": false, "dir": "./plugin", "git": "https://github.com/open-falcon/plugin.git", "logs": "./logs" }, "heartbeat": { "enabled": true, //這裏是openfalcon的heartbeat模塊的URL,默認端口號爲6030 "addr": "47.96.72.151:10104", "interval": 60, "timeout": 1000 }, "transfer": { "enabled": true, //這裏是openfalcon的transfer模塊的URL,默認端口號爲8433 "addrs": [ "47.96.72.151:10105" ], "interval": 60, "timeout": 1000 }, "http": { "enabled": true, //這裏是openfalcon的agent模塊的URL,默認端口號爲1988 "listen": ":10103", "backdoor": false }, "collector": { "ifacePrefix": ["eth", "em"], "mountPoint": [] }, "default_tags": { }, "ignore": { "cpu.busy": true, "df.bytes.free": true, "df.bytes.total": true, "df.bytes.used": true, "df.bytes.used.percent": true, "df.inodes.total": true, "df.inodes.free": true, "df.inodes.used": true, "df.inodes.used.percent": true, "mem.memtotal": true, "mem.memused": true, "mem.memused.percent": true, "mem.memfree": true, "mem.swaptotal": true, "mem.swapused": true, "mem.swapfree": true } }
部署jmxmon
## 獲取jmxmon cd /tmp wget https://github.com/toomanyopenfiles/jmxmon/releases/download/v0.0.2/jmxmon-v0.0.2.tar.gz ## 解壓jmxmon tar zxvf /tmp/jmxmon-v0.0.2.tar.gz -C /tomcat ## 修改jmxmon配置文件 cd /tomcat/jmxmon-v0.0.2 cp conf.example.properties conf.properties vi conf.properties
conf.properties文件說明
## 監聽端口號(和上面Tomcat啓動文件中的port一致) jmx.ports=8999 ## 上報的URL(openfalcon服務端1988端口) agent.posturl=http://47.96.72.151:10102/v1/push ## openfalcon中顯示的當前監控Tomcat的名稱 hostname=hutianyao.tomcat.test
啓動jmxmon服務
cd /tomcat/jmxmon-v0.0.2 sh control start
查看jmxmon日誌
cd /tomcat/jmxmon-v0.0.2 cat var/app.log
指標名稱 | 指標說明 |
---|---|
parnew.gc.avg.time | 一分鐘內,每次YoungGC(parnew)的平均耗時 |
concurrentmarksweep.gc.avg.time | 一分鐘內,每次CMSGC的平均耗時 |
parnew.gc.count | 一分鐘內,YoungGC(parnew)的總次數 |
concurrentmarksweep.gc.count | 一分鐘內,CMSGC的總次數 |
gc.throughput | GC的總吞吐率(應用運行時間/進程總運行時間) |
new.gen.promotion | 一分鐘內,新生代的內存晉升總大小 |
new.gen.avg.promotion | 一分鐘內,平均每次YoungGC的新生代內存晉升大小 |
old.gen.mem.used | 老年代的內存使用量 |
old.gen.mem.ratio | 老年代的內存使用率 |
thread.active.count | 當前活躍線程數 |
thread.peak.count | 峯值線程數 |
Endpoint視角:按指標展現數據,不一樣監控機得相同指標,在一個圖表中展現。
圖表爲指標,線爲機器。
Counter視角:按監控機展現數據,一個監控機的全部數據(選擇的指標)展現在一個圖表中。
圖表是機器,線是指標。
組合視角:全部的數據,展現在一個圖表中。
一個圖表,線是一個機器的一個指標。
{ // 監控項名稱 metric: cpu.busy, // 目標服務器的主機名 endpoint: open-falcon-host, // tag標籤,做用是聚合和歸類,在配報警策略時會比較方便。 tags: srv=falcon,group=az1, // 監控項數值 value: 10, // 採集時間 timestamp: `date +%s`, // 監控項類型。 counterType: GAUGE, // 採集間隔(秒)。 step: 60 }