項目實戰12.1—企業級監控工具應用實戰-zabbix安裝與基礎操做

無監控,不運維。好了,廢話很少說,下面都是乾貨。php

警告:流量黨勿入,圖片太多!!!html

  項目實戰系列,總架構圖 http://www.cnblogs.com/along21/p/8000812.htmljava

 

實驗前準備:node

① ntpdate 192.168.30.1 同步時間mysql

② 關閉防火牆、selinuxlinux

③ vim /etc/hosts 每一個機器都設置hosts,以解析主機名;DNS也行ios

192.168.30.107    server.along.com
192.168.30.7      node1.along.com
192.168.30.2      node2.along.com
192.168.30.3      node3.along.com zbproxy.along.com

實戰一:zabbix的搭建與部署

一、下載安裝

(1)下載web

① 去官網,下載本身須要的版本https://www.zabbix.com/downloadredis

② 包的介紹sql

zabbix-agent-3.4.4-2.el7.x86_64.rpm    監控(安裝在被監控者,固然監控本身也須要監控)

zabbix-get-3.4.4-2.el7.x86_64.rpm    在server端,手工鏈接agent 獲取數據的,作測試的

zabbix-java-gateway-3.4.4-2.el7.x86_64.rpm     基於JAM監控時使用的

proxy 是和代理相關的包:

zabbix-proxy-mysql-3.4.4-2.el7.x86_64.rpm

zabbix-proxy-pgsql-3.4.4-2.el7.x86_64.rpm

zabbix-proxy-sqlite3-3.4.4-2.el7.x86_64.rpm

zabbix-sender-3.4.4-2.el7.x86_64.rpm    安裝在agent端,主動監控模式下,向server端發送測試數據使用的

server 取決本身的存儲系統選mysql 或 pgsql:

zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm

zabbix-server-pgsql-3.4.4-2.el7.x86_64.rpm

zabbix-web-3.4.4-2.el7.noarch.rpm    web部位,核心包

zabbix-web-japanese-3.4.4-2.el7.noarch.rpm    專用日語的web部位

web要鏈接mysql 或 pgsql時,須要安裝的包:

zabbix-web-mysql-3.4.4-2.el7.noarch.rpm

zabbix-web-pgsql-3.4.4-2.el7.noarch.rpm

zabbix-release-3.4-2.el7.noarch.rpm    zabbix下載的源

  

(2)安裝

① 安裝官方的源

zabbix-release-3.4-2.el7.noarch.rpm    直接下載源

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

yum repolist    能夠查看本身的倉庫有zabbix源了

聲明:我用的是3.2版本的,如下的示範也是3.2版本

② 安裝

yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql

二、初始化數據庫

(1)vim /etc/my.cnf.d/server.cnf 子配置文件

[server]
skip_name_resolve = on
innodb_file_per_table = on
innodb_buffer_pool_size = 256M   #buffer緩存大小
max_connections = 2000   #最大鏈接數
log-bin = master-log    #二進制日誌

(2)建數據庫,受權,刷新權限

MariaDB [(none)]> create database zbxdb character set 'utf8';
MariaDB [(none)]> grant all on zbxdb.* to zbxuser@'192.168.30.%' identified by 'zbxpass';
MariaDB [(none)]> flush privileges;

(3)導入數據

rpm -ql zabbix-server-mysql 下包的時候,帶有數據庫文件的解壓包

cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz ./ 考到root下,解壓

gzip -d create.sql.gz

mysql -uroot -p zbxdb < create.sql 導入數據

 

(4)能夠去數據庫查看,數據已經生成

 

三、配置,開啓zabbix-server

(1)配置前準備

cd /etc/zabbix/

cp zabbix_server.conf{,.bak} 先備份,養成好習慣

grep -i "^####" zabbix_server.conf 查看有幾個配置段

  GENERAL PARAMETERS 通常性配置

  ADVANCED PARAMETERS 高級配置

  LOADABLE MODULES 可加載模塊

  TLS-RELATED PARAMETERS 配置加密的東西,如私鑰證書等

