亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

zabbix監控平臺部署詳細文檔

發布時間:2020-03-09 09:34:16 來源:網絡 閱讀:1302 作者:w王不二 欄目:云計算

監控系統介紹

一:監控介紹

1.監控軟件介紹:
使用 SNMP 協議獲取主機 CPU、內存、磁盤、網卡流量等數據.
用腳本將獲取到的 SNMP 數據存入數據庫中,然后再使用一種名為 MRTG 的軟件根據獲取的數據繪制圖表來分析數據的變化。MRTG(Multi Router Traffic Grapher),顧名思義,這款軟件最初是設計用于監控網絡
鏈路流量負載的。它可以用過 SNMP 獲取到設備的流量信息,并根據這些信息繪制成圖表并保存為 PNG 格式的圖片,再將這些 PNG 圖片以HTML 頁面的方式顯示給用戶.

不過,MRTG 展示的頁面和圖表曲線相對簡陋,它在一張圖片中最多只能繪制兩個數據的變化曲線,并且由于是 PNG 格式的靜態圖片,所以無法針對某一時間進行細化展示。為了解決這個問題,人們又開發了
RRDTOOL 工具.

不過,直接使用 RRD TOOL 繪圖操作起來很麻煩。同時,現如今的數據中心動輒成百上千的設備,一個個的去提取、繪制、監控顯然是不現實的事情.

Cacti 是一套基于 PHP、MySQL、SNMP 及 RRD Tool 開發的監測圖形分析工具,Cacti 是使用輪詢的方式由主服務器向設備發送數據請求來獲取設備上狀態數據信息的,如果設備不斷增多,這個輪詢的過程就非常的耗時,輪詢的結果就不能即時的反應設備的狀態了。Cacti 監控關注的是對數據的展示,
卻不關注數據異常后的反饋。如果凌晨 3 點的時候設備的某個數據出現異常,除非監控人員在屏幕前發現這個異常變化,否則是沒有任何報警機制能夠讓我們道出現了異常。

Nagios 是一款開源的免費網絡監控報警服務,能有效監控 Windows、Linux 和 Unix 的主機狀態,交換機、路由器和防火墻等網絡設置,打印機、網絡投影、網絡攝像等設備。在系統或服務狀態異常時發出郵件
或短信報警第一時間通知運維人員,在狀態恢復后發出正常的郵件或短信通知。Nagios 有完善的插件功能,可以方便的根據應用服務擴展功能。

Nagios 已經可以支持由數萬臺服務器或上千臺網絡設備組成的云技術平臺的監控,它可以充分發揮自

動化運維技術特點在設備和人力資源減少成本。只是 Nagios 無法將多個相同應用集群的數據集合起來,也不能監控到集群中特殊節點的遷移和恢復。

一個新的監控服務根據這個需求被設計出來,它就是 Ganglia。
Ganglia 是 UC Berkeley 發起的一個開源集群監視項目,設計用于測量數以千計的節點。Ganglia 的核心包含gmond、gmetad 以及一個 Web 前端。主要是用來監控系統性能,如:CPU 、內存、硬盤利用率, I/O 負載、網
絡流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體性能起到重要作用,目前是監控HADOOP 的官方推薦服務。

Zabbix 是一個基于 WEB 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix 能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

Zabbix 是由 Alexei Vladishev 創建,目前由 Zabbix SIA 在持續開發和支持。
Zabbix 是一個企業級的分布式開源監控方案。
Zabbix 是一款能夠監控各種網絡參數以及服務器健康性和完整性的軟件。Zabbix使用靈活的通知機制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣可以快速反饋服務器的問題。基于已存儲的數

據,Zabbix提供了出色的報告和數據可視化功能。這些功能使得Zabbix成為容量規劃的理想方案。Zabbix支持主動輪詢和被動捕獲。Zabbix所有的報告、統計信息和配置參數都可以通過基于Web的前

1/50

端頁面進行訪問。基于Web的前端頁面可以確保您從任何方面評估您的網絡狀態和服務器的健康性。適當的配置后,Zabbix可以在IT基礎架構監控方面扮演重要的角色。對于只有少量服務器的小型組織和擁有大量服務器的大型公司也同樣如此。

Zabbix是免費的。Zabbix是根據GPL通用公共許可證第2版編寫和發行的。這意味著它的源代碼都是免費發行的,可供公眾任意使用。

2.監控軟件區別

1.nagios圖形不是特別好,也可以安裝圖形插件,但是也不怎么好看2.nagios一般情況下如果需要圖形可以和cacti配合使用3.cacti的監控是輪詢監控,效率低,圖形相對nagios比較好看
4.zabbix和nagios因為是并發監控,對cpu的要求更高
5.zabbix在性能和功能上都強大很多
6.zabbix的圖形相當漂亮7.支持多種監控方式 zabbix-agent snmp 等等
8.支持分布式監控,能監控的agent非常多9.zabbix有圖形的web配置界面,配置簡潔
10.zabbix支持自動發現功能

zabbix概述

一:zabbix 監控架構
監控中心zabbix-server
|


| |

---proxy--- ---proxy---

| | | |

agent agent agent agent

二:zabbix 監控郵件報警架構
postfix
郵局(MTA)------郵遞員(smtp 25)------郵局(MTA)

| |

MDA maildrop dovecote MDA

| |
郵遞員(smtp 25) 郵遞員(pop3 110 imap 143)
| dns |
郵筒(MUA) 郵筒(MUA)

| |

2/50

lilei(user1) hanmeimei(user2)

agent 代理 proxy 代理

三:Zabbix 優點

開源,無軟件成本投入 Server 對設備性能要求低
支持設備多,自帶多種監控模板支持分布式集中管理,有自動發現功能,可以實現自動化監控開放式接口,擴展性強,插件編寫容易

當監控的 item 比較多服務器隊列比較大時可以采用被動狀態,被監控客戶端主動 從server 端去下載需要監控的 item 然后取數據上傳到 server 端。 這種方式對服務器的負載比較小。
Api 的支持,方便與其他系統結合

四:Zabbix 缺點需在被監控主機上安裝 agent,所有數據都存在數據庫里, 產生的數據據很大,瓶頸主要在數據庫。

五:Zabbix 監控系統監控對象
數據庫: MySQL,MariaDB,Oracle,SQL Server
應用軟件:Nginx,Apache,PHP,Tomcat agent

集群: LVS,Keepalived,HAproxy,RHCS,F5

虛擬化: VMware,KVM,XEN agent
操作系統:Linux,Unix,Windows性能參數

硬件: 服務器,存儲,網絡設備 IPMI
網絡: 網絡環境(內網環境,外網環境) SNMP


六:Zabbix 架構

Zabbix由幾個主要的軟件組件構成,這些組件的功能如下。

3/50

1、Server

Zabbix server 是agent程序報告系統可用性、系統完整性和統計數據的核心組件,是所有配置信息、統計信息和操作數據的核心存儲器。

2、數據庫存儲所有配置信息和Zabbix收集到的數據都被存儲在數據庫中。

3、Web界面
為了從任何地方和任何平臺都可以輕松的訪問Zabbix, 我們提供基于Web的Zabbix界面。該界面是
Zabbix Server的一部分,通常(但不一定)跟Zabbix Server運行在同一臺物理機器上。
如果使用SQLite,Zabbix Web界面必須要跟Zabbix Server運行在同一臺物理機器上。

4、Proxy 代理服務器

Zabbix proxy 可以替Zabbix Server收集性能和可用性數據。Proxy代理服務器是Zabbix軟件可選擇部署的一部分;當然,Proxy代理服務器可以幫助單臺Zabbix Server分擔負載壓力。

5、Agent監控代理
Zabbix agents監控代理 部署在監控目標上,能夠主動監控本地資源和應用程序,并將收集到的數據報告給Zabbix Server。

6、數據流
此外,了解Zabbix內部的數據流同樣很重要。監控方面,為了創建一個監控項(item)用于采集數據,必
須先創建一個主機(host)。告警方面,在監控項里創建觸發器(trigger),通過觸發器(trigger)來觸發告警動作(action)。 因此,如果你想收到Server XCPU負載過高的告警,你必須: 1. 為Server X創建一個host并關聯一個用于對CPU進行監控的監控項(Item)。 2. 創建一個Trigger,設置成當CPU負載過高時會觸發 3.
Trigger被觸發,發送告警郵件 雖然看起來有很多步驟,但是使用模板的話操作起來其實很簡單,Zabbix這樣的設計使得配置機制非常靈活易用。

七:Zabbix常用術語的含義

1、主機 (host)

4/50

一臺你想監控的網絡設備,用IP或域名表示

2、主機組 (host group)

主機的邏輯組;它包含主機和模板。一個主機組里的主機和模板之間并沒有任何直接的關聯。通常在給不同用戶組的主機分配權限時候使用主機組。

3、監控項 (item)

你想要接收的主機的特定數據,一個度量數據。

4、觸發器 (trigger)

一個被用于定義問題閾值和“評估”監控項接收到的數據的邏輯表達式 當接收到的數據高于閾值時,觸發器從“OK”變成“Problem”狀態。當接收到的數據低于閾值時,觸發器保留/返回一個“OK”的狀態。

5、事件 (event)

單次發生的需要注意的事情,例如觸發器狀態改變或發現有監控代理自動注冊

6、異常 (problem)

一個處在“異常”狀態的觸發器

7、動作 (action)

一個對事件做出反應的預定義的操作。 一個動作由操作(例如發出通知)和條件(當時操作正在發生)組

8、升級 (escalation)
一個在動作內執行操作的自定義場景; 發送通知/執行遠程命令的序列

9、媒介 (media)

發送告警通知的手段;告警通知的途徑

10、通知 (notification)

利用已選擇的媒體途徑把跟事件相關的信息發送給用戶

11、遠程命令 (remote command)

一個預定義好的,滿足一些條件的情況下,可以在被監控主機上自動執行的命令

12、模版 (template)

一組可以被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,LLD,Web場景)的集合模版的任務就是加快對主機監控任務的實施;也可以使監控任務的批量修改更簡單。模版是直接關聯到每臺單獨的主機上。

13、應用 (application)

一組監控項組成的邏輯分組

14、web 場景 (web scenario)

利用一個或多個HTTP請求來檢查網站的可用性

15、前端 (frontend) Zabbix提供的web界面

16、Zabbix API
Zabbix API允許你使用JSON RPC協議 (是一個無狀態且輕量級的遠程過程調用(RPC)傳送協議,其傳遞內容透過 JSON 為主) 來創建、更新和獲取Zabbix對象(如主機、監控項、圖形和其他)信息或者執行任何其他的自定義的任務

17、Zabbix server
Zabbix軟件實現監控的核心程序,主要功能是與Zabbix proxies和Agents進行交互、觸發器計算、發送告警通知;并將數據集中保存等

18、Zabbix agent
一個部署在監控對象上的,能夠主動監控本地資源和應用的程序 Zabbix agent部署在監控的目標上,主動監測本地的資源和應用(硬件驅動,內存,處理器統計等)。 Zabbix agent收集本地的操作信息并將數據

5/50

報告給Zabbix server用于進一步處理。一旦出現異常 (比如硬盤空間已滿或者有崩潰的服務進程), Zabbix

server會主動警告管理員指定機器上的異常。. Zabbix agents 的極端高效緣于它可以利用本地系統調用來完成統計數據的收集。

19、被動(passive)和主動(active)檢查

Zabbix agents可以執行被動和主動兩種檢查方式。 在passive check 模式中agent應答數據請求, Zabbix server(或者proxy)詢問agent數據,如CPU 的負載情況,然后Zabbix agent回送結果。 Active checks
處理過程將相對復雜。 Agent必須首先從Zabbix sever索取監控項列表以進行獨立處理,然后周期性地發送新的值給server。 執行被動或主動檢查是通過選擇相應的監測項目類型來配置的。item type. Zabbix agent
處理監控項類型有’Zabbix agent’和’Zabbix agent (active)’。

20、Zabbix proxy 一個幫助Zabbix Server收集數據,分擔Zabbix Server的負載的程序 Zabbix Proxy是一個可以從一個或多
個受監控設備收集監控數據,并將信息發送到Zabbix sever的進程,基本上是代表sever工作的。 所有收集的數據都在本地進行緩存,然后傳送到proxy所屬的Zabbix sever。 部署Proxy是可選的,,但是可能非常有益于分散單個Zabbix sever的負載。 如果只有proxy收集數據,sever上的進程就會減少CPU消耗和磁盤I / O負
載。 Zabbix proxy是完成遠程區域、分支機構、沒有本地管理員的網絡的集中監控的理想解決方案。
Zabbix proxy需要使用獨立的數據庫。

21、主動/被動模式
主動、被動模式都是相對于proxy來說的。proxy主動發送數據就是主動模式;proxy等待server的請求,再發
送數據就是被動模式。因為主動模式可以有效減輕zabbix server壓力,需要監控的東西很多時一定要把監控模式更改為主動監控被動模式流程,被動模式一定要記得設置Server = ServerIP

被動模式工作流程: Server 打開一個TCP連接
Server發送一個key 為agent.ping Agent接受這個請求,然后響應< HEADER >< DATALEN > Server對接受到的數據進行處理TCP連接關閉

主動模式流程,主動模式一定要記得設置ServerActive=ServerIP Agent向Server建立一個TCP連接
Agent請求需要檢測的數據列表
Server響應Agent,發送一個Items列表
Agent允許響應
TCP連接完成本次會話關閉
Agent開始周期性地收集數據

zabbix部署

1、實驗準備

centos7.5 系統服務器3臺、 一臺作為監控服務器, 兩臺臺作為被監控節點, 配置好yum源、 防火墻關閉、 各節點時鐘服務同步、 各節點之間可以通過主機名互相通信。

