監控概述、常用監控工具、zabbix


轉載

原文地址:https://www.cnblogs.com/syy1757528181/p/13641460.html

一、監控基本概述

1、什么是監控

  1. 監控系統是整個運維環節,乃至整個產品生命周期中最重要的一環
  2. 事前'及時預警發現故障
  3. 事后'提供詳細的數據用於追查定位問題

2、為什么要做監控

  1. 系統的監控:實際上是對系統不間斷的實時監控
  2. 實時'反饋系統當前狀態:我們監控某個硬件、或者某個系統,都是需要能實時看到當前系統的狀態,是正常、異常、或者故障。
  3. 保證服務可靠性安全性:我們監控的目的就是要保證系統、服務、業務正常運行
  4. 保證業務持續穩定運行:如果我們的監控做得很完善,即使出現故障,能第一時間接收到故障報警,在第一時間處理解決,從而保證業務持續性的穩定運行。(往往,第一時間知道業務宕機的都是用戶)

3、主要監控工具

  1. CACTI:'網絡'監控,Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具
  2. NAGIOS:'系統'監控,很久之前使用的,需要人為定義,沒有圖形,沒有辦法查詢歷史
  3. ZABBIX:分布式監控
  4. open-falcon:小米監控產品,開源的
  5. premethous:普羅米修斯,監控'容器',docker,K8S
  6. lepus:天兔,'數據庫'監控

4、怎么監控

  1. 查看內存使用  free -m
  2. 取出監控的值
  3. 對比某個限制的值
  4. 如果超過限制的值則告警

5、監控的內容

1.公有雲:雲監控,雲平台自帶的監控
2.硬件監控:CPU溫度,主板溫度,磁盤,網卡,風扇轉速
3.系統監控:cpu,內存,網絡,磁盤剩余
4.服務監控:
    1)MySQL:主從復制是否有延遲(zabbix監控模板)
    2)redis:主從復制是否有延遲
    '監控思路':zabbix沒有固定模板,可以在主庫中set一個key為時間戳,然后從庫會同步這個時間戳(動態),寫腳本實時獲取這兩個時間戳,做對比。
    3)NFS:磁盤掛載狀況
    4)tomcat:JVM監控,老年代、新生代、永久帶、full-gc、垃圾回收
    5)rsync的同步情況,MD5校驗文件是否被篡改
5.web頁面監控:請求時間,響應時間,加載時間,nginx狀態碼監控,pv,uv,ip
6.網絡監控:網卡流量(出入流量),帶寬,'監控寶'
7.業務監控:
    1)URL監控 (curl)
    2)api監控:針對業務的接口  (basic.action 登錄接口)
    3)nginx狀態碼 (curl)
    4)tomcat日志監控 (elk)
8.日志監控:ELK,第三方'日志易'
9.安全監控:firewalld,WAF,牛盾雲,安全狗
10.容器監控:premethous,'普羅米修斯'

#Page View(PV 頁面訪問量)又叫做頁面瀏覽量、點擊量
#Unique Visitor(UV 獨立訪客),一般地,我們可以用兩個數值標准來統計訪問某網站的訪客,即“訪問次數”和“獨立訪客(問)數”
#Internet Protocol(IP 獨立IP數),也稱IP數,指1天內使用不同IP地址的用戶訪問網站的數量,同一IP無論訪問了幾個頁面,獨立IP數均為1

二、腳本監控

監控命令

1、監控cpu

w top htop uptime glances ps

#不管用什么命令監控,查看CPU,我們都必須了解,系統的用戶態和內核態。
us: 用戶態     跟用戶的操作有關35%
sy: 內核態     跟內核的處理有關65%
id: CPU空閑

#當我們執行一個命令的時候,很快能出來結果,但是有多少人知道,這個很快,他都占用了哪些時間呢?
[root@web02 ~]# time ls
real    0m0.002s       真實執行時間
user    0m0.001s       用戶執行時間
sys     0m0.001s       系統執行時間

2、監控內存

free glances top htop

3、監控磁盤

df glances iotop iostat dstat

#以兆為單位,每秒執行一次,執行10次
[root@web02 ~]# iostat -dm 1 10

4、監控網絡

glances ifconfig iftop ip route

nethogs 該命令可以查看某個進程所使用的流量

監控內存實例

 

'每1分鍾'監控當前系統的內存使用狀態,如果可用'低於100MB'則發送郵件。同時'打印'當前還剩余多少內存

#思路
1.如何獲取內存的狀態信息 free -m
2.如何獲取內存的可用狀態 free -m|awk '/Mem/{print $NF}'
3.如何進行數字的比對,高於100MB不處理,低於100MB,發送郵件。
4.如何每分鍾執行。
隨着時間的推移,用戶不斷增多,服務消耗的內存越來越多,當系統內存不足的時候,可能會導致系統產生'oom'(out of memory)

1.當系統內存不足時就會大量使用swap('虛擬內存'2.當系統大量使用swap的時候,'系統會特別卡'

#web服務一般開啟swap,盡量防止業務宕掉,數據庫 容器一般關閉swap
#少量使用swap可以暫時解決內存溢出的問題,當使用大量的虛擬內存的時候,系統卡慢
#有時可能內存還有剩余300M或者500M,但是swap依然被使用

腳本:

[root@zabbix ~]# vim /scripts/free.sh
#!/bin/bash
Hostname_Ip=$(hostname)_$(hostname -I|awk '{print $2}')
while true
do
    Date=$(date +%F)
    Mem_Free=$(free -m|awk '/^Mem/{print $NF}')
    Swap_used=$(free -m | awk '/^Swap/ {print $3}')
    if [ $Mem_Free -lt 100 -a $Swap_used -gt 100 ];then
        echo "$Date: $Hostname_Ip 內存可用量不足100M並且Swap空間占用超過100M,內存當前剩余: $Mem_Free,Swap空間使用達到: $Swap_used" |mail -s '內存不足' xxx
    fi
    sleep 60
done

三、zabbix安裝

1、zabbix架構

  1. Zabbix agents '部署'在被監控目標上,用於主動監控本地資源和應用程序,並將'收集'的數據發送給 Zabbix server
  2. Zabbix server 是 Zabbix軟件的核心組件,agent 向其報告可用性、系統完整性信息和統計信息。server也是存儲所有配置信息、統計信息和操作信息的'核心存儲庫'。
  3. 數據庫:所有配置信息以及 Zabbix 采集到的數據都被'存儲'在數據庫中
  4. zabbix web 為了從任何地方和'任何平台'輕松訪問 Zabbix ,我們提供了基於 web 的界面。該界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 運行在同一台物理機器上。
  5. Zabbix proxy 可以代替 Zabbix server'采集'性能和可用性數據。Zabbix proxy在Zabbix的部署是可選部分;但是proxy的部署可以很好的'分擔'單個Zabbix server的負載。做'集群'的時候使用該模塊

2、zabbix 主動與被動模式配置

參見:https://www.cnblogs.com/liyuanhong/p/14694739.html

 


免責聲明!

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



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