zabbix實現mysql數據庫的監控

先來介紹zabbix中幾個常用的術語:

復制代碼
主機(host):           要監控的網絡設備,可由ip或DNS名稱指定。
主機組(host group):   主機的邏輯容器,可以包含主機和模板,但同一個組內的主機和模版不能互相鏈接,主機組通常在組用戶或用戶組指派監控權限時使用。
監控項(item):         一個特定監控指標的相關的數據,這些數據來自于被監控對象,item是zabbix進行數據收集的核心,沒有item,就沒有數據,每個item都由“key”進行標識。
觸發器(trigger):      一個表達式,用于評估某監控對象的某特定item內所接收到的數據是否在合理范圍內,即閾值;接收到的數據量大于閾值時,觸發器狀態將從“OK”轉變為“Problem”,當數據量再次回到合理范圍時,其狀態將從“Problem”轉換回“OK”。
事件(event):         即發生的一個值得關注的事件,如觸發器的狀態轉變,新的agent或重新上線的agent的自動注冊等。
動作(action):        指對于特定事件事先定義的處理方法,通過包含操作(如發送通知)和條件(何時執行操作)。
報警升級(escalation): 發送警報或執行遠程命令的自定方案,如每隔多長時間發送一次警報,共發送多少次。
媒介(media):         發送通知的手段或通道,如Email,Jabber或SMS等。
通知(motification):  通過選定的媒介向用戶發送的有關某事件的信息。
遠程命令(remote command):預定義的命令,可在被監控主機處于某特定條件下時自動執行。
模版(template):      用于快速定義被監控主機的預設條目集合,通常包含了item,trigger,graph,screen,application,low-level discovery rule,模板可以直接鏈接到單個主機。
應用(application):   用于檢測web站點可用性的一個或多個HTTP請求。
前端(frontend):      zabbix的web接口。
復制代碼

一、腳本監控

1、創建監控用戶

GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'mpm'@'127.0.0.1' IDENTIFIED BY PASSWORD '*3B9F0373BC48DCD0459D19550D373FEBCCE003C8'
flush privileges;

2、編寫監控腳本

復制代碼
#!/bin/sh
#Created by: 茁壯的小草
#Create Date:2015/8/17
#Function:check mysql master-slave replication is ok or not ok.declare -a  slave_is  
slave_is=($(/usr/local/mysql/bin/mysql -h 127.0.0.1  -umpm -p'mpm' -e "show slave status \G"|grep Running |awk '{print $2}'))  
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]       then      echo '2'   #代表正常兩個yes     else      echo '-1'  #代表不正常      
fi
復制代碼

執行以上腳本,如果主從復制正常,返回狀態0,否則返回狀態2。

3、Agentd配置文件中聲明key

vim /usr/local/zabbix/etc/zabbix_agentd.conf
#添加以下一句
UserParameter=mysql.replication,/data/scripts/check_replication.sh   #逗號前面是key,后面是執行的腳本

4、重啟agentd服務并進行測試

[root@node2 etc]# /etc/init.d/zabbix_agentd restart
停止 Zabbix Agent:                                        [確定]
正在啟動 Zabbix Agent:                                     [確定]

然后到zabbix server上看看能否獲取到key的監控值:

[root@monitor bin]# ./zabbix_get -s 192.168.245.131 -k "mysql.replication"
Warning: Using a password on the command line interface can be insecure.
2

okay,到這里腳本就寫好了,下面就到zabbix的web頁面上創建監控項、觸發器、事件等步驟吧,把上面介紹的幾個術語串聯起來,實現我們需要的監控。

5、zabbix web端添加監控內容

1)創建監控項(item)

點擊右邊的創建監控項,進入下面頁面:

類型:這里選擇主動模式,需要agentd配置文件中開啟RefreshActiveChecks,表示每隔多長時間向server請求監控項檢測,單位秒。
鍵值:需要跟agentd配置文件中聲明的key相同

2)創建觸發器

3)查看監控效果

這時可以分別停止和啟動主從復制查看具體的監控效果。

stop slave:

start slave:

二、報警通知

?1、郵件報警

zabbix發送郵件報警需要服務器上能夠發送郵件的環境,下面先保證liunx服務器可以發送郵件。

