搭建 Telegraf + InfluxDB + Grafana 監控遇到幾個小問題


1:如果同一台服務器上安裝有多個MongoDB實例,telegraf.conf 中關於 MongoDB 如何配置?配置數據在【INPUT PLUGINS的[[inputs.mongodb]]】部分。

單個實例配置

servers = ["mongodb://UID:PWD@XXX.XXX.XXX.124:27218"]

錯誤的多實例配置(例如兩個實例);

   servers = ["mongodb://UID:PWD@XXX.XXX.XXX.124:27218"]
   servers = ["mongodb://UID:PWD@XXX0.XXX.XXX.124:27213"]

重啟服務,查看服務狀態,提示錯誤信息如下;

Failed to start The plugin-driven server agent for reporting metrics into InfluxDB.

 

正確的配置應該為;

servers = ["mongodb://UID:PWD@XXX.XXX.XXX.124:27213","mongodb://UID:PWD@XXX.XXX.XXX.124:27218"]

 

2.配置Grafana 告警規則后,發現只是告警一次,后面恢復后再報警一次。即異常持續期間沒有一直告警。

解決辦法,這個設置其實在【Alterting】--》【Notification channels】-->【Send reminders】

 例如以下的設置可以理解為,每5分鍾觸發一下告警信息。

 

3.告警檢查顯示沒有數據。

這個時候有兩種原因

(1)收集監控項的代理程序有問題 ;

(2)或者是代理程序沒問題,是匯報數據不及時的問題

針對第二問題,我們可以調整代理程序執行頻率;如果實時性要求不是很高,還可以調整告警規則檢查數據的時間范圍。

例如,我們可以從檢查 過去5分鍾到過去1分鍾內的數據,調整為過去10分鍾到過去5分鍾內的數據。對應的設置如下:

調整前;

調整后

 

4.隨着需要監控的子項的增多,收集時間必然增多,需要調整運行周期。

否則,報錯信息如下;

telegraf[2908]: 2019-03-01T02:40:46Z E! Error in plugin [inputs.mysql]: took longer to collect than collection interval (10s)

解決方案:調整 telegraf.conf 文件中 [agent] 部分的interval參數。

 

5.InfluxDB 既有的規則不建議刪除,刪除后查詢寫入都報錯。

例如我們創建了如下一個規則:

CREATE RETENTION POLICY "48_hours" ON "telegraf" DURATION 48h REPLICATION 1 DEFAULT;

查看規則的命令:

SHOW RETENTION POLICIES;

然后執行刪除命令

drop retention POLICY "48_hours" ON "telegraf";

 查詢數據,提示以下錯誤;

ERR: retention policy not found: 48_hours

 

查看各個telegraf收集器,也開始報錯了。

 基礎知識

字段 解釋說明
name 名稱, 此示例名稱為autogen
duration 持續時間, 0代表無限制
shardGroupDuration shardGroup的存儲時間, shardGroup是InfluxDB的一個基本存儲結構, 應該大於這個時間的數據在查詢效率上應該有所降低
replicaN 全稱是REPLICATION, 副本個數
default 是否是默認策略

 

解決方案;

 新建的策略為默認策略,刪除后沒有了默認策略,要將一個策略設置為默認策略。

本例是將原來的autogen策略恢復為true,下面是完整的測試過程。

 

6.InfluxDB設置登入賬號后,如何auth驗證。

登入后,需要進行Auth驗證,否則命令無法正常執行,報錯如下:

ERR: unable to parse authentication credentials

需要輸入,auth 命令,再分別輸入賬號命名即可。

 

7. Grafana 關於報警郵件的配置

(1)我們明明配置了SMTP,但是提示錯誤:

"Failed to send alert notification email" logger=alerting.notifier.email error="SMTP not configured, check your grafana.ini config file's [smtp] section"

原因是:grafana.ini文件中,很多行的注釋符是(;)

(2)與配置Linux系統的郵件服務不同,需要添加端口。(例如,添加25);否則報錯:

"Failed to send alert notification email" logger=alerting.notifier.email error="address ygmail.yiguo.com: missing port in address"

(3)如無特別需要,請將skip_verify 設置為true。否則報錯:

"Failed to send alert notification email" logger=alerting.notifier.email error="x509: certificate is valid for XXXXXX"

因此,grafana.ini中關於郵件部分的配置格式如下;

#################################### SMTP / Emailing ##########################
[smtp]
enabled = true
host = 郵件服務(地址):port
user = 用戶名
# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
password = XXXXXXX
;cert_file =
;key_file =
skip_verify = true
from_address = 告警郵件的地址
from_name = Grafana

[emails]
;welcome_email_on_sign_up = false

 

8.我們在搭建收集log的系統時,下載logstatsh,驗證報錯

 

驗證代碼:

bin/logstash -e 'input { stdin { } } output { stdout {} }'

which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
could not find java; set JAVA_HOME or ensure java is in PATH

解決方案:

yum install java

再次驗證:

[root@QQWeiXin—0081 logstash-6.2.4]# bin/logstash -e 'input { stdin { } } output { stdout {} }'
Sending Logstash's logs to /data/logstash/logstash-6.2.4/logs which is now configured via log4j2.properties
[2018-09-23T17:29:46,228][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/data/logstash/logstash-6.2.4/modules/fb_apache/configuration"}
[2018-09-23T17:29:46,243][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/data/logstash/logstash-6.2.4/modules/netflow/configuration"}
[2018-09-23T17:29:46,335][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/data/logstash/logstash-6.2.4/data/queue"}
[2018-09-23T17:29:46,342][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/data/logstash/logstash-6.2.4/data/dead_letter_queue"}
[2018-09-23T17:29:46,661][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-09-23T17:29:46,702][INFO ][logstash.agent           ] No persistent UUID file found. Generating new UUID {:uuid=>"c9e6fd92-0171-4a2b-87e5-36b98c21db16", :path=>"/data/logstash/logstash-6.2.4/data/uuid"}
[2018-09-23T17:29:47,274][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.2.4"}
[2018-09-23T17:29:47,607][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
[2018-09-23T17:29:49,568][INFO ][logstash.pipeline        ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>40, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2018-09-23T17:29:49,739][INFO ][logstash.pipeline        ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x718a7b78 sleep>"}
The stdin plugin is now waiting for input:
[2018-09-23T17:29:49,815][INFO ][logstash.agent           ] Pipelines running {:count=>1, :pipelines=>["main"]}


{
       "message" => "",
      "@version" => "1",
    "@timestamp" => 2018-09-23T09:30:24.535Z,
          "host" => "QQWeiXin—0081"
}
{
       "message" => "",
      "@version" => "1",
    "@timestamp" => 2018-09-23T09:30:24.969Z,
          "host" => "QQWeiXin—0081"
}

{
       "message" => "",
      "@version" => "1",
    "@timestamp" => 2018-09-23T09:30:25.189Z,
          "host" => "QQWeiXin—0081"
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM