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

安裝Zabbix Agent監控本機

安裝agent軟件

與server端不一樣,Agent只需安裝zabbix-agent包php

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功能啓動起來.mysql

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進去而後修改.nginx

更新完後,跳到下面頁面,稍等一會,從新載入一下頁面就是可用性爲綠色了web

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

若是想要將這種亂碼換成正常中文shell

若是是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端進行操做
# 爲了服務方便管理和易於查看。
# 監控系統中每每根據被監控的主機角色或其餘屬性將同類主機劃分到同一個主機組中.

若是等上一段時間,可用性哪裏沒有紅色警告,就說明這臺主機被添加進來了,可是由於沒有掛載模板和建立監控項,因此咱們接下來嘗試着掛載一下模板,而後再去建立監控項.vim

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

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,此章完結.

相關文章
相關標籤/搜索