zabbix實現(xiàn)郵件衔憨,短信叶圃,微信報警

1、描述常見監(jiān)控系統(tǒng)及SNMP協(xié)議
2践图、搭建企業(yè)級zabbix,實現(xiàn)自動以郵件和短信報警

1码党、描述常見監(jiān)控系統(tǒng)及SNMP協(xié)議

監(jiān)控系統(tǒng)即用于監(jiān)控生產(chǎn)環(huán)境所使用的硬件德崭、軟件或者是業(yè)務(wù)的運行情況的報警系統(tǒng)揖盘。其能夠?qū)ιa(chǎn)環(huán)境所產(chǎn)生的異常作出報警憾股,使得管理員能夠及時獲知報警信息服球,保證業(yè)務(wù)的正常運行。常見的監(jiān)控項有 :
服務(wù)器CPU座享,內(nèi)存,磁盤淳衙,進程,連接數(shù) Web梢睛,Mail,F(xiàn)TP,數(shù)據(jù)庫竞膳,中間件 網(wǎng)絡(luò)接口流量,轉(zhuǎn)發(fā)速率休偶,丟包率 網(wǎng)絡(luò)設(shè)備性能碱妆,配置文件,路由數(shù) 安全設(shè)備性能观蓄,連接數(shù)袭祟,攻擊數(shù) 設(shè)備運行狀態(tài)
目前比較流行的開源監(jiān)控系統(tǒng)有:zabbix欧募、cacti、nagios还栓、ganglia等等异袄。

SNMP協(xié)議

SNMP協(xié)議在1988年被制定烤蜕,并被Internet體系結(jié)構(gòu)委員會(IAB)采納作為一個短期的網(wǎng)絡(luò)管理解決方案封孙;由于SNMP的簡單性,在Internet時代得到了蓬勃的發(fā)展讽营,1992年發(fā)布了SNMPv2版本虎忌,以增強SNMPv1的安全性和功能。現(xiàn)在橱鹏,已經(jīng)有了SNMPv3版本膜蠢。

一套完整的SNMP系統(tǒng)主要包括管理信息庫(MIB)、管理信息結(jié)構(gòu)(SMI)及SNMP報文協(xié)議莉兰。
在snmp中一般來說由三種組件組成:

  • 網(wǎng)絡(luò)設(shè)備:指在網(wǎng)絡(luò)中需要管理和監(jiān)控的設(shè)備挑围,例如提供服務(wù)的服務(wù)器、路由器等糖荒,這些設(shè)備必須支持snmp協(xié)議杉辙;
  • 管理組件:一般來說指的是運行網(wǎng)絡(luò)管理系統(tǒng)的計算機(也可以指在這個計算機上運行的監(jiān)控軟件),這個計算機可能與被管理的網(wǎng)絡(luò)設(shè)備在地理上隔絕的寂嘉,但是可以遠程監(jiān)控和管理網(wǎng)絡(luò)設(shè)備奏瞬,例如網(wǎng)吧的網(wǎng)管的電腦就可以看做一個管理組件,可以用來監(jiān)控每個電腦的運行泉孩,以及管理你上網(wǎng)的時間并提出預警;
  • 代理Agent:這是指運行在被管理設(shè)備上的一個軟件模塊并淋,用來維護被管理設(shè)備的管理信息數(shù)據(jù)并可在需要時把管理數(shù)據(jù)發(fā)送給管理組件寓搬;

代理保有MIB(Management Information Base)對象變量,可以從管理信息庫MIB收集信息并回傳給管理組件县耽;
MIB庫是一個保存網(wǎng)絡(luò)管理信息的虛擬數(shù)據(jù)存儲空間句喷,由多組被管理對象組成。在網(wǎng)絡(luò)設(shè)備的MIB庫中有由多個MIB模塊定義的多組各自相關(guān)聯(lián)的對象兔毙,其實說白了里面存儲的是網(wǎng)絡(luò)設(shè)備的屬性唾琼,比如什么CPU信息、IO讀寫率等等澎剥;

2锡溯、搭建企業(yè)級zabbix,實現(xiàn)自動以郵件和短信報警

為什么我們需要編譯安裝zabbix哑姚,編譯安裝好后可以創(chuàng)建一個軟鏈接祭饭,如果想要升級了將軟連接指向新編譯安裝的軟件目錄即可。

1.安裝Zabbix server

安裝依賴包:

yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel –y

準備數(shù)據(jù)庫:

mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'192.168.31.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

編譯安裝:

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-snmp --with-libcurl --with-libxml2 --enable-java
如果提示缺少libevent安裝上即可

拷貝啟動腳本

cp misc/init.d/fedora/core/zabbix_* /etc/init.d/

