zabbix監控系統

zabixx

zabbix(音同 zæbix)是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。

zabbix server:zabbix的監控服務器,負責接收agent端發送過來的數據,并做處理。端口:10051

zabbix agent:安裝在各個需要監控主機上,負責收集本地數據并發往server端。端口:10050

zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。

監控系統具備的四種功能
采集:根據用戶的要求,周期性的采集數據
存儲:對采集到的各種數據進行預約存儲。
可視化:對采集到的數據,進行可視化。
報警:報警系統,在特定的條件下被觸發(超出合理的區間)

監控數據采集通道
SNMP:Simple Network Management Protocol
ssh/telnet
IPMI:
agent:  (master/agent)
zabbix的安裝和監控的配置:

zabbix程序的組件:
zabbix_server:服務端守護進程;
zabbix_agentd:agent守護進程;
zabbix_proxy:代理服務器,可選組件;
zabbix_get:命令行工具,手動測試向agent發起數據采集請求;
zabbix_sender:命令行工具,運行于agent端,手動向server端發送數據;
zabbix_java_gateway: java網關;
zabbix_database:MySQL或PostgreSQL;
zabbix_web:Web GUI

端口號:10051

https://www.zabbix.com/download  (官方下載安裝地址)

1 .首先部署zabbix-server端:(在yum倉庫里添加zabbix的庫,可從阿里云上去查找)

wget https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm(下載包)

yum install zabbix-release-3.4-2.el7.noarch.rpm (安裝下載下來的包)

裝上上述這個包之后在/etc/yum.repos.d/下會生成一個zabbix.repo的文件,只有有了此文件,下面的包才可以安裝成功。

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent   (安裝程序包)

yum install mariadb-server httpd(安裝數據庫)

進入數據庫:

mysql> create database zabbix character set utf8 collate utf8_bin;  (創建數據庫zabbix)
mysql> grant all privileges on zabbix.* to zabbix@'192.168.60.%' identified by 'centos';(創建并授權zabbix用戶登陸本機的數據庫,因為,數據庫和zabbix程序放在一起,所以使用localhost代替本機的IP地址,如果數據庫需要單獨放,則需要指定zabbix程序所在主機服務器的IP地址)
mysql> quit;

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix (執行此步操作)

mysql -uzabbix -hlocalhost -pcentos (現在已經可以連接到數據庫了;進去之后可以查看到生成的zabbixs數據庫里的內容了)

/etc/zabbix/zabbix_server.conf  (修改配置文件)

DBName=zabbix  (數據庫的名字)

DBHost=192.168.60.20(數據庫的地址)

DBPassword=centos   (登陸數據庫的密碼)

vim /etc/httpd/conf.d/zabbix.conf (修改配置文件)

php_value date.timezone Asia/Shanghai   (修改時區)

systemctl start zabbix-server (啟動zabbix服務)

systemctl start httpd (啟動服務)

http://192.168.60.20/zabbix/(在瀏覽器上訪問此路徑并安裝zabbix;此IP地址為zabbix主服務的IP地址)

點擊下一步進入以下界面:

QQ截圖20180723160317

QQ截圖20180723160617

QQ截圖20180723160739

如果需要更改不需要重新安裝,只要去修改上面的配置文件就可以了

QQ截圖20180723160809

切換中文版:

QQ截圖20180723162919

QQ截圖20180723162956

updata 應用即可。

 

監控一個獨立的主機(zabbix-agent監控的主機):(簡單的手動添加的監控選項和參數:)

rpm -ivh zabbix-agent-3.4.11-1.el7.x86_64.rpm

rpm -ivh zabbix-sender-3.4.11-1.el7.x86_64.rpm

(安裝上述兩個包;上述兩個包可在阿里云上下載下來)

vim /etc/zabbix/zabbix_agentd.conf  (修改配置文件)

Server=192.168.60.20(更改為 zabbix-server服務器的地址)97行

ServerActive=192.168.60.20 (更改為 zabbix-server服務器的地址)138行

Hostname=nod01   (設定本機的主機名)149行

systemctl start zabbix-agent  (啟動服務)

ss -nult (查看端口號;10050)

然后再瀏覽器上的zabbix的主界面里添加剛才的主機:

添加新的組:

