中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

  運(yùn)維中有一句重要的話:不允許未監(jiān)控的服務(wù)上線。

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元福建做網(wǎng)站,已為上家服務(wù),為福建各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

  zabbix是一個基于web界面提供分布式系統(tǒng)監(jiān)控以及網(wǎng)絡(luò)監(jiān)控的第三方開源軟件,它主要由兩部分組成:zabbix-server、zabbix-agent。

  zabbix具有多樣的特性:

    1、支持網(wǎng)絡(luò)自動發(fā)現(xiàn)機(jī)制。

    2、支持自定義檢測機(jī)制UserParamenter

    3、支持實(shí)時繪圖,把數(shù)據(jù)以圖形的方式顯示出來。

    4、支持報(bào)警功能,能夠通過郵件、短信方式告警。

    5、支持使用模板,當(dāng)有多個agent主機(jī)時,具有很大的幫助。

  本文實(shí)現(xiàn)的過程:

    1、通過shell推送ansible,實(shí)現(xiàn)agent批量部署

    2、實(shí)現(xiàn)zabbix-server自動發(fā)現(xiàn)功能,批量添加被監(jiān)控端

    3、調(diào)用模板并在模板中添加自動發(fā)現(xiàn)規(guī)則,監(jiān)聽tcp所有端口

    4、基于postfix實(shí)現(xiàn)郵件報(bào)警

    5、基于中國網(wǎng)建的API實(shí)現(xiàn)短信報(bào)警

準(zhǔn)備環(huán)境

               主機(jī)名
                  Ip
               部署服務(wù)
               node1
             192.168.1.22
   zabbix-server、zabbix-agent、ansible
               node2
             192.168.1.23
              zabbix-agent
               node3
             192.168.1.24
              zabbix-agent

  

實(shí)現(xiàn)前提:LAMP環(huán)境

一、zabbix系統(tǒng)全程部署

1、yum安裝zabbix服務(wù)(node1)

###zabbix的yum源:  
[root@node1 ~]# yum install zabbix-server zabbix-server-MySQL zabbix-web zabbix-web-mysql zabbix-agent

2、讓mysql對其授權(quán)用戶,并導(dǎo)入zabbix的三個sql文件

[root@node1 ~]# mysql -e "create database zabbix charset='utf8'"
[root@node1 ~]# mysql -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix'"
[root@node1 ~]# mysql -e "grant all on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'"
[root@node1 ~]# mysql -uzabbix -h227.0.0.1 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.8/create/schema.sql  
[root@node1 ~]# mysql -uzabbix -h227.0.0.1 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.8/create/p_w_picpaths.sql 
[root@node1 ~]# mysql -uzabbix -h227.0.0.1 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.8/create/data.sql 
###導(dǎo)入完成后可查看mysql中的數(shù)據(jù)庫zabbix是否生成相關(guān)的表

3、修改zabbix-server配置文件,啟動并安裝

[root@node1 zabbix]# pwd
/etc/zabbix
[root@node1 zabbix]# vim zabbix_server.conf 
DBhost=localhost   ###指明數(shù)據(jù)庫地址
DBname:zabbix   ###數(shù)據(jù)庫名稱
DBUser:zabbix   ###數(shù)據(jù)庫用戶
DBpassword:zabbix   ###數(shù)據(jù)庫用戶密碼
DBSocket=/var/lib/mysql/mysql.sock   ###指明mysql數(shù)據(jù)庫的套接字文件,如果zabbix和mysql在不同主機(jī)上可不用修改
[root@node1 zabbix]# service zabbix-server start
[root@node1 zabbix]# netstat -an | grep 10051
tcp        0      0 :::10051                    :::*                        LISTEN 
[root@node1 ~]# service httpd start   ##啟動httpd服務(wù)
 ##訪問zabbix頁面進(jìn)行安裝:http://$IP/zabbix
注意:安裝時報(bào)的錯"timezone"這個參數(shù)可在"/etc/php.ini"或者是"/etc/httpd/conf.d/zabbix.conf"文件中修改

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

4、修改zabbix-agent的配置文件并啟動,讓Server端監(jiān)控自己

[root@node1 zabbix]# pwd
/etc/zabbix
[root@node1 zabbix]# vim zabbix_agentd.conf 
Server=10.10.73.148   ##Agent端允許那個服務(wù)器過來拉取數(shù)據(jù)
ServerActive=10.10.73.148   ##開啟Agent端的主動模式,主動向服務(wù)端傳輸數(shù)據(jù)
[root@node1 zabbix]# service zabbix-agent start
tcp        0      0 :::10050                    :::*                        LISTEN

