02 . Zabbix配置監控項及聚合圖形

安裝Zabbix Agent監控本機

安裝agent軟件

與server端不同,Agent只需安裝zabbix-agent包

cat /etc/yum.repos.d/zabbix.repo 
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1


curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

yum -y install zabbix-agent zabbix-get
配置Agent並啟動
vim /etc/zabbix/zabbix_agentd.conf
Server=39.108.140.0                    # 被動模式 zabbix-server-ip
ServerActive=39.108.140.0              # 主動模式 zabbix-server-ip
Hostname=You-Men                       # Agent端主機名,最終显示在監控頁面上的名字
UnsafeUserParameters=1                 # 是否限制用戶自定義keys使用特殊字符

systemctl restart zabbix-agent
netstat -antp|grep agent
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3898/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      3898/zabbix_agentd
配置snmp(可以不做)

zabbix除了可以使用agent獲取數據之外,還可以通過snmp獲取數據,為了能夠讓zabbix監控更多的信息,將本機的snmp功能啟動起來.

yum -y install net-snmp net-snmp-utils
vim /etc/snmp/snmpd.conf
com2sec notConfigUser 39.108.140.0 public
access notConfigGroup "" any noauth exact all none none
view all included .1 80
systemctl restart snmpd && systemctl enabel snmpd
ss -anup |grep snmp        # 161端口,udp協議
# 測試snmp協議工作是否正常
# snmpwalk -v 1 -c public 39.108.140.0   .1.3.6
# 使用v1版本,共同體為public,來對192.168.0.1的.1.3.6分支進行walk。

snmpwalk -v 2c -c public 39.108.140.0
# 使用v2c版本,共同體為public,對39.108.140.0進行walk。
# -v        显示當前SNMPWALK命令行版本.
# -
# 獲取cisco設備39.108.140.0的接口類型

接下來我們到web界面上配置如何監控本地主機,我們看到接口上是127.0.0.1,但是我們配置文件寫的是39.108.140.0,我們讓這兩個IP一致.點擊3進去然後修改.

更新完后,跳到下面頁面,稍等一會,重新載入一下頁面就是可用性為綠色了

至此,監控本地主機就完成了,如果想看下監控本地主機的網卡流量就做下面圖2步驟.鼠標依次根據数字挨個點,如果想要監控項是中文的話,可以做Zabbix故障例一,但是4.4版本較以前版本有所改善,監控項不是亂碼,而是英文.

如果想要將這種亂碼換成正常中文

如果是windows在C盤搜索simkai.tff中文楷體,拷貝/上傳到服務器,然後cp到zabbix的字體目錄
3.*版本:
cp  /root/simkai.ttf   /usr/share/zabbix/fonts/

# 不同的安裝方式,路徑會有所不同,所以可以直接find / -type d -type fonts找到類似的文件夾,那就是了
# 注意字體權限問題
vim /usr/share/zabbix/include/defines.inc.php
    define('ZBX_GRAPH_FONT_NAME',    'simkai');
    define('ZBX_FONT_NAME',            'simkai');

Zabbix監控遠程主機

如果遠程主機安裝不上zabbix-agent,可以通過裝的上的zabbix-agent的機器把包傳過去

yum -y instlal yum-utils
# 下載到指定目錄
yum install zabbix-agent -y --downloadonly --downloaddir=/root
1.安裝zabbix agent
    # 方法一(國外源zabbix好像下載不下來包了,用上面的源):
    # rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
    yum clean all
    yum -y install zabbix-agent
    # 方法二:(使用別的機器傳過來的zabbix-agent包直接rpm安裝即可)
    rpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm

# 修改zabbix-agent配置並啟動服務

    vim /etc/zabbix/zabbix_agentd.conf
    Server=192.168.244.144
    Server=192.168.244.144            //監控主機IP地址
    Hostname=agent1.zabbix.com        //被監控主機到監控主機的名字
    UnsafeUserParameters=1

    systemctl start zabbix-agent
    ss -antp |grep 10050
# 接下來我們到web端進行操作
# 為了服務方便管理和易於查看。
# 監控系統中往往根據被監控的主機角色或其他屬性將同類主機劃分到同一個主機組中.

如果等上一段時間,可用性哪裡沒有紅色警告,就說明這台主機被添加進來了,但是因為沒有掛載模板和創建監控項,所以我們接下來嘗試着掛載一下模板,然後再去創建監控項.

我們到agent端裝一個nginx,然後去zabbix的web端找到此模板並掛載.

yum -y install nginx
systemctl start nginx

測試監控主機

接下來我們用瀏覽器或者elinks訪問一下nginx,產生一些數據,然後去zabbix上查看變化

elinks --dump 116.196.83.113

我們以後自定義Key監控項時,先看看最新數據有沒有數據過來,如果數據都不會過來,就別提圖形觸發器報警什麼了.

至此,添加本地主機,遠程主機,創建主機組,掛載模板就已經完了

Zabbix監控項

監控項(Items)簡介

監控項是Zabbix中獲得數據的基礎,沒有監控項,就沒有數據——因為一個主機只有監控項定義了單一的指標或者需要獲得的數據,監控項適用於採集數據的,多個同類的監控項可以定義成一個應用集,如,mysql增刪改查以及每秒鐘的讀表,寫錶速度可以寫成一個Mysql應用集.

對於監控項的示例,需要輸入以下必要的信息

名稱

輸入CPU Load作為值,在列表中和其他地方,都會显示這個值作為監控項名稱.