grep -i "^###" zabbix_server.conf 能夠查看一下須要配置的選項

 

(2)配置

vim zabbix_server.conf 修改配置文件

ListenPort=10051    默認端口10051 
SourceIP=      發採用數據請求的端口,能夠加多個地址,須要的話本身設置

② 日誌的配置

② 數據庫的配置
DBHost=192.168.30.107   數據庫對外的地址
DBName=zbxdb   數據庫中庫的名字
DBUser=zbxuser   數據庫受權的用戶
DBPassword=zbxpass   密碼
DBPort=3306   數據庫服務端口

(3)開啓服務

systemctl start zabbix-server.service

 

四、設置zabbix的web 服務

(1)zabbix 須要開啓與web 相連的服務

cd /etc/httpd/conf.d/

vim zabbix.conf 額外爲php5 設置了一些參數

# php_value date.timezone Europe/Riga php的時區必須設置,不過有兩處能夠設置,在php的配置文件中設置,或在這裏設置;在這裏設置,只對zabbix有效

vim /etc/php.ini 在php的配置文件中設置,表明對全部使用php的都生效,我就在這裏設置了

date.timezone = Asia/Shanghai

 

(2)開啓

systemctl start httpd

 

五、在web 頁面初始化設置

(1)初始化配置

① web登陸 http://192.168.30.107/zabbix

② 檢查所依賴的配置,若是有fail,需手動修改

③ 設置數據庫的鏈接

④ 可能有多個zabbix服務器,加標識;非必須,能夠不填

⑤ 沒有問題,就開始安裝了

⑥ 完成!!!

 

(2)登陸,第一次登陸默認帳號密碼

帳號:admin

密碼:zabbix

(3)登陸進去的儀表盤

 

(4)status of zabbix 儀表盤分析

Zabbix server is running

Yes

192.168.30.107:10051

① Number of hosts (enabled/disabled/templates)

39

0 / 1 / 38

② Number of items (enabled/disabled/not supported)

0

0 / 0 / 0

③ Number of triggers (enabled/disabled [problem/ok])

0

0 / 0 [0 / 0]

④ Number of users (online)

2

2

⑤ Required server performance, new values per second

0

 

① 監控主機:已經啓用被監控的主機數量,已經配置好缺被禁止主機數,自帶模板數

② 監控項:啓用多少指標,禁用多少指標,不支持的指標

③ 觸發器數量:啓用,禁用,處於有問題的

④ 當前zabbix有幾個用戶:如今是一個是來賓,一個是管理員

⑤ 重點關注的nvps 每秒的新值(根據咱們定義的監控項,每秒採集過來多少新數據,平均值):

 

(5)用戶管理設置,有你們最喜歡的漢語

(1)若是英語很差,能夠切換爲中文,但推薦使用英文,爲了更好的講解,博主使用中文示範

(2)修改密碼

 

六、被監控node zabbix的安裝配置

(1)在node 機器上安裝

yum -y install zabbix-agent zabbix-sender 只需安裝這兩個包就行

 

(2)配置,和以前同樣,先查看一下配置段

① grep -i "^####" zabbix_agentd.conf 先查看一下配置段

GENERAL PARAMETERS 通常配置,有兩個子配置段

  Passive checks related   被動接口

  Active checks related   主動接口

ADVANCED PARAMETERS 高級配置

  USER-DEFINED MONITORED PARAMETERS 用戶自定義的監控參數(必要,高級的特性)

  LOADABLE MODULES

  TLS-RELATED PARAMETERS

② grep -i "^###" zabbix_agentd.conf 查看選項

 

(3)配置

vim zabbix_agentd.conf

① EnableRemoteCommands=0 是否容許執行遠程命令,默認是不容許的,有安全風險

