基於無線城市項目的服務器監控部署php
1、 安裝環境說明html
雲AC系統的五臺虛擬機都安裝在同一硬件服務器上,在服務器上又建立了一臺虛擬機用於安裝zabbix server,AC系統的五臺虛擬機上全都安裝zabbix agentlinux
2、 Zabbix server安裝步驟web
安裝的是zabbix_appliance版本(3.2.6_x86_64.iso),和安裝操做系統同樣,比較方便快捷,無需數據庫的配置以及WEB環境的搭建。數據庫
一、 建立虛擬機apache
二、 設置虛擬機名稱vim
三、 選擇存儲器瀏覽器
四、 選擇虛擬機版本bash
五、 選擇虛擬機操做系統服務器
六、 選擇CPU、內存、網絡、SCSI控制器、磁盤
七、 完成
八、 啓動虛擬機,鏈接到本地磁盤上的ISO映像
九、 開始安裝,選擇第一項
十、 安裝完成後,直接進入命令行界面,用戶名默認是appliance,密碼默認是zabbix,登陸進去ifconfig查看IP地址
十一、 打開瀏覽器,輸入10.7.0.150/zabbix,用戶名默認是Admin,密碼默認是zabbix
3、 Zabbix agent安裝步驟
一、 建立zabbix運行所須要的用戶跟組
useradd -g zabbix -u 201 -m zabbix
二、 解壓安裝zabbix agent端
cd /usr/src/
tar xf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2
./configure -sysconfdir=/etc/zabbix -enable-agent
make && make install
三、 copy agent端運行所須要的腳本
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
四、 配置agent端配置文件
vim /etc/zabbix/zabbix_agentd.conf
Server=10.7.0.150 #填寫Server的IP地址
ServerActive=10.7.0.150 #修改成Server的IP地址
Hostname=ACMaster #修改成虛擬機的hostname
五、 啓動zabbix agent端
/etc/init.d/zabbix_agentd start
六、 在服務器檢驗客戶端是否安裝成功
zabbix_get -s 10.7.0.198 -p10050 -k"system.uptime"
有返回值354083說明OK
4、 Zabbix WEB頁面配置
一、 建立主機,主機名稱要與zabbix_agentd.conf中Hostname同樣,IP地址就是須要被監控的服務器的IP
二、 添加模板,選擇須要添加的模板,點擊添加,而後更新便可
三、 新建監控磁盤IO狀態的模板(http://www.linuxidc.com/Linux/2015-11/125208.htm)
四、 根據須要建立監控項的圖形
五、 根據須要查看監控圖形
六、 WEB頁面選擇語言爲中文時會有亂碼,修改以下
首先從Windows拷貝個字體,選擇控制面板->字體->選擇一種中文字庫例如「微軟雅黑」,名字爲msyh.ttf放置zabbix的web端的fonts目錄下例如:/usr/share/zabbix/fonts
vi /usr/share/zabbix/include/defines.inc.php #修改graphfont爲msyh
刷新頁面便可
七、 注意zabbix server端和agent端時間同步,修改zabbix server端時間
sudo su #切換爲root
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vi /etc/apache2/conf-available/zabbix.conf #修改Europe/Riga爲Asia/Shanghai
5、 Zabbix郵件報警配置(http://www.cnblogs.com/rysinal/p/5834421.html)
一、 下載軟件
cd /tmp
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
二、 解壓軟件
tar zxf sendEmail-v1.56.tar.gz -C /usr/src
三、 複製文件並設置權限
cd /usr/src/sendEmail-v1.56
cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail
四、 測試郵件功能
/usr/local/bin/sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u "我是郵件主題" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 123456 -m "我是郵件內容" -l /var/log/sendMyEmail.log
命令說明:
/usr/local/bin/sendEmail 命令主程序
-f from@163.com 發件人郵箱
-t to@163.com 收件人郵箱
-s smtp.163.com 發件人郵箱的smtp服務器
-u "我是郵件主題" 郵件的標題
-o message-content-type=html 郵件內容的格式,html表示它是html格式
-o message-charset=utf8 郵件內容編碼
-xu from@163.com 發件人郵箱的用戶名
-xp 123456 發件人郵箱密碼
-m "我是郵件內容" 郵件的具體內容
-l /var/log/sendMyEmail.log 非必輸項,郵件發送日誌記錄到日誌文件
五、 查看編輯腳本配置
進入zabbix自定義的指定目錄,我這裏是/etc/zabbix 能夠查看zabbix_server.conf配置文件AlertScriptsPath變量是如何定義的。
vi /etc/zabbix/zabbix_server.conf
找到AlertScriptsPath選項,能夠自定義位置
cd /usr/lib/zabbix/alertscripts
六、 編輯腳本
vi sendEmail.sh
內容以下:
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -f from@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp password -m "$body"
說明:
from@163.com 替換成本身的發件郵箱
smtp.163.com 表示郵箱的smtp服務器,這裏展現使用的是163郵箱,替換本身的郵箱SMTP地址
password 替換成發件郵箱密碼
七、 編輯完成後,給腳本權限
chmod +x sendEmail.sh
chown zabbix.zabbix sendEmail.sh
八、 Web界面配置
進入zabbix管理頁面
點擊管理->報警媒介類型 點擊最右邊的建立媒體類型
輸入腳本名稱,類型選擇腳本並添加如下3個參數,分別對應sendEmail.sh腳本須要的3個參數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
解釋:不少人安裝zabbix 3.0以後,寫的腳本一直髮信不成功,手動執行時能夠的。
那是由於zabbix3.0以後,能夠自定義參數了。因此不寫參數,它是不會傳參數的。
在2.x版本不存在這個問題,默認會傳3個參數。
點擊Admin用戶
點擊報警媒介-添加
選擇sendEmail.sh腳本,輸入收件人的郵箱地址
點擊用戶羣組,點擊zabbix administrator後面的調用模式,點擊一下,就啓用了
點擊Zabbix administrators組名稱 點權限->添加
選擇全部 點擊更新。
點擊配置->動做 點擊默認的動做:
點擊操做->編輯:
修改如下內容(實際狀況,你們根據本身需求填寫,這裏僅僅爲了展現)
修改持續時間爲60秒
修改步驟爲3,表示觸發3次動做
選擇用戶Admin
選擇僅送到sendEmail.sh
點擊更新
解釋:
默認的步驟是1-1,也便是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給Admin用戶和zabbix administrator組。
假如故障持續了1個小時,它也只發送一次。若是改爲1-0,0是表示不限制.無限發送
間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。
若是須要短信報警的話,能夠再建立一條新的動做,選擇短信腳本。
我這裏添加一個條件,觸發後:
郵件發送後內容爲:
點擊報表->動做日誌 能夠看到觸發動做的次數。只會有3次,除非test主機狀態改變,也就是正常的時候,會觸發一次,不然不會再觸發。
你們能夠看到郵件裏面內容都堆到一塊兒了,沒有換行,有點不爽。
能夠修改動做日誌的內容格式
點擊 配置->動做->Report problems to Zabbix administrators
在默認信息每一行後面添加
列如:
Trigger: {TRIGGER.NAME}<br/>
Trigger status: {TRIGGER.STATUS}<br/>
Trigger severity: {TRIGGER.SEVERITY}<br/>
Trigger URL: {TRIGGER.URL}<br/>
Item values:<br/>
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}<br/>
2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}<br/>
3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}<br/>
Original event ID: {EVENT.ID}
由於我用sendEmail.sh腳本指定格式是html,因此換行就是<br/>
或者改爲中文提示:
默認信息和恢復信息是同樣的
告警主機: {HOSTNAME1}<br/>
告警時間: {EVENT.DATE} {EVENT.TIME}<br/>
告警等級: {TRIGGER.SEVERITY}<br/>
告警信息: {TRIGGER.NAME}<br/>
告警項目: {TRIGGER.KEY1}<br/>
問題詳情: {ITEM.NAME}: {ITEM.VALUE}<br/>
當前狀態: {TRIGGER.STATUS}: {ITEM.VALUE1}<br/>
事件ID: {EVENT.ID}