zabbix全網監控

爲何要監控

  • 運維的職責
    1.保障企業數據的安全可靠。
    2.爲客戶提供7*24小時服務。
    3.不斷提高用戶的體驗。
  • 在關鍵時刻,提早提醒咱們服務器要出問題了
  • 當出問題以後,能夠便於找到問題的根源

拿到公司服務器的管理權以後,php

第一件事,備份html

第二件事,監控mysql

數據有故障了,服務有問題了,一些內容掛掉了,好比web服務器,或者是硬件的服務器,raid,磁盤有故障了也會報警,用戶訪問網站,感受慢了,也能夠得到相應的提示linux

這是一個很是重要的部分ios

大家公司監控是怎麼作的-面試題

  • OSI/ISO7層協議進行回答
  • 業務流程、用戶訪問網站的流程進行補充

 

監控工具

mrtg    流量監控出圖
nagios  監控
cacti   流量監控出圖
zabbix  監控+出圖,全部監控範疇,均可以整合到Zabbix中。git

  • 硬件監控:Zabbix IPMI Interface
  • 系統監控:Zabbix Agent Interface
  • Java監控:Zabbix JMX Interface
  • 網絡設備監控:Zabbix SNMP Interface
  • 應用服務監控:Zabbix Agent UserParameter
  • MySQL數據庫監控:percona-monitoring-plulgins
  • URL監控:Zabbix Web 監控

Zabbix簡介

zabbix是一個基於WEB界面的,提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案github

官網:http://www.zabbix.comweb

已經有20年曆史,面試

web界面是基於PHP的,因此須要準備LNMP或者LAMP的環境sql

軟件是c語言的

zabbix的架構圖

 zabbix_proxy 在大型架構中做爲代理使用,將分部服務器的狀況彙總發送到總部

 

zabbix安裝以及部署

先作環境檢查

從CentOS7模板機全新克隆一臺新主機
IP規劃爲10.0.0.61/172.16.1.61,主機名爲m01
註冊帳號:http://c.onealert.com/console//ucid/regist.jsp

 

帳號用於接受報警

安裝zabbix服務端

本次使用yum安裝,編譯安裝留爲做業

官網---download

官方安裝說明中能夠找到下面這些信息和安裝步驟

版本號中的LTS指的是長時間維護版本

或者找zabbix官方源repo.zabbix.com----找到有release的,複製連接地址

# 安裝Zabbix官方源
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum makecahe fast  # 快點緩存
# 安裝zabbix,httpd,php
yum install zabbix-server-mysql zabbix-web-mysql httpd php -y

 

 

 yum安裝數據庫

數據庫由於用的是centos7,MySQL是正常裝不上的,須要配置MySQL源或者二進制安裝

因此,偷懶安裝mariadb(本質上基本和mysql是同樣的)

# 安裝mariadb
yum -y install mariadb-server
systemctl start mariadb.service
# 建立數據庫,權限
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
建立用戶的時候,不用flush跟新信息,跟新只在修改用戶信息的時候 exit
# 導入數據庫sql文件,官方安裝說明中能夠找到這些信息和安裝步驟 zcat /usr/share/doc/zabbix-server-mysql-3.0.25/create.sql.gz|mysql -uzabbix -pzabbix zabbix

 

 zcat 命令是顯示gz壓縮包內容的軟件

請根據本身的zabbix軟件版本 修改zcat的文件目錄

配置zabbix server

# 配置zabbix Server鏈接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
# 修改apache-php配置,由於咱們是自動安裝,他會自動建立一個虛擬主機
# 咱們修改下配置文件,添加時區,不然後面打開web頁面安裝zabbix的時候會報錯
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

 

 

啓動zabbix server

systemctl start zabbix-server  # 啓動zabbix
systemctl start httpd  # 啓動apache

 

 

網頁配置

瀏覽器中訪問10.0.0.61/zabbix 。記得用本身的IP