導入數(shù)據(jù)庫

mysql -uzabbix -p123456 -h192.168.31.200 zabbix < database/mysql/schema.sql
如果是agent只需要導入上面一個叙量,如果是server則還需要導入下面兩個
mysql -uzabbix -p123456 -h192.168.31.200 zabbix < database/mysql/images.sql
mysql -uzabbix -p123456 -h192.168.31.200 zabbix < database/mysql/data.sql

更改啟動腳本

vim /etc/init.d/zabbix_server
vim /etc/init.d/zabbix_agent
21 # Zabbix-Directory
22 BASEDIR=/usr/local/zabbix

編輯zabbix_server.con配置文件

useradd zabbix -s /sbin/nologin
mkdir /var/log/zabbix && chown zabbix.zabbix /var/log/zabbix –R
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix.log
DBHost=192.168.31.200
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
Timeout=30

配置web界面

安裝httpd:
yum install httpd -y
mkdir /var/www/html/zabbix
cp -a /root/packages/zabbix-4.0.3/frontends/php/* /var/www/html/zabbix
systemctl restart httpd
systemctl enable httpd
chkconfig zabbix_server on

image.png

上面報錯是因為缺少一些軟件包倡蝙,執(zhí)行下面的命令
yum install php-gettext php-session php-ctype php-xmlreader php-xmlwriter php-xml php-net-socket php-gd php-mysql
再更改php的配置
vim /etc/php.ini:
post_max_size = 8M 改為 post_max_size = 16M
max_execution_time = 30 改為 max_execution_time = 300 max_input_time = 60 改為 max_input_time = 300
date.timezone = 改為 date.timezone = Asia/Shanghai


image.png

成功登陸上去了

字體亂碼得解決辦法

支持中文顯示:
下載字體文件simkai.rr
復制字體文件上傳到服務(wù)器:/var/www/html/zabbix/fonts/
編輯文件使用新字體
vim /var/www/html/zabbix/include/defines.inc.php
修改define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
至此zabbix已經(jīng)安裝好了,接下來我們配置各種報警方式

郵件報警

yum install mailx -y

vi /etc/mail.rc //注意需要開啟客戶端授權(quán)碼進行第三方登錄绞佩,而不是使用密碼

set from=z5118845@163.com
set smtp=smtp.163.com
set smtp-auth-user=z5118845@163.com
set smtp-auth-password=abc123
set smtp-auth=login

echo "tttt" | mail -s "testmail" z5118845@163.com //測試發(fā)信正常

image.png

編寫發(fā)郵件腳本

mkdir /usr/lib/zabbix/alertscripts -pv
vim /usr/lib/zabbix/alertscripts/mailx.sh

#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

[root@node1 ~]# touch /tmp/mailx.log
[root@node1 ~]# chown -R zabbix.zabbix /tmp/mailx.log
[root@node1 ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@node1 ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@node1 alertscripts]# ./mailx.sh z5118845@163.com "主題" "內(nèi)容" //測試發(fā)郵件腳本是否可以正常工 作

image.png

接下來我們配置zabbix的web界面
image.png

image.png
image.png

image.png
image.png

修改zabbix_server執(zhí)行腳本的路徑

vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

然后我們測試一下寺鸥,systemctl stop zabbix_zgentd


image.png

systemctl start zabbix_zgentd


image.png

短信報警

短信報警借助于第三方平臺猪钮,與郵件報警指定第三方的郵件服務(wù)器類似,我們需要指定短信發(fā)送服務(wù)器胆建,這里我們以中國網(wǎng)建SMS短信通為例烤低,其官網(wǎng)地址如下:
http://sms.webchinese.com.cn/api.shtml
告警的腳本文件

#!/bin/bash                                                                                                         

# 腳本的日志文件
LOGFILE="/tmp/SMS.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1

MOBILE_NUMBER=$1    # 手機號碼
MESSAGE_UTF8=$3     # 短信內(nèi)容
XXD="/usr/bin/xxd"
CURL="/usr/bin/curl"
TIMEOUT=5

# 短信內(nèi)容要經(jīng)過URL編碼處理
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')

# Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml
# Uid 網(wǎng)站用戶名
# Key 接口秘鑰
Uid="###"    
Key="###"   #接口秘鑰可以在網(wǎng)站中查詢到
# SMS API
URL="http://utf8.api.smschinese.cn/?Uid=${Uid}&Key=${Key}&smsMob=${MOBILE_NUMBER}&smsText=${MESSAGE_ENCODE}"

# Send it
set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"

測試一下
./send_msg.sh 17757008469 "尊敬的客戶眼坏,您的訂單已出庫發(fā)貨拂玻,正在配送中,請您耐心等待宰译。"
web界面配置同上

QQ消息告警

首選需要注冊一個企業(yè)微信https://work.weixin.qq.com
添加子部門


添加成員
image.png

創(chuàng)建應用
image.png

image.png

準備事項

企業(yè)號已經(jīng)被部門成員關(guān)注
企業(yè)號有一個可以發(fā)送消息的應用檐蚜,一個授權(quán)管理員,可以使用應用給成員發(fā)送消息

安裝simplejson

wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
python setup.py build
python setup.py install

配置監(jiān)控腳本

#!/usr/bin/python
#_*_coding:utf-8 _*_

import urllib,urllib2
import json
import sys
import simplejson

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

def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    print  gettoken_url
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token

def senddata(access_token,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":"8813418",    #企業(yè)號中的用戶帳號沿侈,在zabbix用戶Media中配置闯第,如果配置不正常,將按部門發(fā)送缀拭。
        "toparty":"2",    #企業(yè)號中的部門id咳短。
        "msgtype":"text", #消息類型。
        "agentid":"1000002",    #企業(yè)號中的應用id蛛淋。
        "text":{
            "content":subject + '\n' + content
           },
        "safe":"0"
        }
#    send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)

if __name__ == '__main__':
    user = str(sys.argv[1])     #zabbix傳過來的第一個參數(shù)
    subject = str(sys.argv[2])  #zabbix傳過來的第二個參數(shù)
    content = str(sys.argv[3])  #zabbix傳過來的第三個參數(shù)

    corpid =  'ww76d7749ca2a9801b'   #CorpID是企業(yè)號的標識
    corpsecret = 'k53_6pJ7cDFlKpbAUba88jagtZkSdchROUIy1Fytg3M'  #corpsecretSecret是管理組憑證密鑰
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

測試一下
./wechat.py user 報警測試 error

zabbix web界面配置

image.png

創(chuàng)建報警用戶


image.png

配置用戶報警媒介(選擇剛才創(chuàng)建的)


image.png

創(chuàng)建動作
image.png

image.png

image.png

最后我們測試systemctl stop zabbix_agentd


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咙好,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子褐荷,更是在濱河造成了極大的恐慌勾效,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叛甫,死亡現(xiàn)場離奇詭異层宫,居然都是意外死亡,警方通過查閱死者的電腦和手機其监,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門萌腿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抖苦,你說我怎么就攤上這事毁菱。” “怎么了睛约?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵鼎俘,是天一觀的道長。 經(jīng)常有香客問我辩涝,道長贸伐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任怔揩,我火速辦了婚禮捉邢,結(jié)果婚禮上脯丝,老公的妹妹穿的比我還像新娘。我一直安慰自己伏伐,他們只是感情好宠进,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藐翎,像睡著了一般材蹬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吝镣,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天堤器,我揣著相機與錄音,去河邊找鬼末贾。 笑死闸溃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拱撵。 我是一名探鬼主播辉川,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拴测!你這毒婦竟也來了乓旗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤集索,失蹤者是張志新(化名)和其女友劉穎寸齐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抄谐,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年扰法,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛹含。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡塞颁,死狀恐怖浦箱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祠锣,我是刑警寧澤酷窥,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站伴网,受9級特大地震影響蓬推,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澡腾,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一沸伏、第九天 我趴在偏房一處隱蔽的房頂上張望糕珊。 院中可真熱鬧,春花似錦毅糟、人聲如沸红选。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喇肋。三九已至,卻和暖如春迹辐,著一層夾襖步出監(jiān)牢的瞬間蝶防,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工右核, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慧脱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓贺喝,卻偏偏與公主長得像菱鸥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子躏鱼,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Zabbix簡介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 7,968評論 0 37
  • 工欲善其事氮采,必先利其器。作為一款強大的開源軟件染苛,Zabbix號稱“Monitor Everything”鹊漠,其所依賴...
    樂維_lwops閱讀 3,403評論 6 2
  • 一、架構(gòu)設(shè)計及環(huán)境規(guī)劃: 架構(gòu)設(shè)計圖: 架構(gòu)設(shè)計說明: 1. 基礎(chǔ)架構(gòu)為LAMP環(huán)境茶行,采用keepalived實現(xiàn)...
    Bogon閱讀 10,541評論 0 10
  • 自定義key網(wǎng)絡(luò)發(fā)現(xiàn)Web監(jiān)控主動檢測基于SNMP監(jiān)控基于JMX監(jiān)控Zabbix ProxyZabbix調(diào)優(yōu) 一躯概、...
    哈嘍別樣閱讀 1,135評論 0 1
  • zabbix(音同 z?bix)是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案。 ...
    Chris_Zheng閱讀 3,898評論 0 15