1)所有機器關閉防火墻和selinux setenforing 0 (修改配置文件關閉)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld.service

2)根據架構圖,實驗基本設置如下:

機器名稱 IP配置 服務角色 備注
server 192.168.19.137 zabbix-server 開啟監控功能
node1 192.168.19.135 zabbix-agent 開啟
node2 192.168.19.136 zabbix-agent 開啟

2、Zabbix的安裝
1)更新yum倉庫
我們去官網下載一個包zabbix-release-3.4-2.el7.noarch.rpm,本地安裝至我們的虛擬機,這樣,我們本地就有了新的yum源,可以直接安裝zabbix服務: yum -y install wget

wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

安裝zabbix源(官方)
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm http://120.52.51.16/repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-agent-4.2.0-0.1alpha1.el7.x86_64.rpm

下載安裝:

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
而后更新我們的yum倉庫:
[root@server ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
zabbix-non-supported 4/4
repo id repo name status
base base 9,363

7/50

epel epel 11,349
zabbix/x86_64 Zabbix Official Repository - x86_64 80
zabbix-non-supported/x86_64 Zabbix Official Repository non-supported - 4
repolist: 20,796

安裝:

[root@server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

2)安裝設置數據庫:
1、創建 mariadb.repo
vim /etc/yum.repos.d/mariadb.repo
寫入以下內容:
[mariadb]

name = MariaDB

baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 2、yum 安裝最新版本 mariadb

yum install MariaDB-server MariaDB-client

首先,我們修改一下配置文件——/etc/my.cnf.d/server.cnf:
[root@server ~]# vim /etc/my.cnf.d/server.cnf
[mysqld] #跳過主機名解析

skip_name_resolve = ON
innodb_file_per_table = ON # #緩存池大小
innodb_buffer_pool_size = 256M
max_connections = 2000 #最大連接數
log-bin = master-log #開啟二進制日志
2、重啟我們的數據庫服務:
[root@server ~]# systemctl restart mariadb
[root@server ~]# mysql_secure_installation #初始化mariadb
3、創建數據庫并授權賬號
MariaDB [(none)]> create database zabbix character set 'utf8'; # 創建zabbix數據庫
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.19.%' identified by 'passswd'; # 注意
授權網段
MariaDB [(none)]> flush privileges; # 刷新授權

4、導入表

[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: #輸入密碼
導入以后,我們進去數據庫查看一下:

[root@zabbix-server zabbix-server-mysql-3.4.15]# mysql -uzabbix -p Enter password:

MariaDB [(none)]> show databases;

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
MariaDB [(none)]> use zabbix;

Database changed

MariaDB [zabbix]> show tables;

+----------------------------+

| Tables_in_zabbix |

8/50

+---------------------------- +
| acknowledges |
| actions |
.....
| proxy_dhistory |
| proxy_history |
| regexps |
| rights |
| screen_user |
+---------------------------- +
140 rows in set (0.001 sec)

5.配置zabbix server
我們的數據庫準備好了以后,我們要去修改server端的配置文件。
[root@zabbix-server ~]# cd /etc/zabbix/ [root@zabbix-server zabbix]# ls

web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
#為了方便我們以后恢復,我們把配置文件備份一下

[root@zabbix-server zabbix]# cp zabbix_server.conf zabbix_server.conf.bak [root@zabbix-server zabbix]# vim zabbix_server.conf DBHost=localhost #數據庫對外的主機 DBName=zabbix #數據庫名稱

DBUser=zabbix #數據庫用戶 DBPassword=zabbix #數據庫密碼
#這里的配置文件打開后:如果有的就不用添加了。如果是注釋了的也不用取消注釋。直接把內容復制粘貼過去就可以 了。

以上,我們的基本配置已經完成,可以開啟服務了:

[root@zabbix-server zabbix]# systemctl start zabbix-server [root@zabbix-server zabbix]# systemctl enable zabbix-server

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/ system/zabbix-server.service.
開啟服務以后,我們一定要去確認一下我們的端口有沒有開啟:

[root@zabbix-server zabbix]# netstat -lntp | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0: LISTEN 1574/zabbix_server
tcp6 0 0 :::10051 :::
LISTEN 1574/zabbix_server

6.配置web GUI

有一個/etc/httpd/conf.d/zabbix.conf文件,這個配置文件就是幫我們做映射的文件 [root@zabbix-server zabbix]# vim /etc/httpd/conf.d/zabbix.conf #設置時區
#里面基本不用動。只需要添加一行時區即可 php_value date.timezone Asia/Shanghai ---添加如下接下來,我們就可以啟動我們的httpd服務了:
[root@zabbix-server zabbix]# systemctl start httpd [root@zabbix-server zabbix]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/ httpd.service.
我們的服務已經開啟,接著我們就可以用瀏覽器來訪問了。

7.瀏覽器訪問并進行初始化設置圖片略http://192.168.122.166/zabbix/setup.php
默認用戶名:Admin
默認密碼:zabbix

8.配置zabbix agent

當我們把監控端配置啟動以后,我們需要來設置一下我們的被監控端,我們在被監控的主機安裝好agent,設置好他的server,并把他添加到server端,就能將其納入我們的監控系統中去了。
1)安裝 zabbix
同樣的,我們先來安裝zabbix。兩臺機器都操作

[root@zabbix-agent-none1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

9/50

[root@zabbix-agent-none1 ~]# yum install zabbix-agent -y
安裝完成以后,我們去修改配置文件。

2)修改配置文件
對配置文件做一個備份,然后去修改配置文件:

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/ [root@zabbix-agent-none1 zabbix]# ls zabbix_agentd.conf zabbix_agentd.d

[root@zabbix-agent-none1 zabbix]# cp zabbix_agentd.conf{,.bak} [root@zabbix-agent-none1 zabbix]# ls

zabbix_agentd.conf zabbix_agentd.conf.bak zabbix_agentd.d

[root@zabbix-agent-none1 zabbix]# vim zabbix_agentd.conf ----修改如下 Server=192.168.246.228 zabbix服務器的地址 ServerActive=192.168.246.228 主動模式 zabbix-server-ip Hostname=zabbix-agent-none1
UnsafeUserParameters=1 是否限制用戶自定義 keys 使用特殊字符 1是可以啟用特殊字符 0是不可以啟用特殊字符

修改完成之后,我們保存退出。然后就可以啟動服務了:

[root@zabbix-agent-none1 zabbix]# systemctl start zabbix-agent [root@zabbix-agent-none1 zabbix]# systemctl enable zabbix-agent
照例查看端口是否已開啟

[root@zabbix-agent-none1 zabbix]# netstat -lntp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0: LISTEN 9369/zabbix_agentd
tcp6 0 0 :::10050 :::
LISTEN 9369/zabbix_agentd
已經開啟成功。接著,我們就可以去server端添加了。none2也進行同樣的操作,唯一不同的就是配置文件中的Hostname要設為zabbix-agent-none2。

zabbix使用(一)

1)修改密碼及中文版