② 指定服務器主機,能夠指定多個
Server=192.168.30.107  
③ 本身的今天IP和端口
ListenPort=10050   本身的監聽端口
ListenIP=0.0.0.0     容許監聽在本機的地址,0.0.0.0 是監聽全部
④ agent個數,被監控項有不少時,能夠多寫幾個
StartAgents=3  默認3個,優化時使用
⑤ 主動監控的機器地址是誰
StartAgents=192.168.30.107
⑥ 能被server段解析的主機名,寫IP也行
Hostname=node1.along.com
下邊都是默認值就好

(4)開啓服務

systemctl start zabbix-agent.service

 

七、node1加入到監控中

(1)先添加一個主機羣組host groups

添加一個mysrvs 的host groups

(2)建立主機

建立一個屬於mysrvs 主機組的node1.along.com 主機,若接口寫主機,要開啓DNS解析

關於主機加密,在內網中最好不要加密,急耗資源

 

八、對node1主機設置

(1)監控類別 applications應用集

建立3個 CPU Utils 、Memory Stats、Network Interface Stats 的應用集

3個已經生成

 

(2)建立監控項 items

設置名爲 rate of interrupt 的監控項 items

備註:

① key鍵值:內建key 、自定義key;對應的是命令;服務器自動執行key,就至關於採集數據

每個key 都對應,能在客戶端/agent端,執行的命令;該命令能幫咱們取回關係型數據

例:system.cpu.intr cpu中斷數的key

在命令行 zabbix_get -s 192.168.30.7 -p 10050 -k "system.cpu.intr"

 

② 數據更新間隔:

對於非關鍵型指標,不要太頻繁,使服務器壓力很大;推薦5分鐘,或以上

爲了實驗,選擇5s;關鍵型指標,30s(默認的)也很頻繁了

 

(3)查看本身設置的監控

查看圖形,能夠選擇不一樣時間做爲座標軸

 

實戰二:zabbix 基礎操做

聲明:我下邊已切換爲3.4版本了

一、設置items監控項,採集信息

(1)對node1 添加名爲rate of packets(in) 入站包的個數 的items監控項

① key 值選的是: net.if.in[if,<mode>]網絡接口上傳流量統計;能夠加參數

② 點擊進程,能夠選擇更多選項;比3.2不同的地方

 

③ 查看圖形

 

(2)克隆items 監控項

① 設置rate of packets(out) 出站包的個數,由於和in 很類似,能夠克隆再設置

② 修改成out,其餘都無需修改

 

(3)爲了後邊的實驗,多定義2個items 監控項

① rate of bytes(out) 出站字節數

② rate of bytes(in) 入站字節數

 

二、設置trigger 觸發器

(1)介紹

① 界定某特定的item採集到的數據的非合理區間或非合理狀態:邏輯表達式

② 邏輯表達式,閾值:一般用於定義數據的不合理區間;

  OK:正常 狀態 --> 不知足閾值(不合理區間)爲OK

  PROBLEM:非正常狀態 --> 知足閾值

③ 觸發器存在可調用的函數:(對數據進行評估)

  nodata()沒有數據

  last()最近幾回的平均值

  date()

  time()

  now()

  dayofmonth()

  ...

注意:經常使用nodata()、last();能用數值採集的結果保存,就不要用字符串;計算機處理數值要快的多

 

(2)建立trigger 觸發器

① 建立

② 設置

表達式能夠本身手寫;也能夠按選擇生成

次數count / 時間time 選項:二選一

time 時間

④ 下邊的選擇根據本身的需求選擇,我沒有設置

 

(3)查看圖形,會發現多了一根警告線

 

三、設置觸發器的依賴關係

(1)介紹

① 在一個網絡中,主機的可用性之間可能存在依賴關係

  例如,當某網關主機不可用時,其背後的全部主機都將沒法正常訪問

  若是全部主機都配置了觸發器並定義了相關的通知功能,相關人員將會接收到許多告警信息,這既不利於快速定位問題,也會浪費資源

  正肯定義的觸發器依賴關係能夠避免相似狀況的發生,它將使用通知機制僅發送最根本問題相關的告警