5、通過腳本實(shí)現(xiàn)agent端批量部署

#!/bin/bash
#Author:wtc
##############[ Ansible Install ]###############

if ! 'rpm -q ansible' &> /dev/null;then    ##安裝ansible服務(wù)

    yum install ansible -y &> /dev/null

    [[ $? -eq 0 ]] && echo "Install Ansible Success" || echo "Install Ansible Failed" 
fi

##############[ Add Roles ] #################
cat > /etc/ansible/hosts    ##在ansible的hosts中添加agent主機(jī)ip

[zabbix]
192.168.1.23
192.168.1.24
END

##############[ Scp Zabbix.repo to Agent]###########

ansible zabbix -m copy -a "src=/etc/yum.repos.d/zabbix.repo dest=/etc/yum.repos.d/"    ##將zabbix的yum倉庫發(fā)送至agent端

ansible zabbix -m shell -a "yum clean all"

ansible zabbix -m shell -a "yum repolist "

#############[ Mkdir Zabbix Directorys ]

Dir=/etc/ansible/roles/zabbix

[[ -d $Dir ]] || mkdir -pv $Dir/{files,templetes,tasks,handles,vars,meta,default}         ##創(chuàng)建zabbix角色相應(yīng)的目錄

cp /etc/zabbix/zabbix_agentd.conf /etc/ansible/roles/zabbix/templetes/zabbix_agentd.conf.j2

#############[ Zabbix taska/main.yml ] ########

cat  /etc/ansible/roles/zabbix/tasks/main.yml        ##編寫yml文件
- name: install zabbix
  yum: name=zabbix-agent state=present
- name: conf file
  template: src=/etc/ansible/roles/zabbix/templetes/zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf
- name:
  service: name=zabbix-agent state=started enabled=true

END

#############[ yaml file ]################

cat  /root/zabbix.yaml
- hosts: all
  remote_user: root
  roles:
  - zabbix
END

ansible-playbook --check /root/zabbix.yaml

ansible-playbook /root/zabbix.yaml

6、在zabbix的web界面定義自動發(fā)現(xiàn)規(guī)則,自動添加被監(jiān)控端

(a)Configuration--->Discovery--->Create discovery rule

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(b)定義完成保存之后,等待幾秒,查看服務(wù)端是否自動添加;Monitoring--->Discovery

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

###以上過程就是部署整個zabbix系統(tǒng),但是部署完成后還需要添加監(jiān)控項(xiàng)!

二、對監(jiān)控端定義監(jiān)控項(xiàng)

1、調(diào)用"Template OS Linux"模板

(a)Configuration--->Avtions--->Discovery--->Create action,定義Action以及conditions

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(c)定義操作Operations

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(e)以上操作完成之后,可查看agent端是否調(diào)用模板

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

2、在"Template OS Linux"中沒有監(jiān)聽tcp端口這一項(xiàng),此時我們需要在模板中自定義檢測機(jī)制"UserParamenter"

(a)編輯zabbix的配置文件,添加"UserParameter",并重啟zabbix-agent

