日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用kibana可视化报表实时监控你的应用程序

發(fā)布時(shí)間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用kibana可视化报表实时监控你的应用程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

先結(jié)果導(dǎo)向,來(lái)看我在kibana dashborad中制作的幾張監(jiān)控圖。

一:先睹為快

1. dashboard1

監(jiān)控幾個(gè)維度的日志,這么點(diǎn)日志量是因?yàn)榘褵o(wú)用的清理掉了,而且只接入了部分應(yīng)用。

  • 每日日志總數(shù)。

  • 每日日志錯(cuò)誤數(shù),從log4net中l(wèi)evel=ERROR摳出來(lái)的。

  • 每個(gè)應(yīng)用貢獻(xiàn)的日志量(按照應(yīng)用程序分組)

  • 今日錯(cuò)誤日志時(shí)間分布折線圖。

  • 今日全量日志時(shí)間分布折線圖。

2. dashboard2

這個(gè)主要用來(lái)監(jiān)控某日智能精準(zhǔn)觸發(fā)的短信數(shù)和郵件數(shù)以及通道占比情況。

3. dashboard3

某日發(fā)送的營(yíng)銷(xiāo)活動(dòng)概況,一目了然。

二:采集注意事項(xiàng)

接下來(lái)我們聊聊這個(gè)流程中注意的問(wèn)題。

1. 使用fileBeat 清洗掉垃圾日志

采集端使用的是filebeat,一個(gè)應(yīng)用程序配置一個(gè)prospectors探測(cè)器。 #=========================== Filebeat prospectors =============================filebeat.prospectors:# Each - is a prospector. Most options can be set at the prospector level, so # you can use different prospectors for various configurations. # Below are the prospector specific configurations.################## 1. IntelligentMarketing.Service3 ################## - enabled: truepaths:D:\Services\channel3\log\*.logexclude_lines: ['^----------','重新排隊(duì),暫停 100。$']fields:appname: IntelligentMarketing.Service3ipnet: 10.153.204.199ippub: 121.41.176.41encoding: gbkmultiline.pattern: ^(\s|[A-Z][a-z]|-)multiline.match: after################## 2. IntelligentMarketing.Service4 ################## - enabled: truepaths:D:\Services\channel4\log\*.logexclude_lines: ['^----------','重新排隊(duì),暫停 100。$']fields:appname: IntelligentMarketing.Service4ipnet: 10.153.204.199ippub: 121.41.176.41encoding: gbkmultiline.pattern: ^(\s|[A-Z][a-z]|-)multiline.match: after

<1> exclude_lines

這個(gè)用來(lái)過(guò)濾掉我指定的垃圾日志,比如說(shuō)以 ----------- 開(kāi)頭的 和 “重新排隊(duì),暫停100?!苯Y(jié)尾的日志,反正正則怎么用,這里就怎么配吧,有一點(diǎn)注意,盡量不要配置 contain模式的正則,比如:'.暫未獲取到任何mongodb記錄.' 這樣會(huì)導(dǎo)致filebeat cpu爆高。

<2> fields

這個(gè)用于配置應(yīng)用程序?qū)俚囊恍┬畔?#xff0c;比如我配置了appname,內(nèi)網(wǎng)ip,外網(wǎng)ip,方便做后期的日志檢索,檢索出來(lái)就是下面這樣子。

<3> multiline

有時(shí)候應(yīng)用程序會(huì)拋異常,就存在著如何合并多行信息的問(wèn)題,我這里做的配置就是如果當(dāng)前行是以‘空格’,‘字母‘ 和 ‘-’開(kāi)頭的,那么就直接合并到上一行,比如下面這個(gè)Mongodb的FindALL異常堆棧。

2. logstash解析日志

主要還是使用 grok 正則,比如下面這條日志,我需要提取出‘date’,‘threadID’,和 “ERROR” 這三個(gè)重要信息。

2017-11-13 00:00:36,904 [65] ERROR [xxx.Monitor.Worker:83] Tick [(null)] - 這是一些測(cè)試數(shù)據(jù)。。

那么就可以使用如下的grok模式。

match => { "message" => "%{TIMESTAMP_ISO8601:logdate} \[%{NUMBER:threadId}\] %{LOGLEVEL:level}"}

上面這段話(huà)的意思就是:提取出的時(shí)間給logdate,65給threadId,ERROR給level,然后整個(gè)內(nèi)容整體給默認(rèn)的message字段,下面是完整的logstash.yml。

input {beats {port => 5044} }filter {grok {match => { "message" => "%{TIMESTAMP_ISO8601:logdate} \[%{NUMBER:threadId}\] %{LOGLEVEL:level}"}}if ([message] =~ "^----------") {drop {}}date {match => ["logdate", "yyyy-MM-dd HH:mm:ss,SSS"]# target => "@timestamp"timezone => "Asia/Shanghai"}ruby {code => "event.timestamp.time.localtime"} }output {stdout {codec => rubydebug { }}elasticsearch {hosts => "10.132.166.225"index => "log-%{+YYYY.MM.dd}"}}

三:kibana制作

1. 今日全量日志吞吐走勢(shì)圖

這個(gè)比較簡(jiǎn)單。因?yàn)楸举|(zhì)上是一個(gè)聚合計(jì)算,aggreration按照 Date Histogram聚合即可。

2. 今日錯(cuò)誤日志走勢(shì)圖

這個(gè)相當(dāng)于在上面那個(gè)按時(shí)間聚合分組之后,然后在每一個(gè)bucket中再做一個(gè) having level=‘ERROR’的篩選即可。

3. 今日普通營(yíng)銷(xiāo)活動(dòng)發(fā)送

這個(gè)就是在bucket桶中做了一個(gè) having message like '%【第四步】 leaflet發(fā)送成功%' ,為什么這么寫(xiě)是因?yàn)橹灰l(fā)送成功,我都會(huì)追加這么一條日志,所以大概就是這么個(gè)樣子,性能上大家應(yīng)該也知道,對(duì)吧。

4. 今日應(yīng)用程序日志吞吐量

這個(gè)不想上面那三張圖按照時(shí)間聚合,而是按照appname 聚合就可以了,還記得我在filebeat的fileld中添加的appname字段嗎?

四:使用nginx給kibana做權(quán)限驗(yàn)證

為了避開(kāi)x-pack 的復(fù)雜性,大家可以使用nginx給kibana做權(quán)限驗(yàn)證。

1. 安裝 yum install -y httpd-tools。

2. 設(shè)置用戶(hù)名和密碼:admin abcdefg

htpasswd -bc /data/myapp/nginx/conf/htpasswd.users damin abcdefg

3. 修改nginx的配置

server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;auth_basic "Restricted Access";auth_basic_user_file /data/myapp/nginx/conf/htpasswd.users; #登錄驗(yàn)證location / {proxy_pass http://10.122.166.225:5601; #轉(zhuǎn)發(fā)到kibanaproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;allow 222.68.71.185; #允許的IPallow 118.133.47.76; #允許的IPdeny all;}

4. 重啟nginx

[root@localhost conf]# /data/myapp/nginx/sbin/nginx -s reload

然后綁定域名到你的ip之后,登陸就會(huì)有用戶(hù)名密碼驗(yàn)證了。

好了,本篇就說(shuō)這么多,希望對(duì)你有幫助。

總結(jié)

以上是生活随笔為你收集整理的使用kibana可视化报表实时监控你的应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。