作為一只英語不好的運維,這里悄悄改成了中文版,如果大家英語好的話看英文版即可,英語不好就改了吧,畢竟中文版比較適合初學者更快的學習~

記得刷新!
按如上操作即可,選擇中文以后,點擊下面的update即可更新成功,更新過后是這樣子的~

同樣的,為了安全起見,我們把密碼改掉:修改完成后同樣點擊更新即可。

2)創建主機及主機群組我們先來定義一個主機群組:

然后我們就可以去添加主機了:
當然,上面有很多選擇卡,有一個加密:

10/50

設置完成后,點擊添加。我們就可以看到,我們添加的這個主機已經出現在列表中了:

3)監控項(items)
創建監控項來確定我們要監控被監控端的內容

事實上,我們關注的指標有很多種,我們一一添加進來即可。

剛剛我們定義的監控項是很簡單的,指定一個key即可,但是有些監控項是帶有參數的,這樣一來,我們的監控項就有更多的靈活性。

net.if.out[if,<mode>] 上行流量統計
參數 注釋

net.if.in[if,<mode>] 網絡接口上傳流量統計。返回 整數

圖中的[]就是需要參數的意思,里面的值即為參數,帶<>為不可省略的。我們就以這個例子來說

明:

if表示是接口名;<mode>表示是那種模式,包括但不限于:packets(包)、bytes(字節)、errors(錯誤)、dropped(丟包)(上述內容通過ifconfig查看)

命令方式查看:

[root@zabbix-server zabbix]# zabbix_get -s 192.168.122.167 -p 10050 -k "net.if.in[eth0,packets]"

擴展(名詞解釋):

上行流量就是本機向inter網發送的字節數下行流量就是從網絡中下載的字節數

[root@xingdian-cloud yum.repos.d]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.122.167 netmask 255.255.255.0 broadcast 192.168.122.255 inet6 fe80::46ba:6fa0:e1e6:8644 prefixlen 64 scopeid 0x20<link>

inet6 fe80::62ba:7626:1e71:fc5d prefixlen 64 scopeid 0x20<link> ether 52:54:00:c1:95:58 txqueuelen 1000 (Ethernet)

RX packets 97856 bytes 649560808 (619.4 MiB) RX errors 0 dropped 11 overruns 0 frame 0 TX packets 70512 bytes 5823411 (5.5 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback)

RX packets 1795 bytes 176872 (172.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1795 bytes 176872 (172.7 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Rx Packets就是接收數據包的意思。
Tx Packets就是發送數據包的意思。
Rx Bytes就是接收比特位的意思。
Tx Bytes就是發送比特位的意思。

4)創建觸發器
創建觸發器來作為閥值或者預警線,來進行報警

監控項模板

agent.hostname 客戶端主機名。返回字符串
agent.ping 客戶端可達性檢查。返回 nothing - 不可達;
agent.version zabbix客戶端(agent)的版本。返回字符串
kernel.maxfiles 操作系統最大的文件打開數量。返回整數
kernel.maxproc 操作系統最大的進程數。返回整數
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>] 檢查 DNS 服務是否開啟。返回 0 - DNS 服務
敗);1 - DNS 服務開啟
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>] 執行DNS查詢。返回字符串信息
net.if.collisions[if] 網絡沖突數量。返回整型
net.if.in[if,<mode>] 網絡接口上傳流量統計。返回 整數
net.if.list 網絡接口列表(包括接口類型,狀態,IPv4
net.if.out[if,<mode>] 上行流量統計。返回整數
net.if.total[if,<mode>] 網絡接口上傳下載的流量總和。返回整數
net.tcp.listen[port] 檢查 TCP 端口 是否處于偵聽狀態。返回 0 -
net.tcp.port[<ip>,port] 檢查是否能建立 TCP 連接到指定端口。返回
net.tcp.service[service,<ip>,<port>] 檢查服務是否運行并接受 TCP 連接。返回 0
net.tcp.service.perf[service,<ip>,<port>] 檢查 TCP 服務的性能,當服務 down 時返回

net.udp.listen[port] 檢查 UDP 端口 是否處于偵聽狀態。返回 0 -
net.udp.service[service,<ip>,<port>] 檢查服務是否運行并響應 UDP 請求。返回 0
net.udp.service.perf[service,<ip>,<port>] 檢查 UDP 服務的性能,當服務 down 時返回
秒數

perf_counter[counter,<interval>] 所有Windows計數器值。返回 整形、浮點、
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>] CPU進程百分比。返回浮點值
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>] 進程內存,以字節為單位。返回整數
proc.num[<name>,<user>,<state>,<cmdline>] 進程數。返回整數
proc_info[process,<attribute>,<type>] 具體處理的各個信息。返回浮點數
sensor[device,sensor,<mode>] 硬件傳感器讀數。返回浮點型
service.info[service,<param>] 有關服務的信息。返回整數字段表示狀態,
顯示名,路徑,用戶; 文本 - 使用字段作為描
停,2 - 啟動掛起,3 - 暫停掛起,4 - 繼續掛

  • 未知,255 - 沒有這個服務;啟動碼:0 - 自
    禁用,4 - 未知
    services[<type>,<state>,<exclude>] 列表服務。返回0表示空,如果是列表則是每
    system.boottime 系統啟動時間。返回時間戳
    system.cpu.intr 設備的中斷數。返回整數
    system.cpu.load[<cpu>,<mode>] CPU 負載。返回浮點數
    system.cpu.num[<type>] CPU 數量,返回整數
    system.cpu.switches 上下文的數量進行切換。它返回一個整數值
    system.cpu.util[<cpu>,<type>,<mode>] CPU 使用率。返回浮點數
    system.hostname[<type>] 系統主機名。返回字符串
    system.hw.chassis[<info>] 機架信息。返回字符串
    鍵值 名稱

13/50