QQ截圖20180723193535

添加新的主機:

QQ截圖20180723192918

QQ截圖20180723194705

QQ截圖20180723194737

QQ截圖20180723195227

創建一個新的應用級:

QQ截圖20180723200643

QQ截圖20180723200816

QQ截圖20180723200919

創建一個監控項:

QQ截圖20180723201218

QQ截圖20180723203028

QQ截圖20180723202741

最后點擊添加就可以了。

再添加一個觸發器:(一個監控項可定義多個觸發器來響應不同級別的警告)

QQ截圖20180723212229

QQ截圖20180723213018

QQ截圖20180723212845

 

查看監控的狀態:

QQ截圖20180723205327

一旦檢測中有觸發器報警,就需要定義actio(動作),來對觸發器的警告做相應的處理。

 

 

實驗:實現nginx的簡單的監控和報警后的觸發操作

在從被監測的主機上安裝nginx服務,并添加新的監控項,定義新的觸發器,并且定義action在觸發器報警后做相應的處理。

在被檢測的服務器上:yum install nginx -y;(裝包)nginx (啟動服務)

創建一個新的監控項在nod01上:

QQ截圖20180724111046

在創建一個新的觸發器針對nginx做警告處理的

QQ截圖20180724111832

QQ截圖20180724112102

添加之后查看已創建好的nginx的觸發器:

QQ截圖20180724112331

在監測—>最新數據—->nod01可以看到nginx監控現在處于正常狀態。

QQ截圖20180724112851

如果此時將nginx服務手動暫停的化,zabbix監控就會顯示已經down了。

QQ截圖20180724113502

在此將服務手動開啟后此時監控又正常了。此時在監測—>觸發器;會觸發一個事件。需要點擊確認一下。

QQ截圖20180724113840

 

創建一個action(動作)來解決nginx觸發器出現警告的故障:(首先讓他遠程自動重啟,如果還是失敗,就發送信息)

配置—->動作,去創建一個action:
QQ截圖20180724122052

QQ截圖20180724122547

QQ截圖20180724124412

QQ截圖20180724124333

為了測試,需要在nod01上添加zabbix的管理員權限:(只為臨時測試使用,生產中是危險的)

visudo

QQ截圖20180724123948

還需要在被監測的服務器上:

vim /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1  (允許agent在本機執行命令)74行

systemctl restart zabbix-agent  (重啟服務讓修改的agent配置文件生效)

最后手動將被監測的nginx服務停掉,查看是否能夠自己修復。(如果有問題查自定義腳本是否寫錯)

 

定義媒介來實現出現警告的通過郵箱的發送:(僅在本機測試使用)

在本機zabbix-server服務器上安裝郵件包;yum install mailx

管理——>報警媒介類型  ;創建一個報警媒介

QQ截圖20180724145557

點擊添加即可。由于是本機的郵件服務,所以只能在本機的用戶之間發送。

在次:管理—->用戶—->admin

QQ截圖20180724150146

QQ截圖20180724150513

然后添加nginx觸發警報的第二步的操作:

QQ截圖20180724151710

QQ截圖20180724150941

QQ截圖20180724151203

QQ截圖20180724151324

恢復操作也給用戶發送郵件信息:

QQ截圖20180724153224

現在就可以實現了;當nginx執行動作里的腳本沒有將nginx服務重新啟動起來,就會執行第二步的操作,發送郵件給定義的用戶通知消息。

 

使用腳本來創建腳本報警的方式:

腳本放置路徑:zabbix_server.conf配置文件中AlertScriptsPath參數定義的路徑下;
/usr/lib/zabbix/alertscripts/   (只要將腳本放在此目錄下,直接調用腳本名稱就可以了)

zabbix 3.0之后的版本,此三個變量定義為內部宏:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

Python報警腳本可以在互聯網上查找。(安裝好python的執行環境)

腳本示例:給與執行權限,測試執行成功就可以。

#!/usr/bin/python
#coding:utf-8

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr, formataddr
import sys

def formatAddr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))