進入頁面按照指令操做。

默認的帳號Admin密碼zabbix

進入主頁,單擊右上角的小人,修改顯示語言和密碼

zabbix開始監控狀態-安裝配置zabbix-agent

zabbix客戶端就是zabbix agent

國內源:搜索

選擇yum源的時候注意版本號,有的是centos6有的是7

能夠直接安裝agent,可是有一些依賴可能裝不上

選擇release最爲穩妥

全部須要被監控的服務器都要執行下面步驟,下面以在m01和cache01安裝客戶端爲例:
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

 

客戶端測試

此時,還不能在web頁面張查看監控狀態

須要先在客戶端測試確認一下數據,須要用到zabbix-get

# 只能在服務端m01操做,須要使用-s執行相應客戶端IP
yum install zabbix-get -y
# agent.ping 表示是否在線 1表示在線
[root@m01 doc]# zabbix_get -s 172.16.1.61 -p 10050 -k 'agent.ping'
1
zabbix_get
-s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]" zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

 

 

web頁面上怎麼看?

配置----主機----將 zabbix server 啓用--- 當可用性 都變成綠色,就表名監控上線

等待......如何加快(ping 主機名 能夠解析)

等了好久,看一下日誌吧...(/var/log/zabbix/zabbix_server.log)

咱們等來了一個錯誤,意思是,客戶端沒法訪問服務端,是監控IP設置的問題

點擊Zabbix server 將 agent代理程序的接口 這一項下面的 ip地址改成172.16.1.61,跟新保存

過一會就變成綠色了,就能夠查看監控中---最新數據、圖形等

由於中文字體的緣由,有些地方會亂碼,改爲英文就好了

解決亂碼問題,單獨安裝字體就能夠了,不斷地嘗試,發現某個字體可用

yum -y install wqy-microhei-fonts
將可用字體,複製到zabbix下 \cp
/usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 

 

添加一臺被監控服務器主機

如今web01服務器上安裝zabbix agent 客戶端

清華或者阿里軟件鏡像站------找到zabbix----找到版本-----選擇rhel----選擇6(web01是centos6的系統)----選擇64位----找到release----複製連接地址

在Linux中加入yum源