[root@node1 zabbix]# pwd
/etc/zabbix
[root@node1 zabbix]# vim zabbix_agentd.conf    ##添加以下兩行
UnsafeUserParameters=1
UserParameter=portlisten,/opt/app/zabbix/sbin/port.sh  ##"portlisten"自定義的key,port.sh腳本是基于json格式篩選出所有的tcp端口
[root@node1 ~]# vim /opt/app/zabbix/sbin/port.sh
#!/bin/bash
portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
length=${#portarray[@]}
printf "{\\n"
printf  "\\"data\\":["
for ((i=0;i<$length;i++))
  do
     printf '\\n\\t\\t{'
     printf "\\"{#TCP_PORT}\\":\\"${portarray[$i]}\\"}"
     if [ $i -lt $[$length-1] ];then
                printf ','
     fi
  done
printf  "\\n\\t]\\n"
printf "}\\n"
[root@node1 sbin]# pwd
/opt/app/zabbix/sbin
[root@node1 sbin]# sh port.sh 
{
"data":[
        {"{#TCP_PORT}":"10050"},
        {"{#TCP_PORT}":"10051"},
        {"{#TCP_PORT}":"22"},
        {"{#TCP_PORT}":"25"},
        {"{#TCP_PORT}":"3306"},
        {"{#TCP_PORT}":"80"}
    ]
}
###注意:之所以使用"sudo netstat -tnlp"是因?yàn)?zabbix-server"服務(wù)是zabbix用戶在執(zhí)行

[root@node1 ~]# zabbix_get -s 192.168.1.22 -k portlisten   ##在本機(jī)自行獲取數(shù)據(jù)是否成功!
{
"data":[
        {"{#TCP_PORT}":"10050"},
        {"{#TCP_PORT}":"10051"},
        {"{#TCP_PORT}":"22"},
        {"{#TCP_PORT}":"25"},
        {"{#TCP_PORT}":"3306"},
        {"{#TCP_PORT}":"80"}
    ]
}
####使用zabbix_get獲取遠(yuǎn)程主機(jī)數(shù)據(jù)遇到的問題
sudo: sorry, you must have a tty to run sudo:編輯"/etc/sudoers",注釋"Defaults    requiretty"
sudo: no tty present and no askpass program specified:編輯"zabbix-agentd.conf",將"AllowRoot=0"改為"AllowRoot=1"

[root@node1 sbin]# chown -R zabbix.zabbix /opt/   ##將port.sh腳本屬主、屬組改為zabbix
[root@node1 sbin]# chmod -R +x /opt/   ##給腳本增加執(zhí)行權(quán)限
[root@node1 zabbix]# service zabbix-agent stop  
Shutting down Zabbix agent:                                [  OK  ]
[root@node1 zabbix]# service zabbix-agent start  ##重啟node1的zabbix-agent
Starting Zabbix agent:                                     [  OK  ]
[root@node1 zabbix]# ansible zabbix -m shell -a "echo 'UnsafeUserParameters=1' &>> /etc/zabbix/zabbixagentd.conf"   ##使用ansible遠(yuǎn)程追加
[root@node1 zabbix]# ansible zabbix -m shell -a "echo 'UserParameter=portlisten,/opt/app/zabbix/sbin/port.sh' &>> /etc/zabbix/zabbixagentd.conf"
[root@node1 zabbix]# ansible zabbix -m shell -a "mkdir -p /opt/app/zabbix/sbin"   
[root@node1 sbin]# ansible zabbix -m copy -a "src=/opt/app/zabbix/sbin/port.sh dest=/opt/app/zabbix/sbin"
[root@node1 sbin]# ansible zabbix -m shell -a "chown -R zabbix.zabbix /opt"
[root@node1 sbin]# ansible zabbix -m shell -a "chmod -R +x /opt"
[root@node1 ~]# ansible zabbix -m shell -a "sed -i '/AllowRoot=0/c \\AllowRoot=1' /etc/zabbix/zabbix_agentd.conf"  
####ansible調(diào)用"zabbix"這個組在第一個腳本已定義!
[root@node1 ~]# ansible zabbix -m shell -a "service zabbix-agent stop"
[root@node1 ~]# ansible zabbix -m shell -a "service zabbix-agent start"   ##重啟agent端服務(wù)

(b)在"Template OS Linux"中添加自動發(fā)現(xiàn)規(guī)則

Configuration-->Templates-->Template OS Linux-->DIscovery-->Create discovery rule

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(c)分別定義上圖中的1、2、3

Item_prototypes--->Create item protopyte

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

Trigger_prototypes--->Create trigger prototype

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

Graph prototypes--->Create graph prototype

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(d)查看tcp端口是否添加

Configuration--->Hosts--->Items

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

三、實(shí)現(xiàn)觸發(fā)郵件報(bào)警

1、部署postfix服務(wù),并發(fā)送測試短信

[root@node1 ~]# yum install postfix -y    ##在node1上安裝郵件服務(wù)器postfix
[root@node1 ~]# vim /etc/postfix/main.cf  ##編輯配置文件,添加以下幾行
myhostname = mail.umpay.com
myorigin = umpay.com
mydomain = umpay.com
mydestination = localhost
mynetworks = 127.0.0.0/8
[root@node1 ~]# echo "127.0.0.1 mail.umpay.com umpay.com" &>> /etc/hosts
[root@node1 ~]# service postfix start
[root@node1 ~]# echo "Hello, New World" | mail -s "wtc" 1362365xxxx@163.com  ##發(fā)送測試短信
[root@node1 ~]# tialf /var/log/maillog

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

2、定義zabbix服務(wù)端媒介

Administration->->Media types-->Create media type

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

3、隨后定義Actions、Conditions、Operations

Configuration--->Actions--->Tirggers--->Create action

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

4、定義郵件收件人

Administration--->Users--->Zabbix administrators--->Users--->Admin--->Media

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

###以上操作完成后,郵箱報(bào)警完成

5、安裝nginx,監(jiān)聽tcp808端口,測試郵箱報(bào)警

[root@node1 nginx]# nginx
[root@node1 nginx]# netstat -tnlp | grep nginx
tcp        0      0 0.0.0.0:808                 0.0.0.0:*                   LISTEN      16984/nginx
###出現(xiàn)新的tcp監(jiān)聽端口,zabbix會自動添加至items,這里就不截圖了
[root@node1 nginx]# nginx -s stop

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

四、實(shí)現(xiàn)短信報(bào)警

1、在zabbix默認(rèn)調(diào)用腳本路徑下放置腳本

[root@node1 ~]# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@node1 ~]# vim /usr/lib/zabbix/alertscripts/sms.sh
#!/bin/bash

MOBILE_NUMBER=$1    # 手機(jī)號碼
MESSAGE_UTF8=$3        # 短信內(nèi)容
XXD="/usr/bin/xxd"
CURL="/usr/bin/curl"
TIMEOUT=5
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')

#Uid="ch丶瘋子"
Uid="聯(lián)動優(yōu)勢"
#Key="8c1604e2eb0d66dxxxxx"
Key="cfcc13b087aaee114c8e"
URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&smsMob=${MOBILE_NUMBER}&smsText=${MESSAGE_ENCODE}"

set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"
[root@node1 ~]# chmod -R +x /usr/lib/zabbix/alertscripts/sms.sh 
[root@node1 ~]# chown -R zabbix.zabbix /usr/lib/zabbix/alertscripts/sms.sh

2、配置短信告警媒介

Administration--->Media types--->Create media types

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

3、配置短信Actions

Configuration--->Actions--->Tirggers--->Create action

(a)配置短信內(nèi)容

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(b)配置告警條件

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

(c)定義告警接收人

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

4、配置短信接收人

Administration--->Users--->Zabbix administrators--->Users--->Admin--->Media

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

5、測試nginx短信tcp端口報(bào)警

[root@node1 alertscripts]# nginx -s stop

zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警

問題總結(jié):

1、在host中主機(jī)的Discover如果出現(xiàn)"value should not json project",解決辦法如下

[root@node1 ~]# ansible zabbix -m shell -a "sed -i '/Defaults    requiretty/c \\#Defaults    requiretty' /etc/sudoers" 
[root@node1 ~]# ansible zabbix -m shell -a "echo 'zabbix   ALL=(ALL)   ALL' &>> /etc/sudoers"
[root@node1 ~]# ansible zabbix -m shell -a "sed -i '/AllowRoot=0/c \\AllowRoot=1' /etc/zabbix/zabbix_agentd.conf"

名稱欄目:zabbix實(shí)戰(zhàn):部署-->監(jiān)控-->報(bào)警
分享鏈接:http://m.2m8n56k.cn/article22/jdspjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站做網(wǎng)站移動網(wǎng)站建設(shè)域名注冊網(wǎng)站營銷用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
主站蜘蛛池模板: 国产第一页久久亚洲欧美国产 | 久久精品99 | 一级做a爱| 日本亚州视频在线八a | 日韩美女大全视频在线 | 91香蕉视| 美女一级视频 | 一本色道久久88亚洲精品综合 | 国产91精品高清一区二区三区 | 国产中文字幕视频 | 97免费视频免费视频 | 高清不卡毛片 | 国产欧美日韩成人 | 一级国产交换配乱淫 | 日本三级香港三级网站 | 成人做爰视频www在线观看 | 在线高清国产 | 韩国自拍偷自拍亚洲精品 | 久久综合99re88久久爱 | 免费看特黄特黄欧美大片 | 国产一区二区三区手机在线观看 | 在线看欧美日韩中文字幕 | 日本精品高清一区二区不卡 | 久久三级毛片 | 日本特级淫片免费 | 亚洲欧美日韩在线精品一区二区 | 一本久道综合久久精品 | 国产黄色一级毛片 | 91精品久久一区二区三区 | 老司机成人免费精品视频 | 久久精品一区二区三区日韩 | 永久免费毛片在线播放 | 中国美女隐私无遮挡免费视频 | 国产日韩在线观看视频 | 欧美在线播放视频 | 日本特黄特色大片免费看 | 国产成人亚洲精品老王 | 亚洲国产高清在线 | 亚洲第一大网站 | 91精品国产9l久久久久 | 99欧美视频|