def send_mail(to_list,subject,content):
mail_host = 'smtp.exmail.qq.com'  
mail_user = '973366980@qq.com'
mail_pass = '密碼'
#以上內容根據你的實際情況進行修改
msg = MIMEText(content,'','utf-8')
msg[‘Subject’] = Header(subject, 'utf-8').encode()
msg[‘From’] = formatAddr('zabbix監控 <%s>' % mail_user).encode()
msg[‘to’] = to_list

try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(mail_user,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False

if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

QQ截圖20180724161431

 

 

創建圖形來顯示數據的信息:

QQ截圖20180724162121

QQ截圖20180724162619

定義好圖形后再桌面上添加多個圖形:

首先創建一個聚合圖:

QQ截圖20180724163129

QQ截圖20180724163603

QQ截圖20180724163948

QQ截圖20180724164014

QQ截圖20180724163833

 

 

zabbix的宏的定義:

宏:macro,預設的文本替換模式;變量
級別:
全局:Administration –> General –> Macros
模板:編輯模板 –> Macros
主機:編輯主機 –> Macros   (僅對當前主機一個有效的)

假如在三個級別都定義了宏,則主機級別的生效

類型:
內建宏:{MACRO_NAME}
文檔參考:
https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

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

1 . 設置全局宏的界面:

QQ截圖20180724165105

QQ截圖20180724165458

在設置參數的時候,有關80端口的,就可以不用寫80,而是用宏替換。(好處:當需要更改多處的80端口改為8080;時不需要一個個的去修改了,只需要在此處將宏的變量更改一下就可以了)

2 .配置主機的宏的界面:

QQ截圖20180724170201

QQ截圖20180724170324

 

 

使用模板來構建監控選項:

示例:在已有主機上添加關于linux監控的選項;(使用模板來添加)

QQ截圖20180724171143

QQ截圖20180724171218

QQ截圖20180724171301

也可以自己創建一個新的模板然后自定義(跟配置主機一樣)

 

使用網絡上的腳本來構建監控 選項:

https://share.zabbix.com/   (在此網站上可以查找所需要的模板)

QQ截圖20180724173020

 

要選擇相對應的版本即可。

QQ截圖20180724173327

QQ截圖20180724173712

QQ截圖20180724174401

模板文件下載完成后,導入到zabbix模板庫里面。就可以調用導入的模板文件了。

QQ截圖20180724174810

在下面搜索就可以查看了。

QQ截圖20180724175240

在被監控的服務器上:

vim /etc/zabbix/zabbix_agentd.d/test.conf  (新建配置文件)

定義一個key,然后在監控端就可以看到此key的值。

UserParameter=memory.used,/usr/bin/free |/usr/bin/awk'/^Mem/{print $3}' (內容)

systemctl restart zabbix-agent   (重啟服務,然后讓key值生效)

yum install zabbix-get -y (在服務器端下載手動測試的工具)

zabbix_get -s 192.168.60.21 -p 10050 -k "memory.used"  (手動測試在服務器端)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/103496

(2)
無所謂無所謂
上一篇 2018-07-22
下一篇 2018-07-22

相關推薦

  • Linux用戶組管理及用戶權限

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ]# who | cut -d” ” -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 ]# last | head -1? 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 ]# cat /etc/…

    2018-07-05
  • 關于grep 與 正則表達式的那些事

    首先要記住的是: 正則表達式與通配符不一樣,它們表示的含義并不相同! 正則表達式只是一種表示法,只要工具支持這種表示法, 那么該工具就可以處理正則表達式的字符串。vim、grep、awk 、sed 都支持正則表達式,也正是因為由于它們支持正則,才顯 得它們強大grep (縮寫來自Globally search a Regular Expression and…

    Linux筆記 2018-04-08
  • 進程管理

    ps top dstat iotop bg fg nohup 并行

    2018-05-05
  • sed相關參數及用法

    sed 行編輯器 -n:靜默模式,不再默認顯示模式空間中的內容 -i :直接修改原文件 -e SCRIPT -e SCRIPT :可以同時執行多個腳本 -f /file路徑 可以執行filescript處理文件 -r 表示可以使用擴展正則表達式 sed /模式配置/ startline,endline 比如: 1,100 /正則表達式/ /^root/ 精確…

    Linux筆記 2018-04-15
  • puppet實現nginx反代tomcat+memcached

    puppet實現nginx反代tomcat+memcached

    2018-04-16
欧美性久久久久