1)安裝和配置Mutt

yum install mutt -y
vim /etc/Muttrc
set sendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路徑
set use_from=yes
set realname="zabbix.com"   #隨意填寫個名字
set editor="vim"

2)安裝和配置msmtp

wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download
tar jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
./configure --prefix=/usr/local/msmtp
make&&make install 
復制代碼
mkdir -p /usr/local/msmtp/etc
vim /usr/local/msmtp/etc/msmtprc
添加以下內容
# Set default values for all following accounts.
defaults
logfile /usr/local/msmtp/log/mmlog.log
# The SMTP server of the provider.
account 163# SMTP郵件服務器地址
host smtp.163.com# 發送的郵件Email
from 18602500775@163.com
auth login# 郵件服務器登錄賬號
user 18602500775@163.com# 郵件服務器登陸密碼
#password zhl12345!@#$% 
password jwehzbgxxbkkfmhw   #指163的客戶端授權密碼
# Set a default account
account default : 163
復制代碼

然后需要將目錄權限改一下,很重要,否則發不出郵件,也不太好排查:

[root@monitor log]# chown -R zabbix.zabbix /usr/local/msmtp/

可以測試下看能否發送郵件:

/usr/local/msmtp/bin/msmtp 12333333@qq.com

確保服務器可以正常發送郵件了,下一步就可以配置zabbix了。

3)創建發送郵件的腳本:腳本必須統一放到/usr/local/zabbix/share/zabbix/alertscripts目錄中,否則zabbix無法找到。當然你也可以修改server上conf配置文件,重新指定位置。需要指出的是,這里的腳本是經過驗證的,網上有很多是通過mutt調用msmtp的,開始我也使用該方法,但是zabbix頁面顯示已發送,但是死活收不到郵件,花了好多時間,估計問題就出在mutt上,不知道啥原因,花了很多時間。后來改用msmtp直接發送就可以了,如下:

復制代碼
#! /bin/sh
DEBUG=1
if [ $DEBUG -gt 0 ]
then
exec 2>>/usr/local/msmtp/log/msmtp-log
set -x
fi
FROM='xxxxxxxxxx@163.com'
MSMTP_ACCOUNT='163'     #msmtprc配置文件中的account
# Parameters (as passed by Zabbix):
recipient=$1
subject=$2
message=$3
date=`date --rfc-2822`
sed 's/$/\r/' <<EOF | /usr/local/msmtp/bin/msmtp --account $MSMTP_ACCOUNT $recipient 
From: <$FROM> 
To: <$recipient>
Subject: $subject
Date: $date
$message
EOF
復制代碼

4)zabbix web上創建示警類型、action、用戶等。

  • 創建示警類型:管理-->媒介類型

名稱可以自己起,類型選擇“腳本”,腳本名稱填寫剛才創建的腳本,不用寫全路徑,如果有后綴名的請帶上,否則找不到。

  • 創建action:組態-->動作

以上的紅色框框中需要填寫正確的,別的根據需要自己填寫。

  • 創建用戶并關聯事件:管理-->用戶-->點擊紅色

到“示警媒介”一欄下進行添加剛才我們新建的媒介,收件人需要填寫正確,狀態已啟用。

現在可以進行問題報警了,下面把主從復制關閉,看看能不能收到郵件。這是我收到的郵件:

?

如果收不到,先從zabbix進行排查,受監測-->事件,查看最后一欄的動作,如果正常表示發送郵件ok了,否則是失敗,可以點擊前面的日期進行詳細查看:

?

到這兒,zabbix整個流程都齊了,從一無所有到可以報警發郵件了,下面通過一張圖來把從無到有的過程聯系起來:

【說明】:

  • 首先需要新增主機組(可以用來按組授權),然后添加監控主機。
  • 在受監控的主機中新增監控項,需要在agentd配置文件中指定key,zabbix通過key找到腳本監控的輸出值。
  • 新建觸發器,表示根據監控項輸出值執行觸發一些特別的action,新建觸發器時需要關聯監控項,通過表達式選擇一個監控項進行關聯。
  • 接下來創建動作,因為根據觸發器需要執行一些action。在action中的條件欄目下關聯觸發器(比如設置條件:觸發器=問題,就是有問題時執行這個動作)
  • 創建示警媒介(在創建動作前創建)。由于動作中包含很多種操作,如發郵件、執行命令等,需要將動作和示警媒介進行關聯,通過在動作中選擇一種操作進行關聯,示警媒介可以屬于某個用戶。