② 注意:目前zabbix 不可以直接定義主機間的依賴關係,其依賴關係僅能經過觸發器來定義

(2)依賴的解釋:

被依賴者會報警;依賴者不會報警

分析:監控到交換機故障,網卡和主機上的服務不用報警;

監控到主機上的服務,網卡和交換機不用報警

(3)設置依賴

 

四、設置Media 媒介

(1)Media 的介紹

Media:媒介,告警信息的傳遞通道;任何用戶收到報警信息,都須要有媒介的端口

  類型:下面3箇中國都沒實現,中國能夠實現微信,須要特殊插件

    Email:郵件

    Script:自定義腳本,每個script都是一個媒介

    SMS:短信,只適用於北美地區

    Jabber:

    Ez Texting:

  接收信息的目標爲zabbix用戶:

    須要用戶上定義對應各類媒介通道的接收方式;

每一類媒介,也能分不少種類型,以下圖

系統自帶的3中媒介

 

(2)定義一個media ,能夠在email 模板上直接修改

在選項中能夠設置併發會話

 

(3)用戶使用media媒介

① 選擇用戶中的admin用戶

② 添加media 報警媒介,一個用戶能夠添加多個

爲了實驗展現,我選擇全部等級

 

(4)實現給公司用戶發短信的媒介

① 建立一個名爲 duanxin 的媒介

設置,關於發短信的腳本,網上有不少,本身找一個使用

② 設置個用戶,使用duanxin的媒介

 

(5)互聯網中有發微信作媒介的

需先發個公衆號,且公衆號中全部人都能收到

 

五、設置Actions 動做

(1)設置action 動做的準備

① 準備一個被監控的服務redis

yum -y install redis 下載一個redis 服務作實驗

vim /etc/redis.conf 修改配置文件

bind 0.0.0.0 監聽本機全部端口

systemctl start redis 開啓服務

 

② 由於要執行動做時需遠程操做,給admin 用戶設置sudo權限

a) visudo 修改sudo的配置

zabbix ALL=(ALL) NOPASSWD: ALL 容許zabbix用戶能在全部主機,以全部人的身份執行全部命令

Defaults !visiblepw 默認全部命令要依靠tty執行,先註釋掉

 

b) vim zabbix_agentd.conf 設置agent容許執行遠程命令

EnableRemoteCommands=1 容許執行遠程命令

LogRemoteCommands=1 把遠程執行的命令記錄在日誌中

systemctl restart zabbix-agent.service 重啓zabbix-agent服務

 

(2)設置redis 的監控項items

① 監控端口的key

net.tcp.listen[port] 監聽本地listen:檢查 TCP端口是否處於偵聽狀態,返回 0 - 未偵聽;1 - 正在偵聽

net.tcp.port[<ip>,port]:server遠程掃描redis服務:檢查是否能創建 TCP 鏈接到指定端口,返回 0 - 不能鏈接;1 - 能夠鏈接

net.tcp.service[service,<ip>,<port>] 直接指定服務:檢查服務是否運行並接受 TCP 鏈接,返回 0 - 服務關閉;1 - 服務運行

 

(3)設置triggers 觸發器

① 設置表達式

 

(4)設置action 動做

a) 建立一個action

 

b) 設置action

① 設置action 的動做

② 設置action 的操做

③ 設置要操做的步驟1:重啓redis服務

④ 設置要操做的步驟2:給admin發郵件

⑤ 設置完的action 的操做:共兩步

 

c) 設置action 的恢復操做

d) 設置action 成功

 

六、測試動做

(1)手動停掉redis 服務,模擬服務故障

systemctl stop redis

 

(2)能夠看到problem 問題已產生

① 問題生成

② 執行動做,10s,第一個action 1 執行成功,problem問題解決

由於第一個action1 執行成功,因此action 2沒有執行

③ 恢復操做執行了,zabbix server 收到了mail "Resolved"

 

 