system.hw.cpu[<cpu>,<info>] CPU 信息。返回字符串或整數
system.hw.devices[<type>] PCI或者USB設備列表。返回文本
system.hw.macaddr[<interface>,<format>] MAC地址。返回字符串
system.localtime[<type>] 系統時間。返回的是UTC整數。是
system.run[command,<mode>] 即在主機上指定的命令的執行。
NOWAIT的模式,這將返回執行命
system.stat[resource,<type>] 系統統計數據。返回整數值或者
system.sw.arch 軟件架構信息。返回字符串
system.sw.os[<info>] 操作系統信息。返回字符串
system.sw.packages[<package>,<manager>,<format>] 安裝包列表。返回文本
system.swap.in[<device>,<type>] 在交換分區(swap)(從設備到內存
system.swap.out[<device>,<type>] 交換分區(從內存到設備)的統
system.swap.size[<device>,<type>] 交換分區空間大小,字節或從總
system.uname 識別系統。返回 字符串
system.uptime 系統啟動時間。返回整數
system.users.num 已登錄的用戶數量,返回整數
vfs.dev.read[<device>,<type>,<mode>] 磁盤讀取數據。類型是sectors, op
bps則返回浮點。
vfs.dev.write[<device>,<type>,<mode>] 磁盤寫入數據。類型是sectors, op
bps則返回浮點。
vfs.dir.count 目錄遞歸的條目數量。返回整數
[dir,<regex_incl>,<regex_excl>,<types_incl>,<types_excl>,<max_depth>,<min
_size>,<max_size>,<min_age>,<max_age>,<regex_excl_dir>]
vfs.dir.size 目錄大小(bytes)。返回整數
[dir,<regex_incl>,<regex_excl>,<mode>,<max_depth>,<regex_excl_dir>]
vfs.file.cksum[file] 文件效驗,unix標準算法。返回整
vfs.file.contents[file,<encoding>] 搜索文件內容。返回文本
vfs.file.exists[file] 檢查文件是否存在。返回 0 - 未找

vfs.file.md5sum[file] 文件的MD5校驗。返回字符串(
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>] 查找文件中的字符串,返回內容
參數

vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>] 查找文件中的字符串,如果有則
vfs.file.size[file] 文件大小(單位bytes)。返回整
vfs.file.time[file,<mode>] 文件事件信息,返回的是時間戳
vfs.fs.inode[fs,<mode>] 數或inode的百分比。返回數字,
vfs.fs.size[fs,<mode>] 磁盤容量。如果返回的是字節則
vm.memory.size[<mode>] 從字節或總百分比的內存大小。
返回浮點值。

vm.vmemory.size[<type>] 虛擬空間大小(以字節計)或百
web.page.get[host,<path>,<port>] 獲取網頁。返回信息為網頁源碼
web.page.perf[host,<path>,<port>] 全網頁加載時間(秒)。返回浮
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>] 查找網頁中的字符串,返回內容
參數

鍵值 名稱

wmi.get[<namespace>,<query>] 執行 WMI 查詢返回第一個對象。返回整形、浮點、字符串

zabbix.stats[<ip>,<port>] Returns a JSON object containing Zabbix server or proxy internal me

zabbix.stats[<ip>,<port>,queue,<from>,<to>] Number of items in the queue which are delayed in Zabbix server or "from" till "to" seconds, inclusive.
鍵值 名稱

zabbix使用(二)

案例:nginx監控nginx服務狀態一:前期環境準備:

yum -y install nginx systemctl start nginx

二:監控部署:
1.定義監控項 > 主機 > node1 ---> 監控項(items) > 創建監控項
進入 配置 --- --- ---

2.定義觸發器定義好了監控項以后,我們亦可來定義一個觸發器,當服務有問題的時候,我們才能及時知道:

進入 配置 ---> 主機 ---> none1 ---> 觸發器(trigger)---> 創建觸發器(為了快速獲取,選用最后一個
值為0就觸發)

15/50

3.創建圖形查看(zabbix可視化)

數據日積月累,如果我們想要更直觀的了解到各項數據的情況,圖形無疑是我們的最佳選擇。zabbix提示了眾多的可視化工具提供直觀展示。
自定義圖形中可以集中展示多個時間序列的數據流。支持“線狀圖(normal)”、“堆疊面積圖
(stacked)”、“餅圖(pie)” 和“分離型餅圖(exploded)”四種不同形式的圖形。

4.模擬服務宕掉

zabbix維護時間

添加維護期間:

維護期間(Maintenance)指的是服務器定期維護的時間段。Zabbix 可以設置在這個時間段里不需報警。

點擊配置->維護->創建維護時段

16/50

以上頁面配置項的含義為:名稱:該維護配置的名稱。
維護類型:該時間段內是否需要采集數據,一般選擇不采集。
作用中從/直到:該維護配置生效的時間范圍。

以上頁面配置項的含義為:
期間類型:配置維護的時間是一次性的還是循環性的。可選一次性/每日/每周/每月。
日期/每日/每周/每月:設置執行維護的時間。
維護期間長度:維護的時間長度。

17/50

以上頁面配置項的含義為:
維護中主機: 哪些主機在該維護期間進行維護。
維護中的組: 哪些主機組在該維護期間進行維護。

zabbix微信報警

一:企業微信部署使用
1.下載企業微信
2.創建企業
3.創建企業應用我的企業

CorpID wwf59d011ead30f194 AgentId 1000002

Secret 4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A

部門id 2 云計算部

18/50

建立連接:獲取AccessToken請求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?
corpid=wwa1da242f211cdf47&corpsecret=rIrN51FEjgW6T2bdmSaEoN8s_mMW-Nu7gHysmagfdXc 返回結果: HTTP/1.1 200 OK
Connection: keep-alive

Error-Code: 0

Error-Msg: ok

Content-Type: application/json; charset=UTF-8

Content-Length: 277

{"errcode":0,"errmsg":"ok","access_token":"9O7DSEqnUsQ8MD2bRGfFs26cabY1XcGErPnnJF_mfBBnI5zsM2I3u9-9Sj0tA ggY6BahOByGZvzDNaFoJj3YTp5blSPkm9exizerPUpDZNiGXtw","expires_in":7200}

二:配置監控腳本

19/50

python監控腳本:

有4個地方需要修改,找到他們修改成之前獲取的信息 self.corpid = 'wwf59d011ead30f194' //公司的corpid
self.
secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A' //應用的secret 'toparty':2, //部門id
'agentid':"1000002", //應用id

[root@ansible alertscripts]# cat wechat.py #!/usr/bin/env python

-- coding: utf-8 --

import urllib,urllib2,json import sys

reload(sys) sys.setdefaultencoding( "utf-8" )

class WeChat(object): __token_id = ''

init attribute

def init(self,url): self.__url = url.rstrip('/')

self.__corpid = 'wwf59d011ead30f194'

self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A'

Get TokenID def authID(self):

params = {'corpid':self.corpid, 'corpsecret':self.secret} data = urllib.urlencode(params)

content = self.getToken(data)

try:

self.__token_id = content['access_token']

print content['access_token'] except KeyError:

raise KeyError

Establish a connection

def getToken(self,data,url_prefix='/'):

url = self.__url + url_prefix + 'gettoken?' try:

response = urllib2.Request(url + data) except KeyError:

raise KeyError

result = urllib2.urlopen(response) content = json.loads(result.read()) return content

Get sendmessage url

def postData(self,data,url_prefix='/'):

url = self.url + url_prefix + 'message/send?access_token=%s' % self.token_id request = urllib2.Request(url,data)

try:

result = urllib2.urlopen(request)

20/50

except urllib2.HTTPError as e: if hasattr(e,'reason'):

print 'reason',e.reason elif hasattr(e,'code'):

print 'code',e.code return 0

else:

content = json.loads(result.read()) result.close()

return content

send message

def sendMessage(self,touser,message): self.authID()