手動輸入system.cpu.load作為值,這是監控項的一個技術上的名稱,用於識別獲取信息的類型,這個特定值需要是Zabbix Agent預定義值的一種.
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent # 此網址就是zabbix官網的預定義值.

信息類型

在此處選擇Numeric(float),這個屬性定義了獲得數據的格式
你也需要減少監控項歷史保留的天數,7或者14天,對於數據庫而言,最佳實踐是避免數據庫保留過多的歷史數據.
我們選擇了數據類型后,暫時保持其他選項的默認值.
1> 磁盤容量Units一般為B
2> 網卡流量單位為bps
3> Mysql每秒訪問量qps,例如MySQL每秒select,insert Mysql serlect

點擊添加,新的監控項就出現在監控項列表中了

查看數據

當一個監控項定義完成后,你可能好奇他具體獲取了什麼值,前往監控首頁,點擊最新數據,選擇相應的主機.看數據能不能過來以及是不是自己想要的類型.

圖表

當監控項運行了一段時間后,可以查看可視化圖表,如果沒有可以自己創建一個,下面會有詳細介紹

常用監控項

1.服務器網絡接口進出流量和總流量
    net.if.in[if,<mode>]
    net.if.out[if,<mode>]
    net.if.total[if,<mode>]

2.服務器啟動分區剩餘空間
    vfs.fs.size[fs,<mode>]
    vfs.fs.size[/boot,free]

3.監控虛擬機內存
    vm.memory.size[<mode>]
    vm.memory.size[total
    vm.memory.size[free]
    vm.memory.size[wired]

4.服務器服務狀態
    net.tcp.listen[port]
    net.tcp.port[<ip>,port]
    net.tcp.service[service,<ip>,<port>]
    net.tcp.service.perf[service,<ip>,<port>]

5.服務器進程數量
        proc.num[<name>,<user>,<state>,<cmdine>]
        zabbix_get -s 39.108.140.0 -k proc.num
    121
    zabbix_get -s 39.108.140.0 -k proc.num[,,run]
    3
    zabbix_get -s 39.108.140.0 -k proc.num[,,sleep]
    118

6.服務器CPU狀態(浮點型,無單位)    
    system.cpu.intr
    system.cpu.load[<cpu>,<mode>]
    system.cpu.num
    system.cpu.switches
    system.cpu.util[<cpu>,<type>,<mode>]
    zabbix_get -s 39.108.140.0 -k system.cpu.load[all,avg1]
    0.000000
    zabbix_get -s 39.108.140.0 -k system.cpu.load[,avg5]
    0.010000

7.磁盤IO情況
    vfs.dev.read[device,<type>,<mode>]
    vfs.dev.write[device,<type>,<mode>]
zabbix_get -s 39.108.140.0 -k vfs.dev.read[/dev/vda1]

8.監控文件修改
    vfs.file.chsum[file]        # 如監控/etc/passwd ,/etc/group 文件從而知道是否有新用戶創建
    vfs.file.md5sum[file]
    vfs.file.size[file]        # 通常用來監控日誌
    vfs.fs.size[fs,<mode>]

9.磁盤總和.
監控網卡流量

我們先創建一個應用集,這樣的話之後創建的網卡上傳,下載,總流量不會顯的很亂,都在一個Network應用集裏面,而且能導出成xml文件,放到其他的zabbxi主機上能直接用.

我們此刻做的創建監控項是利用zabbix安裝好自帶的監控項,跟自定義Key差不多,都是寫一個監控腳本然後傳參,每一個鍵值相當於一個監控腳本

接下來我們檢測---> 主機群組裡面去查看下最新數據,我們可以從下圖看到是有數據的

下行寬帶和上行寬帶.

下載就是in,下行寬帶,你發出去的就是out,作為一個服務器來說上行寬帶肯定要高,在家裡就是下行寬帶高,對服務器來說他需要接收很少的數據包,回復很多的數據包,而在家裡我們是發出去一個很小的數據包,返回來整個網頁.

接下來我們再去創建一個網卡輸出流量,然後將他們做成一個圖標,以圖形化展示出來

接下來我們再去監測裏面去查看最新數據,可以養成這個習慣,因為最新數據過來了才是說明當中數據流向沒有問題,如果數據都沒有過來你去創建圖形,圖表說沒有數據,你覺得得等一會,浪費時間影響效率

可以看到,兩個監控項都是有數據的,接下來我們去創建圖形

接下來我們去查看監測 ---> 圖形,選擇相應群組,相應的主機及創建的圖形

這台主機可以裝一個nginx,然後上傳一張大一點圖片到網站根目錄,然後訪問,再查看網絡波動圖.

或者我們直接上傳一個大點的rpm、tar包到其他主機.這樣看着明顯

監控CPU

跟剛才一樣,創建一個CPU應用集,方便管理歸納

接下來我們創建應用集的監控項,cpuintr,cpu中斷數

接下來我們創建一個cpu每隔一分鐘的負載監控項
通過下圖,我們可以看到,每個監控項都是有數據過來的,接下來我們去創建圖形

我們可以看到,數據是可以實時轉換成圖標的,接下來我們去做一個聚合圖形

創建聚合圖形

至此,我們第一個構造函數完成,另外一個構造函數同理,此處就不寫了,直接看結果圖.

創建系統定義好的監控項,跟上面兩個都差不多,多做做自然就會了,如果不習慣使用官方定義好的key,我們可以根據公司環境自己寫腳本自定義key,此章完結.

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!