至此,通過兩個星期的學習,zabbix監控mysql數據庫終于可以正常工作了,其實zabbix還有很多功能,如自動發現主機等,暫時先告一段落吧,把搭建學習的過程記錄下來,下次再做就可以得心應手了。

轉載于:https://www.cnblogs.com/henrylinux/p/9926395.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VSCode配合eslint進行JavaScript質量檢查

寫在開始前&#xff1a;如有不準確的地方希望大家提出&#xff0c;文章可以改知識不能錯。 創建一個項目 這里已node項目為例 npm init 根據提示填寫相關信息 安裝eslint npm install eslint --save也可以全局安裝 npm install eslint -g初始化 eslint文件 eslint --init執行命…

未找到導入的項目,請確認 Import 聲明中的路徑正確

VS2017打開以前vs版本開發的項目 <Import Project"$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project"$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" /> 修改V12…

修改Jupyter的工作空間

修改Jupyter的工作空間 1、安裝Jupyter Notebook 剛安裝完并配置好Sublime Text 3后被學長推薦使用Jupyter notebook&#xff0c;于是就想著看看試試有沒有他說的那么好。 安裝&#xff1a;命令行直接pip install jupyter(前提是先安裝好了python和pip) 2、安裝完后困惑 這么大…

bzoj [Usaco2009 Hol]Cattle Bruisers 殺手游戲

Description Input 第1行輸入N&#xff0c;R&#xff0c;BX&#xff0c;BY, BVX&#xff0c;BVY&#xff0c;之后N行每行輸入四個整數Xi&#xff0c;Yi&#xff0c;VXi&#xff0c;VYi&#xff0e; Output 一個整數&#xff0c;表示在逃脫過程中&#xff0c;某一個時刻最多有這…

Visual Studio Code 使用 ESLint 增強代碼風格檢查 - gyzhao - 博客園

前言 在團隊協作開發中&#xff0c;為了統一代碼風格&#xff0c;避免一些低級錯誤&#xff0c;應該設有團隊成員統一遵守的編碼規范。很多語言都提供了Lint工具來實現這樣的功能&#xff0c;JavaScript也有類似的工具&#xff1a;ESLint。除了可以集成到構建工具中(如&#x…

CS 325 HW

代做CS 325作業、代寫C, C/Python編程設計作業、代做Python/c實驗作業CS 325 – HW 51. (6 points) Consider an undirected graph G(V,E) with nonnegative edge weights w(u,v)0. Supposethat you have computed a minimum spanning tree G, and that you have also computed…

express下使用ES6 - dtdxrk - 博客園

express下使用ES6 1 2 3 4 5 6 7 8 9 //環境切換配置 package.json scripts:{ "service": "NODE_ENVproduction PORT3000 npm start" } //node js判斷 var app express(); app.get(env) production 原文地址&#xff1a;https://segmentfault.com/a…

java中的內部類詳解

https://www.cnblogs.com/dolphin0520/p/3811445.html https://www.cnblogs.com/chenssy/p/3388487.html轉載于:https://www.cnblogs.com/codeLei/p/9934195.html

eclipse下使用git插件上傳代碼至github

eclipse下使用git插件上傳代碼至github 1.eclipse下安裝git 正常情況下&#xff0c;eclipse 是自帶 git 插件的&#xff0c;那么即可跳至步驟1的最后一小步&#xff0c;配置 git 。 如果十分悲劇&#xff0c;你的 eclipse 中見不到 git 的身影&#xff0c;那么也沒關系&#…

VS(C++)配置Halcon(一次配置,永久使用)

【說明】只需配置一次&#xff0c;以后新項目無需再次配置。 本教程是64位版本&#xff0c;32位可參考本教程。VS與Halcon無論哪個版本&#xff0c;都可參考本教程。 【步驟】以VS2015Halcon18.11為例 1、新建一個C|Win32控制臺應用程序項目 2、視圖|其他窗口|屬性管理器 在 De…

(轉)msys2使用教程