[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm

[root@web01 ~]# yum install zabbix-agent -y

之後這些操做要交給kickstart和cobbler,裝完系統就裝上zabbix-agent
#修改一下服務端的IP地址
第97行 Server = 172.16.1.61
或者使用sed -i.ori ''
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
#將zabbix 設置爲 開機自啓動,並重啓
[root@web01 ~]# chkconfig zabbix-agent on
[root@web01 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [FAILED] 
Starting Zabbix agent:                                     [  OK  ]

 

在m01 zabbix的服務端上檢查,這些服務都是要啓動的,並且要開機自啓動

[root@m01 doc]# systemctl is-active httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
active
active
active
active
[root@m01 doc]# systemctl is-enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
Unknown operation 'is-enable'.
[root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
disabled
disabled
disabled
enabled
[root@m01 doc]# systemctl enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
[root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service
enabled
enabled
enabled
enabled

 

在服務端檢查一下是否是在線,能夠鏈接

[root@m01 doc]# zabbix_get -s 172.16.1.7 -p 10050 -k 'agent.ping'
1

在web界面中  配置----主機----建立主機

主機名稱:      主機名

可見名稱:      隨意設置,知道意思就行,

羣組:         最好設置一個羣組,方便批量管理

agent代理程序的接口:     172.16.1.7 端口號不用改

下面的SNMP、JMX、IPMI暫時不用管

 

接下來 點擊 模板選項卡

不用點擊選擇,在搜索框中輸入linux ,選擇Template OS linux-----點擊小的添加----點擊添加

保證在m01上可以解析web01 的名字   -----   172.16.1.7 web01

注:實際作的時候,我沒有在host中解析web01 也連上了....後面有問題再說吧,

繼續添加一臺服務器cache01

都鏈接上了

 

如何快速添加主機及鍵值

隨便選擇一個,而後最下面有一個克隆,修改一下主機名和IP

模板中有什麼呢?

能夠查看監控項中的鍵值,就是zabbix_get 命令中的-k參數 中的k值,是獲取數據的本質

自定義建立鍵值

也叫做自定義監控,在模板提供的鍵值中沒有咱們須要的數據時,咱們要本身作鍵值

zabbix自帶模板Template OS Linux (Template App Zabbix Agent)
提供CPU、內存、磁盤、網卡等常規監控,只要新加主機關聯此模板,就可自動添加這些監控項。 需求:服務器登陸人數不超過3人,超過3人報警 一、獲取登錄服務器人數
[root@web01 ~]# who
root     pts/0        2019-03-16 15:49 (10.0.0.253)
二、統計
[root@web01 ~]# who|wc -l
1
三、將命令放在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 中
這是用來放置用戶自定義監控項的,用戶能夠在這個目錄中寫本身的.conf文件
四、在agent註冊key
# 語法:key名字要惟一,多個key以行爲分割
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l UserParameter=login-user,/bin/sh /server/scripts/login.sh # 執行腳本 # cd /etc/zabbix/zabbix_agentd.d/ # vim userparameter_login.conf UserParameter=login-user,who|wc -l
# 修改配置文件要重啓 systemctl restart zabbix-agent.service 
centos6中重啓
/etc/init.d/zabbix-agent restart
# 在server檢測 # zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"

 

自定義key能被server和agent承認

 

WEB頁面中操做

  1. 建立模板:填好名稱、羣組,就能夠保存了
  2. 建立應用集:給監控項(item)分類
    1. 添加一個user,表示用戶相關的
  3. 建立監控項:監控的內容
    1. 點擊監控項---建立監控項---填寫內容(歷史時長短一點,趨勢時長能夠長到365d)
  4. 建立觸發器:當監控項獲取到的值 達到必定條件時 就觸發報警
    1. 名稱要表達清楚報警內容  login.user bigger than 3
    2. 表達式要 選擇好 {fist_model_web:login.user.last()}>3 這是選擇後自動生成的
    3. 點擊添加
  5. 建立圖形
    1. 在選中監控項後,的功能下拉框選最大值
    2. 繪圖風格選先
    3. 其餘隨意
  6. 主機關聯模板
    1. 配置---主機---web01---模板---添加以前作好的模板

處理報警:在設置的觸發器中有一項容許手動關閉,在收到報警後,咱們能夠在確認事件中關閉報警

 

添加報警

報警也能夠在web中設置,就在主頁小人處

咱們還能夠經過網站設置報警,而後等着報警信息,就不用一直盯着頁面了

登錄網站:http://www.onealert.com/index.html 註冊帳號

報警的本質:
何時發郵件:當狀態改變的時候纔會發郵件
好--壞
壞--好

 

如何查找安裝報警腳本的路徑?

[root@m01 doc]# grep -i alertscript /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscript

 

安裝報警插件,下載地址和安裝命令都是報警網站提供的

[root@m01 alertscripts]# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz
...下載過程略...
[root@m01 alertscripts]# tar -zxf oneitsm_zabbix_release-1.2.0.tar.gz
[root@m01 alertscripts]# cd oneitsm/bin
[root@m01 bin]# bash install.sh 42dd9ef9-cc1c-8def-e95a-d20526a5341f
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: 172.16.1.61
Zabbix訪問失敗,請從新輸入.
Zabbix管理地址: 10.0.0.61
Zabbix訪問失敗,請從新輸入.
Zabbix管理地址: 10.0.0.61/zabbix   # 地址 zabbix的WEB頁面的地址
Zabbix管理員帳號: Admin
Zabbix管理員密碼: 
start to auth by zabbix admin user and password...
...安裝過程略...
create action success!
安裝成功.

 

 

登錄zabbix的WEB界面配置

管理---報警媒介類型---已經配置好了!!

在onealert的配置下中有一個分配策略---就是報警了分配給誰

聚合圖形

同時看幾個數據的圖形

聚合圖形中還有幻燈片演示

現有聚合圖形,才能建立幻燈片

https://share.zabbix.com/中有許多別人建立好的模板

https://github.com/zhangyao8/zabbix-community-repos 模板共享

全網監控項目說明

考試目標:使用zabbix將期中架構全部集羣監控

具體內容:
1、硬件、系統、網絡監控
全部集羣節點(全部虛擬機)都監控上

2、應用服務監控
1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;
2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;
3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,
  若是有其餘更佳方案能夠說明;
4. 監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明; 5. 監控URL地址來更精確的監控咱們的網站運行正常; 6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。 7. 監控Nginx的7種鏈接狀態。

 

項目一的模板都有

項目二中的端口、進程。能夠進入任意模板查看,都有

項目二中的第5個檢測URL,自定義web檢測

  建立web場景

項目二中的第6個檢測端口+進程

項目二中的第7個Nginx的7中連接狀態,用狀態模塊進行配置,

  一、寫7行(簡單粗暴的方法)

  二、寫腳本

 

自動發現與自動註冊

自動發現:zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,
  缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。 自動註冊:zabbix agent主動到zabbix Server上報到,登記;
  缺點agent有可能找不到Server(配置出錯) 被動模式:默認,都是站在agent的立場上說話,agent被server抓取數據 主動模式:都是站在agent的立場上說話,agent主動的將數據發送給Server 兩種模式都是在agent上的配置文件配置的

 

 

自動發現(被動模式)-服務器少的時候使用

第一步:zabbix Server安裝完畢 (完成)
第二步:zabbix agent安裝完畢,Server=172.16.1.61  (完畢)
第三步:網頁上配置自動發現規則

 

配置---自動發現---新建或者使用已經有的

修改IP範圍---172.16.1.1-10,172.16.1.45多個用,號分割

默認本質上使用的是system.uname,也能夠添加新的

設置惟一性

更新或者保存,啓用

------------------------------------------------------------------------------

配置---動做---事件源選擇‘自動發現’---建立或者修改原有的,也能夠克隆

其中,新的觸發條件能夠不寫,由於在自動發現中已經設置了

在操做選項卡里面,添加新的動做操做(添加主機和啓用主機)

完成後,跟新啓用

何時算是完成自動發現了呢,在自動發現中顯示主機名就算成功了,而後會出如今主機列表中

自動註冊(主動模式)

把以前的自動發現關閉

第一步:zabbix Server安裝完畢 (完成)
第二步:zabbix agent安裝完畢,須要額外增長的配置
    vim /etc/zabbix/zabbix_agentd.conf
    ServerActive=172.16.1.61
    # Hostname=Zabbix server  和下面的HostnameItem配置一個就行
    HostnameItem=system.hostname # 定義獲取服務器主機名的方式
  HostMetadataItem=system.uname # 主機的源數據
   systemctl restart zabbix
-agent.service
   重啓centos6的方式/etc/init.d/zabbix-agent restart
netstat
-tunlp|grep zabbix 第三步:Server上作hosts解析,解析是在這裏發揮做用的 echo "172.16.1.21 cache01" >> /etc/hosts 第四步:網頁上配置自動註冊   配置----動做---自動註冊(事件源)
  動做-觸發條件 設置 成 主機元數據 似 Linux(手打的)
  操做-添加主機---添加到羣組---連接到模板
  添加
主機沒有添加上,等候時間

 

分佈式監控

Zabbix Server -------->Zabbix agent (只能同一個局域網監控)

分佈式監控:
a. 分擔壓力,下降負載
b. 多機房監控

 

等因而給各個分區的服務器安排了一個領導,層層彙總

環境準備

作好快照

機器準備:
Zabbix Server m01            監控中心
Zabbix Proxy  web01         分中心領導
Zabbix Agent  web01 web02     客戶端

 

開始操做,將以前的自動發現和自動註冊都關閉

第一步:在代理機web01安裝zabbix proxy  
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
yum -y install zabbix-proxy-mysql 

第二步:安裝數據庫
zabbix  proxy也須要數據庫,這個數據庫不是用於存儲監控數據的 只是用於存儲配置信息
# 安裝數據庫
yum -y install mariadb-server
systemctl start mariadb.service

#建庫 建立用戶受權
mysql

create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
# 將多餘的空的用戶刪除
drop user 「‘@’localhost」;
drop user 「‘@’web01」;
# 跟新
flush privileges;
exit
# 導入數據庫文件 zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 第三步: 配置zabbix proxy,並在zabbix網頁登記 # 配置zabbix proxy鏈接數據庫 sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf systemctl start zabbix-proxy.service # 修改Server sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf # 修改hostname,確保這個名字是惟一的,不用web01是由於,web01要給下面的客戶端使用
# 這個hostname,必定要能在m01中解析,即最頂端的老大
sed
-i 's#Hostname=Zabbix proxy#Hostname=proxy-web01#' /etc/zabbix/zabbix_proxy.conf
將172.16.1.7      web01  proxy-web01 添加在m01的 host文件中 systemctl start zabbix
-proxy.service Centos6中的重啓方法/etc/init.d/zabbix-proxy start(第一次啓動因此使用的start
### 問題 ###
# 查看zabbix-proxy日誌發現,一隻鏈接不上數據庫,它鏈接的的是/var/lib/mysql/mysql.sock
  # 在/etc/zabbix/zabbix_proxy.conf中的默認的是/tmp/mysql.sock
  # 咱們須要將它啓動,把配置文件中DBSocket前面的# 刪掉
繼續重啓
第四步:web頁面設置
管理---agent代理程序---建立代理
agent代理程序名稱:要和 Hostname=proxy-web01 同樣
把客戶機加上
添加 第五步:客戶端agent 指向 proxy [root@web01
~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.61 ServerActive=172.16.1.61 [root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.7#g' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.7 ServerActive=172.16.1.7
# 文件中的Hostname 要和 頁面上的一致,即本服務器的hostname
[root@web01 ~]# systemctl restart zabbix-agent.service

 

把客戶端服務器hosts中的解析本機的去掉??

主機的名字只須要在proxy和m01上解析就能夠了

 

SNMP監控

主要用來監控網絡設備,也能夠用來監控服務器

只須要在網絡設備中開啓SNMP監控便可

 

小結:前面所講內容所有屬於zabbix agent方式監控

當前場景:沒法安裝agent,經過snmp監控

snmp :simple network manager protocol 簡單網絡管理協議
# 在m01下,安裝軟件 yum
-y install net-snmp net-snmp-utils 配置snmp sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
意思是開啓被讀取的權限
systemctl start snmpd.service 默認的端口是161 使用SNMP [root@db01
~]# snmpwalk -v 2c -c public 127.0.0.1 sysname # snmpwalk 相似 zabbix_get # -v 2c 指定使用snmp協議的版本 snmp分爲v1 v2 v3 # -c public 指定暗號 # sysname 相似zabbix的key 鍵值中的鍵,還有不少其餘的 OID

 

怎麼經過snmp協議來監控呢?

在web頁面中選擇主機。在設置中的SNMP接口處添加

它和agent的區別是不支持自定義監控

模板也要改,把原來的linux os 取消連接。添加Template SNMP OS Linux

仍是不行的話,點擊原來的先添加再取消並清理,而後保存

 

補充:web監測的時候,要把SNMP的模板刪除,換成以前用的普通的

最核心的部分是監控的體系部分,必定要做爲本身的必殺技,搞定

相關文章
相關標籤/搜索