data = json.dumps({ 'touser':touser, 'toparty':11, 'msgtype':"text", 'agentid':"1000002", 'text':{

'content':message

},

'safe':"0" },ensure_ascii=False) response = self.postData(data) print response

if name == 'main':

a = WeChat('https://qyapi.weixin.qq.com/cgi-bin') a.sendMessage(sys.argv[1],sys.argv[3])

修改權限:

[root@ansible alertscripts]# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py [root@ansible alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/wechat.py

測試腳本:下面的invalidparty可以忽略 ,如果正常會收到消息如下圖

[root@ansible alertscripts]# ./wechat.py Zhuangyao test test {u'invalidparty': u'2', u'invaliduser': u'wusong', u'errcode': 0, u'errmsg': u'ok'}

三:zabbix配置微信報警:

創建報警媒介:

管理->報警媒介類型->創建媒體類型

zabbix 3.0 以上需要在為alert腳本定義參數,以前的版本參數都固定的,現在用戶可以自己定義命令行的參數了。添加的參數也就是腳本中的$1、$2、$3等。{ALERT.SENDTO} {ALERT.SUBJECT}
{ALERT.MESSAGE}

21/50

創建用戶:Administration-->Users-->Media-->add (注意創建用戶時把權限設置為超級管理員或者管理
員)
為用戶關聯報警媒介:收件人為企業郵箱中的賬戶

22/50

添加動作,觸發條件后報警后發送微信消息。

Configuration-->Actions-Event source(Triggers)-Create action

23/50

恢復操作和確認操作都可以配置,同上

全部配置完成后, 重新設定觸發器的值模擬報警產生,檢測微信報警是否成功!

問題

問題1:

在使用zabbix圖形時,發現有中文亂碼如何解決?解決方案:
在/usr/share/zabbix/assets/fonts目錄下,將原來的字符集文件刪掉或者重新修改文件名讓其失去效果,重新上傳新的字符集文件,上傳成功后重新刷新界面即可.

24/50

報警格式化文檔

郵件內容:
名稱:Action-Email

默認接收人:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

默認信息:
告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

zabbix公網郵箱報警

郵件系統簡要介紹:
電子郵件系統包括兩個組件:MUA(Mail User Agent,郵件用戶代理)和MTA(Mail Transport Agent,郵件傳

送代理)MUA是郵件系統為用戶提供的可以讀寫郵件的界面;而MTA是運行在底層,能夠處理郵件的收發工作的程序。簡單的說,用戶可以 使用MUA寫信、讀信、而通過MTA收信、發信。Foxmail、Outlook、Webmail都屬于MUA。
郵件的接收是MTA和MUA配合完成的。遠程的MUA首先向遠程MTA連接并驗證發信人身份,然后由遠程MTA向本地MTA發送郵件。接受者通過本 地MUA接收閱讀郵件。郵件的發信也是MTA和MUA配合完成的,不過方向正好相反。本地MUA首先向本地的MTA連接并驗證發信人身份,然后由本地 MTA向遠程MTA發送郵
件,再由遠程的MUA讀取郵件。
mail和mailx即為負責查看、編寫郵件和向MTA發送郵件的MUA。mailx是mail的功能加強版。sendmail即為負責郵件在網絡上傳輸的MTA,將郵件從一個MTA傳送至另一個MTA。

開干:
1.注冊163郵箱

2.網頁郵箱設置客戶端授權密碼

安裝MUA軟件:mailx
#yum install mailx

#mail -V

12.5 7/5/10

mailx -V 12.5 7/5/10

配置公網郵箱信息:

vim /etc/mail.rc 追加以下內容 set from=lisi@163.com(郵箱地址)

set smtp=smtp.163.com(smtp服務器) set smtp-auth-user=lisi@163.com(用戶名) set smtp-auth-password=*(授權郵箱密碼) set smtp-auth=login

使用mailx發郵件的方式:
方式1:mailx -s "郵件標題" 收件箱Email < 包含正文的文件
方式2:cat 包含正文的文件 | mailx -s "郵件標題" 收件箱Email
方式3:echo "正文內容" | mailx -s "郵件標題" 收件箱Email
方式4:mailx -s "郵件標題" 收件箱Email,回車按CTRL+D發送

手動發送郵件測試:

mailx -v -s 'hello' 'zhangsan@163.com' nihao (回車,然后ctrl+D

EOT

25/50

或者,將郵件內容放到一個文件中content.txt

#cat content.txt | mailx -v -s ‘hello’ ‘zhangsan@163.com’

手動使用mailx發送郵件測試結果:

zabbix添加郵件報警功能:
注:使用新的方式--利用公網郵件服務器發送報警,需要關閉postfix服務

配置 zabbix 的郵件報警功能需要以下三個角色的參與。
1、 示警媒體(Media)
2、 觸發器(Triggers)
3、 動作(Action)

示警媒體:

指的是 zabbix 采用何種方式進行報警,目前 Zabbix 支持的示警媒體包括郵件、Jabber、短信。jabber是linux下一種即時通訊工具,可以和yahoo,icq等工具通信

觸發器:
指的是當監控對象達到某個條件或條件集合的時候,觸發 Zabbix 產生事件。

動作:
指的是 Zabbix 產生對應事件后,它通過示警媒體發送報警。

接下來,我們配置一個郵件報警功能的范例。效果是當 WEB 頁面獲取時間超過 3 秒,則觸發報警,管理員將會收到一封 Zabbix 發出的報警郵件。

示警媒體的配置:
首先需要配置 Zabbix 的郵件功能。
點擊 管理->報警媒介類型->創建媒體類型

26/50

然后在頁面中填入你的報警媒介類型信息,例如下圖所示:
注:腳本名稱任意,存放于/usr/lib/zabbix/alertscripts (生產上的測試服放這:/usr/local/zabbix/share/zabbix/ alertscripts)

名稱:sendmail //名稱任意
類型:腳本
腳本名稱:sendmail.sh //一定要寫,否則可能發送不成功
腳本參數:
{ALERT.SENDTO} //照填,收件人變量
{ALERT.SUBJECT} //照填,郵件主題變量,變量值來源于‘動作’中的‘默認接收人’
{ALERT.MESSAGE} //照填,郵件正文變量,變量值來源于‘動作’中的‘默認信息’

配置完成后,不要忘記點擊存檔,保存你的配置。

修改zabbix服務端配置文件&編寫腳本:指定腳本的存儲路徑:
#vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts

27/50

編寫郵件腳本:
#cd /usr/lib/zabbix/alertscripts #vim sendmail.sh

#!/bin/sh

echo "$3" | sed s/'\r'//g | mailx -s "$2" $1

修改權限:

#chmod u+x sendmail.sh && chown zabbix.zabbix sendmail.sh

模擬報警產生,檢查郵箱是否收到郵件

企業級zabbix電話報警

本項目(行癲)親測

項目簡介:
系統版本:Linux Centos 7.6
應用版本:Zabbix 4.2
數據庫:mariadb
Onealert官方網址:http://www.onealert.com/

服務部署:

一:部署zabbix-server 1.部署zabbix的yum倉庫
[root@xingdian ~] # rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm 2.清空yum緩存 [root@xingdian ~] # yum clean all

[root@xingdian ~] # yum makecache 3.安裝zabbix-server和zabbix-agent
[root@xingdian ~] # yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent 4.安裝數據庫服務(可選用mysql或者mariadb)
[root@xingdian ~] # yum -y install mariadb-server mariadb
5.部署數據庫服務

[root@xingdian ~] #mysqladmin -u root -p'password' mysql>create database zabbix character set utf8 collate utf8_bin;

msyql>grant all privileges on zabbix. to zabbix@localhost identified by 'password'; mysql> quit;
6.數據庫數據導入
[root@xingdian ~] # zcat /usr/share/doc/zabbix-server-mysql
/create.sql.gz | mysql -uzabbix -p zabbix 7.修改zabbix配置文件 [root@xingdian ~] # vim /etc/zabbix/zabbix_server.conf

DBPassword=password 8.修改apache配置文件(修改時區)
[root@xingdian ~] # vim /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/ShangHai
9.啟動服務并做開機啟動
[root@xingdian ~] # systemctl restart zabbix-server zabbix-agent httpd [root@xingdian ~] # systemctl enable zabbix-server zabbix-agent httpd

二:部署電話報警(Onealert)

注意: 這里可以使用阿里云、華為云等公有云的語音服務,但是需要企業認證。

1.切換到zabbix腳本目錄 [root@xingdian ~] # cd /lib/zabbix/alertscripts/ 2.獲取取OneITSM agent包

28/50

[root@xingdian ~] #wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz
3.解壓、安裝

[root@xingdian ~] # tar -xzf ca_zabbix_release-2.1.0.tar.gz 4.執行oneitsm
[root@xingdian ~] # cd cloudalert/bin
[root@xingdian ~] # bash install.sh 7c5df639-4476-4e1a-bc7c-eb8f9362d919

注意:后面的應用 Key從Onealter的配置中獲取(獲取方式見第三步)
5.安裝過程中需要輸入zabbix的管理地址,格式:http://zabbix_server_ip/zabbix
6.輸入zabbix的管理員賬戶和密碼
7當提示"安裝成功"時表示安裝成功!驗證告警集成
產生新的zabbix告警(problem),動作狀態為“已送達”表示集成成功。
三:Onealter圖形化部署
1.配置策略:用戶圖標---個人中心---告警通知策略注意:在這有三個時段,分別對應企業中報警發生的三個不同時段。告警發生時:發生報警的一瞬間告知管理人員告警確認時:報警信息被管理確認時關閉告警時:警報解除時注意:這這里有四種告警方式。

郵件通知
電話通知
App通知
短信通知

2.電話報警關聯zabbix

3.分派策略:配置---分派策略注意:根據公司不同的崗位職責,分配到不同的員工。

29/50

4.zabbix產生報警信息驗證電話報警

5.收到電話報警

30/50

zabbix報警基于釘釘

1,安裝釘釘---注冊釘釘賬號。

首先創建一個群聊把需要得到監控信息的人加到一起.在釘釘上面添加一個機器人.

31/50

32/50

33/50

因為是通過釘釘的wbehook實現報警就是一個api

釘釘已經配置好了!

========================================================

2登陸zabbix-server的機器創建python腳本:

[root@zabbixserver-01 ~]# cd /usr/lib/zabbix/alertscripts/ [root@zabbixserver-01 alertscripts]# vim dingding.py #!/usr/bin/python

-- coding: utf-8 --import requests import json

import sys import os

headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "" ---這里就是剛才復制釘釘的那個webhook

def msg(text): json_text= { "msgtype": "text",

"at": {

34/50

"atMobiles": [

""

],

}, "text": {

"content": text

}

}

print requests.post(api_url,json.dumps(json_text),headers=headers).content

if name == 'main': text = sys.argv[1] msg(text)

設置權限

[root@zabbixserver-01 alertscripts]# chmod 777 dingding.py
創建釘釘的日志文件:
[root@zabbixserver-01 zabbix]# pwd /var/log/zabbix

[root@zabbixserver-01 zabbix]# touch dingding.log
修改屬組和屬主:
[root@zabbixserver-01 zabbix]# chown zabbix.zabbix dingding.log

======================================================

由于之前已經配置好監控項和觸發器了。就直接配置zabbix的報警媒介開始配置web界面:

35/50

36/50

添加用戶和報警等級。

37/50

40/50

看釘釘群:

用戶參數

1、介紹和用法
① 介紹

自定義用戶參數,也就是自定義key有時,你可能想要運行一個代理檢查,而不是Zabbix的預定義
你可以編寫一個命令來檢索需要的數據,并將其包含在代理配置文件("UserParameter"配置參數)的用戶參數

用法格式 syntax UserParameter=<key>,<command>
A user parameter also contains a key 一個用戶參數也包含一個鍵

The key will be necessary when configuring an item 在配置監控項時,key是必需的 Note: Need to restart the agent 注意:需要重新啟動agent 服務

2、用法展示
(1)修改agent 端的配置,設置用戶參數①自己需要查找的參數的命令

[root@zabbix-agent-none1 ~]# free | awk '/^Mem/{print $3}'

② 修改配置文件,把查找參數的命令設為用戶參數

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf UserParameter=memory.used,free | awk '/^Mem/{print $3}' ③ 重啟agent 服務

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service (2)在zabbix-server 端,查詢 [root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.used"

(3)在監控上,設置一個item監控項,使用這個用戶參數配置-->主機-->none1-->監控項-->創建監控項(4)查詢graph 圖形

41/50

3、用法升級

(1)修改agent 端的配置,設置用戶參數 ① 命令行查詢參數的命令
② 修改配置文件,把查找參數的命令設為用戶參數

[root@zabbix-agent-none1 zabbix_agentd.d]# ls memory_usage.conf userparameter_mysql.conf

[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf ----繼續添加 UserParameter=memory.stats[],cat /proc/meminfo | awk '/^$1/{print $$2}' --添加到文件中注意去掉反斜杠 [root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service
注意:$$2:表示不是前邊調位置參數的$1,而是awk 的參數$2
注意:$1是調用前邊的[
],位置參數,第一個參數(2)在zabbix-server 端,查詢使用這個用戶參數的key
傳參:
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[MemTotal]" 999696

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Cache]" 243832

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Buffer]" 2108
(3)在監控上,設置一個item監控項,使用這個用戶參數
① 添加Memory Total 的item監控項,使用memory.stats[MemTotal] 的用戶參數在進程中定義倍數,規定單位

② clone 克隆Memory Total 創建Memory Free 的監控項 memory.stats[MemFree] 用戶參數

(4)上面2個監控項的graph 圖形

① memory total

② memory free

4、使用用戶參數監控php-fpm 服務的狀態

監控php-fpm

在agent 端:192.168.246.226(1)下載,設置php-fpm
[root@zabbix-agent-none1 ~]# yum -y install php-fpm php [root@zabbix-agent-none1 ~]# vim /etc/php-fpm.d/www.conf #修改如下 user = nginx

group = nginx

pm.status_path = /php-fpm-status #php-fpm 的狀態監測頁面 ,#打開注釋并修改 ping.path = /ping #ping 接口,存活狀態是否ok #打開注釋 ping.response = pong #響應內容pong #打開注釋

[root@zabbix-agent-none1 ~]# systemctl start php-fpm

(2)設置nginx ,設置代理php,和php-fpm的狀態頁面匹配

42/50

[root@zabbix-agent-none1 ~]# vim /etc/nginx/nginx.conf

server {

listen 80 default_server;

listen [::]:80 default_server;

servername ;

root /usr/share/nginx/html;

Load configuration files for the default server block. include /etc/nginx/default.d/*.conf;

location / {

}

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

location ~* /(php-fpm-status|ping) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params;

access_log off; #訪問這個頁面就不用記錄日志了

}

}

[root@zabbix-agent-none1 ~]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful [root@zabbix-agent-none1 ~]# nginx -s reload
(3)在agent 端,設置用戶參數
① 查詢 curl 192.168.246.226/php-fpm-status

pool – fpm池子名稱,大多數為www process manager – 進程管理方式,值:static, dynamic or ondemand. dynamic
start time – 啟動日期,如果reload了php-fpm,時間會更新 start since – 運行時長 accepted conn – 當前池子接受的請求數
listen queue – 請求等待隊列,如果這個值不為0,那么要增加FPM的進程數量 max listen queue – 請求等待隊列最高的數量 listen queue len – socket等待隊列長度 idle processes – 空閑進程數量 active processes – 活躍進程數量

total processes – 總進程數量 max active processes – 最大的活躍進程數量(FPM啟動開始算)
max children reached - 大道進程最大數量限制的次數,如果這個數量不為0,那說明你的最大進程數量太小了,請改大一點。 slow requests – 啟用了php-fpm slow-log,緩慢請求的數量

② 設置

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent-none1 zabbix_agentd.d]# vim php_status.conf ---添加
UserParameter=php-fpm.stats[],curl -s http://192.168.246.226/php-fpm-status | awk '/$1/{print $$NF}'
#設置用戶參數為php-fpm.stats[
],$1為第一個參數;$$NF為awk中的參數
③ 重啟服務

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent

(4)在zabbix-server 端,查詢使用這個用戶參數的key [root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[idle]" 4

43/50

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[max active]" 1

(5)創建一個模板,在模板上創建item監控項,使用定義的用戶參數

① 創建一個模板

② 在模板上配置items 監控項,使用剛定義的用戶參數配置---模板--fpm status---監控項--創建監控項 fpm.stats[total processes] ③ 再clone克隆一個items監控項 fpm.stats[idle processes]

(6)host主機鏈接模板配置--主機--none1---模板---選擇---fpm status ---添加---更新(7)查看graph 圖形

① php-fpm total processes

② php-fpm idle processes

(8)把模板導出,可以給別人使用 ① 導出模板最下面有導出

② 自己定義用戶參數的文件,也不要忘記導出

/etc/zabbix/zabbix_agentd.d/php_status.conf

Network discovery

1、介紹
網絡發現:zabbix server掃描指定網絡范圍內的主機;
網絡發現是zabbix 最具特色的功能之一,它能夠根據用戶事先定義的規則自動添加監控的主機或服務等優點:

加快Zabbix部署簡化管理

在快速變化的環境中使用Zabbix,而不需要過度管理(2)發現方式:
ip地址范圍;可用服務(ftp, ssh, http, ...)
zabbix_agent的響應;snmp_agent的響應;
(3)網絡發現通常包含兩個階段:discovery發現 和actions動作
① discovery:
Zabbix定期掃描網絡發現規則中定義的IP范圍; ② actions:網絡發現中的事件可以觸發action,從而自動執行指定的操作,把discvery events當作前提條件;

添加/刪除主機啟用/禁用host

向組中添加主機移除組中的主機
從模板鏈接主機或取消鏈接

2、配置網絡發現Network discovery

(1)利用第二臺用于可被掃描發現的主機----192.168.246.227
① 安裝agent 段的包 yum -y install zabbix-agent zabbix-sender
② 設置agent 配置,可以把之前設置好的none1的配置傳過來
[root@zabbix-agent-none2 ~]# vim /etc/zabbix/zabbix_agentd.conf Hostname=zabbix-agent-none2 #只需修改hostname [root@zabbix-agent-none2 ~]# visudo #修改sudo的配置,添加如下信息 #Defaults !visiblepw

zabbix ALL=(ALL) NOPASSWD: ALL
④ 開啟服務

44/50

[root@zabbix-agent-none2 ~]# systemctl restart zabbix-agent

(2)設置自動發現規則discovery配置--自動發現--創建自動發現規則ip范圍不要給的太大

注釋:在zabbix-server端
[root@zabbix-server ~]# zabbix_get -s 192.168.246.227 -p 10050 -k "system.hostname" zabbix-agent-none2

(3)自動發現成功(在檢測中查看)

45/50

(4)設置自動發現discovery 的動作action
a)創建
b)設置action動作

① 設置A條件,自動發現規則=test net
② 設置B條件,自動發現狀態=up

46/50

③ 要做什么操作添加主機到監控
自動鏈接Template OS Linux 到此host

c)配置action 完成,默認是disabled 停用的,如果不是停用的,也需要再次選擇啟動,激活一下。

d)啟用動作,查看效果

47/50

確實已經生效,添加主機成功,模板鏈接成功(5)如果自己需要添加的主機已經掃描添加完成,就可以關閉網絡掃描了,因為太耗資源

Web監控

簡介:

Web監控:監控指定的站點的資源下載速度,及頁面響應時間,還有響應代碼;

創建設置web場景配置--主機--none1--web場景--創建web場景
(1)創建(2)配置web 監測

48/50

點擊步驟,設置web page web頁面

設置名為home page,URL為http://192.168.246.226/index.html 的web頁面

49/50

查看測試(略)創建圖形查看

50/50

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三明市| 亳州市| 延寿县| 牟定县| 连州市| 大方县| 措美县| 万州区| 衡阳县| 常熟市| 蒙阴县| 榆社县| 永寿县| 漳平市| 五家渠市| 宜良县| 丰顺县| 时尚| 长宁县| 安图县| 淮滨县| 台东市| 溧阳市| 嵊泗县| 志丹县| 工布江达县| 垦利县| 若尔盖县| 沙田区| 朝阳区| 灵璧县| 沂水县| 南城县| 贵州省| 桂阳县| 确山县| 建瓯市| 五原县| 阳曲县| 迁西县| 治县。|