一、安裝 官方下載地址 http://www.msys2.org/ 指定好安裝路徑&#xff08;一般D根目錄即可&#xff09;&#xff0c;一路下一步就好。 二、配置國內鏡像、設置窗體修改顏色 使用[清華大學開源軟件鏡像站]中的地址&#xff0c;修改\etc\pacman.d目錄下的三個文件。 配置教程 ht…

簡單使用Git和Github來管理自己的代碼和讀書筆記

簡單使用Git和Github來管理自己的代碼和讀書筆記 以前不知道使用代碼管理工具&#xff0c;最后寫的一些東西都沒有了&#xff0c;由于硬盤壞了或者不小心格式化了之類的&#xff0c;后來使用了Git 和Github來托管自己的代碼和讀書筆記方便了不少&#xff0c;到哪里只要有網就可…

android 資源

在進行APP開發的過程當中&#xff0c;會用到許多資源&#xff0c;比如&#xff1a;圖片&#xff0c;字符串等。現對android資源知識進行簡單記錄。 具體的詳細信息及用法&#xff0c;點擊查看官方文檔 分類 一般android資源分為可直接訪問的系統資源和不可直接訪問的原生資源 r…

virtualbox 采用 NAT 還是 BRIDGE

正如標題所言&#xff0c;其實這兩個都可以讓虛擬機上網&#xff0c;但是還是有些差別的。 選擇NAT的話&#xff0c; 虛擬機之間無法PING通 虛擬機可以PING通主機 主機無法PING通虛擬機 這是因為虛擬機不能在網絡里擁有自己的IP&#xff0c;它是借助主機才能上網。 選擇橋接的話…

vue 集成html5 plus - 懶懶de尐彪 - 博客園

首先要安裝一個包 vue-html5plus npm i vue-html5plus -S 然后配置這個文件 在main.js添加一串代碼 var onPlusReady function (callback, context this) { if (window.plus) { callback.call(context) } else { document.addEventListener(plusready, callback.bind(cont…

ssh整合學習(1)

Hibernate框架 1 hibernate核心配置文件 &#xff08;0&#xff09;orm思想 -對象關系映射 &#xff08;1&#xff09;數據庫信息 &#xff08;2&#xff09;hibernate信息 &#xff08;3&#xff09;映射配置 &#xff08;4&#xff09;hibernate核心配置文件 -如果單純使用hi…

MongoDB在不同主機間復制數據庫和集合的教程_MongoDB_腳本之家

MongoDB在不同主機間復制數據庫和集合的教程 更新時間&#xff1a;2016年07月04日 15:49:51 作者&#xff1a;lucifercn MongoDB自帶了clone一族JavaScript函數來進行數據的復制,這里我們總結了MongoDB在不同主機間復制數據庫和集合的教程,列舉出了一些主從復制操作中常用…

2018-2019-2 網絡對抗技術 20165305 Exp6 信息搜集與漏洞掃描

1.實踐目標 掌握信息搜集的最基礎技能與常用工具的使用方法。 2.實踐內容 &#xff08;1&#xff09;各種搜索技巧的應用 &#xff08;2&#xff09;DNS IP注冊信息的查詢 &#xff08;3&#xff09;基本的掃描技術&#xff1a;主機發現、端口掃描、OS及服務版本探測、具體服務…

Java 觀察者模式

定義&#xff1a;定義了對象之間的一對多依賴&#xff0c;讓多個觀察者對象同時監聽某一個主題對象&#xff0c;當主題對象發生變化時&#xff0c;它的依賴者&#xff08;觀察者&#xff09;都會收到通知并更新 適用場景&#xff1a; 關聯行為場景&#xff0c;建立一套觸發機制…

蘋果電腦快捷鍵有哪些?mac系統快捷鍵大全詳細介紹(全部)_蘋果MAC_操作系統_腳本之家

蘋果電腦快捷鍵有哪些&#xff1f;mac系統快捷鍵大全詳細介紹(全部) 電腦中的每對快捷鍵有對應了一種操作效果&#xff0c;對于使用蘋果電腦的操作系統的新人來說&#xff0c;快捷鍵是個很麻煩的問題&#xff0c;要一個個的找到快捷鍵也不是很容易的問題&#xff0c;本文就為大…