(3)模擬故障,且沒法恢復

systemctl stop redis && rpm -e redis 中止服務,且刪除redis

① 問題產生

② action 1 沒法完成

③ action 2 執行:給admin 發郵件

 

實戰3、展現接口的實現

一、Graphs 圖形的設置

(1)建立一個圖形

設置一個名爲interface traffic packets 的圖形

圖形類別展現:

① normal 正常的

註釋:

  工做時間:白色

  非工做時間:黑色

② Stacked 層積的

③ Pie

④ Exploded 爆發式圖形

設置完後:加入兩個監控項

rate of packets(in)

rate of packets(out)

 

(2)仿照上邊的,再建立2個圖形

① interface traffic bytes 加入2個監控項

rate of bytes(in)

rate of bytes(out)

redis status 加入一個監控項

redis status

 

二、定義Screens 聚合圖形

(1)建立screen 屏幕

 

(2)設置screens

 

三、把graphs 圖形加入到screens 屏幕中

(1)編輯上邊設置的screens

 

(2)點擊更改,把3個graphs 加入進來

① graph加入screen

② 設置

③ 添加成功,在瀏覽器上能夠按F11 ,全屏查看

 

四、多個screens能夠作成幻燈片

(1)再設置一個screens

 

(2)設置Slide shows 幻燈片

① 建立一個幻燈片

② 把兩個screens 加入到幻燈片設置中

② 播放幻燈片,5s 會切換一次

 

 

五、Maps 拓撲圖

Local network 自帶的maps 拓撲圖;用處不是想象中那麼大,就不講了

 

實戰4、Templates 模板和macro 宏

一、Templates 模板

(1)模板介紹:

  主機配置模板:用於連接至目標主機實現快速監控管理;

          link, unlink, unlink and clear

   模板可繼承;

   主機link多個模板必須注意,模板們不能含有相同的item key。trigger和graphs中使用的items不能是來自多個模板。

(2)建立template 模板

① 建立

② 設置template 模板

③ complete 模板,應用集application、監控項items、觸發器triggers、圖形graphs、屏幕screens、自動發現discover rules、web檢測web scenarios。

  模板complete 的一系列添加設置,和主機host 幾乎如出一轍,可是不會直接生效、採集數據;只有連接至主機才能生效、採集數據

  區別:主機接口;complete 沒有;host 有

host 有主機接口

complete 沒有主機接口

 

④ 導入模板

能夠在網上找到不少不錯的別人定義的模板,能夠直接導入

 

 

⑤ 也可導出本身的模板給其餘人使用

 

(3)在hosts 中導入模板complete

① 導入

② 導入成功

 

(4)不想在host主機中使用模板,能夠取消連接 或 取消並清除

 

(5)組group 使用模板

若是有不少屬於同一組內的主機host,想快速基於某模板監控,組group添加模板

 

(6)模板也能夠連接到其餘模板

 

二、宏:macro,預設的文本替換模式

(1)介紹

級別:

  全局:Administration --> General --> Macros ,對全部主機、全部模板都有效,優先級很低

  模板:編輯模板 --> Macros ,對全部連接至此模板的主機都有效

  主機:編輯主機 --> Macros ,僅對單個主機有效

類型:

  內建宏:調用 {MACRO_NAME}

  自定義:{$MACRO_NAME} ;命名方式:大寫字母、數字和下劃線

查詢宏的官方文檔:

https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

 

(2)設置使用宏

① 還以redis 爲例

yum -y install redis

vim /etc/redis.conf

bind 0.0.0.0 #監聽本地全部端口

systemctl start redis 開啓服務

 

② 定義全局宏

③ 在items 監控項中調用

④ 調用成功

⑤ 設置模板宏

⑥ 定義主機宏

注意:宏的優先級:host 主機宏 > complete 模板宏 > 全局宏

 

下篇zabbix 操做進階更精彩~~~

相關文章
相關標籤/搜索