搭建ZABBIX4.0服務安裝部署及監控配置


ZABBIX官方網站:http://www.zabbix.com/

企業級監控解決方案

zabbix 是一個基於 WEB 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案

zabbix 能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位解決存在的各種問題。

Zabbix 主要特點

安裝與配置簡單,學習成本低 支持多語言(包括中文) 免費開源 自動發現服務器與網絡設備分布式監視以及 WEB 集中管理功能 可以無 agent 監視 用戶安全認證和柔軟的授權方式 通過 WEB 界面設置或查看監視結果 email 等通知功能

Zabbix主要功能

監控CPU負載、內存使用、磁盤使用、網絡狀態、端口監視、日志監視、插件開發自定義

Zabbix運行機制

Zabbix Server 和 Zabbix agent

Zabbix Server 可以通過 SNMP,Zabbix agent,Ping,端口監視等你方法提供對遠程服務器/網絡狀態的 監視,數據收集功能,可以在運行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平台。

Zabbix Agent 安裝在需要被監控的目標服務器上,主要完成對硬件信息與操作系統有關的內存,CPU 等你 信息收集。

Zabbix Server 可以單獨監視遠程服務器的服務狀態,同時也可以與 Zabbix Agent 結合。可以輪詢 Zabbix Agent 主動接收監視數據(trapping 傳遞 方式),同時還可以被動接收 Zabbix Agent 發送的數據。

Zabbix運行過程圖 

Zabbix 支持多種網絡方式下的監控,可以通過分布式的部署和安裝監控代理 Zabbix,通過 C/S 模式采集數據,通過 B/S 模式在 Web 端展示和配置!Agent 監控端口 10050

服務端安裝 Zabbix Server 和 Zabbix Agent 兩個服務,客戶端只安裝 Zabbix Agent 一個服務,監控原理 就是 Zabbix Agent 服務將從系統中獲取的相關數據傳送給 Zabbix Server,然后 Zabbix Server 服務獎數據分 析之后以 PHP 頁面展示出來!

服務器信息:

操作系統 主機名 IP地址 節點角色 CPU Memory
Centos7.5 xiaoliu10 192.168.0.10 zabbix-server 2 4G

一、server端環境配置

1-1、LAMP以及基本環境安裝

直接采用yum的方式進行安裝

yum  -y install httpd php mariadb-server mysql-devel php-gd gcc php-mysql php-xml libcurl-devel curl-* net-snmp* libxml2-* php-mbstring php-bcmath ntp libevent-devel php-ldap vim net-tools wget unzip
1.2關閉 Selinux 和防火牆
systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
​
vim /etc/selinux/config
    SELINUX=disabled

reboot #如果原來的系統開着 selinux,那么需要重啟,才能關閉 selinux

1.3同步時間

yum install ntp -y && systemctl enable ntpd.service && systemctl start ntpd.service

1.4配置MySQL數據庫

啟動mysql服務並設置開機啟動

systemctl start mariadb
​
systemctl enable mariadb

初始化mysql數據庫

mysql_secure_installation   #根據提示設置數據庫密碼

登陸數據庫

mysql -uroot -p  

查看數據庫編碼

show variables like 'character_set_%';
 
創建zabbix使用數據庫
create database zabbix;
grant all on zabbix.* to zabbix@localhost identified by 'zabbix123';
flush privileges;
 

以上命令建立了名為zabbix的數據庫,並建立了zabbix用戶,設置用戶密碼為zabbix123,並授權訪問zabbix數據庫且只允許本機連接改數據庫

2源碼安裝zabbix

2.1編譯安裝zabbix

下載zabbix源碼

cd /tmp/     #臨時目錄 
​
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.2/zabbix-4.0.2.tar.gz 

解壓

tar zxvf zabbix-4.0.2.tar.gz && cd zabbix-4.0.2 

安裝

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 
​
make install 

創建zabbix系統用戶
groupadd zabbix ​
useradd -s /sbin/nologin -g zabbix zabbix ​

導入數據庫,注意順序,否則會報錯

mysql -uroot -p123456 zabbix</tmp/zabbix-4.0.2/database/mysql/schema.sql  #用戶密碼 
​
mysql -uroot -p123456 zabbix</tmp/zabbix-4.0.2/database/mysql/images.sql  #用戶密碼 
​
mysql -uroot -p123456 zabbix</tmp/zabbix-4.0.2/database/mysql/data.sql    #用戶密碼

2.2安裝Zabbix WEB

apache是用yum安裝 默認的web目錄為/var/www/html,拷貝zabbix web的文件到這個目錄

cd /var/www/html/ 
​
cp -R /tmp/zabbix-4.0.2/frontends/php/* . 
​
chown -R apache:apache /var/www/html/ 

調整參數php參數,編輯php.ini文件

vim /etc/php.ini​
384  max_execution_time = 300394  max_input_time = 300672  post_max_size = 16M​
878  date.timezone = Asia/Shanghai​
1315: bcmath.scale = 1
啟動http服務器,並設置開機啟動
systemctl start httpd​
systemctl enable httpd
打開瀏覽器直接訪問zabbix server的IP地址 192.168.0.10,即可看到zabbix web安裝頁面 

點擊Next step

(檢查一下,看看都OK的,確認沒有問題 ps:有問題去根據問題參數去修改php.ini)

直接Next step

這里是設置數據庫連接信息,數據庫為zabbix,數據庫用戶為zabbix,密碼為zabbix123(之前設置的),填好之后直接Next step

直接Next step 

確認信息無誤,直接Next step

創建配置文件成功,zabbix web安裝成功,點Finish。 默認用戶名:Admin 密碼:zabbix

3配置zabbix

3.1配置zabbix server

配置zabbix server文件

vim /usr/local/zabbix/etc/zabbix_server.conf
​
86 DBHost=localhost
​
94 DBName=zabbix
​
110 DBUser=zabbix
​
119 DBPassword=zabbix123
​
修改以上內容,即可完成對zabbix server的配置 啟動zabbix server
​
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
​
檢查啟動
​
netstat -antup | grep zabbix 

查看日志有無報錯

tail -f /tmp/zabbix_server.log 
​
設置開機啟動 
​
echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local 

配置管理腳本

cp /tmp/zabbix-4.0.2/misc/init.d/fedora/core/zabbix_server /etc/init.d/
​
vim /etc/init.d/zabbix_server
​
22 BASEDIR=/usr/local/zabbix #修改此行內容為 zabbix 的安裝位置
​
chkconfig --add zabbix_server
​
chkconfig  zabbix_server on

3.3配置Zabbix Agent

由於目前zabbix server和zabbix agent都安裝在同一台機器上,默認的zabbix agent配置文件已經配置了zabbix server地址為127.0.0.1(本機),所以無需修改,直接用一下命令啟動zabbix agent

如果在其他監控機上則需要修改如下

vim /usr/local/zabbix/etc/zabbix_agentd.conf
​
94 Server=192.168.0.10  #zabbix server 地址,可以多個,用,隔開
135 ServerActive=192.168.0.10  #主動檢查主機的數據的數據發送給 Zabbix Server
146 Hostname=xiaoliu*  #被檢測主機名

 

只需修改以上三個參數即可

啟動agent

/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf 
​
檢查啟動
​
netstat -antup | grep zabbix 


設置開機啟動

echo /usr/local/zabbix/sbin/zabbix_agentd >> /etc/rc.local
配置管理腳本

cp /tmp/zabbix-4.0.2/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
​
vim /etc/init.d/zabbix_agentd
​
22 BASEDIR=/usr/local/zabbix #修改此行內容為 zabbix 的安裝位置
​
chkconfig --add zabbix_agentd
​
chkconfig  zabbix_agentd on

 

4 ZABBIX監控apache

4.1 下載腳本

cd ​
wget https://github.com/lorf/zapache/archive/master.zip
​
解壓
​
unzip master.zip
​
cd zapache-master

說明:

httpd-server-status.conf.sample 是用於配置server-status的上個步驟已經配置過了

userparameter_zapache.conf.sample 、zapache 關鍵的文件

zapache-template-active.xml zapache-template.xml模板

將解壓出來的幾個重要文件放到相應目錄

cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/ 
​
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
​
mv userparameter_zapache.conf.sample userparameter_zapache.conf
​
vim userparameter_zapache.conf
​
6 UserParameter=zapache[*],/var/lib/zabbixsrv/externalscripts/zapache \$1 
​
6改為UserParameter=zapache[*],/usr/local/bin/zapache \$1
​
cp zapache-master/zapache /usr/local/bin/
​
chmod +X /usr/local/bin/zapache

4.2 zabbix agentd模板導入

導入模板

 

 

然后導入

5 Zabbix郵件報警配置

5.1安裝郵件發送工具mailx

yum install mailx
​
查看mailx版本:
​
mail -V

5.2配置外部郵箱

vim /etc/mail.rc
​
在最末尾添加如下
​
set from=*******@qq.com #發件郵箱
​
set smtp=smtp.qq.com
​
set smtp-auth-user=*****@qq.com #發件郵箱
​
set smtp-auth-password=***  #你的密碼  PS:此為QQ郵箱設置的客戶端授權密碼
​
set smtp-auth=login

這邊的客戶端授權密碼

測試外部郵箱

echo "this is zabbix test mail" |mailx -s "zabbix" ****@qq.com #接收郵箱 

寫郵件發送腳本

cd /usr/local/zabbix/share/zabbix/alertscripts/
​
vim sendmail.sh
​
\#!/bin/bash
​
messages=`echo $3 | tr '\r\n' '\n'`
​
subject=`echo $2 | tr '\r\n' '\n'`
​
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

 

授權

chown zabbix.zabbix sendmail.sh 
​
chmod 755 sendmail.sh  

修改主配置文件,讓服務讀取到這個腳本:

vim /usr/local/zabbix/etc/zabbix_server.conf
​
506 # AlertScriptsPath=${datadir}/zabbix/alertscripts
​
為
​
506 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
​
touch /tmp/sendmail.log
​
chmod 777 /tmp/sendmail.log

發送測試腳本

/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh ******@qq.com "測試標題" "測試內容"

 

頁面添加

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

5.3配置用戶

添加警報媒介

添加報警動作

動作

Action-Email

操作

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

默認信息:

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

添加恢復操作

默認接收人:已恢復!{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}

恢復信息:

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

重啟server

/etc/init.d/zabbix_server restart

6 Zabbix 釘釘警報

6.1釘釘配置

在群組中添加機器人

選擇自定義機器人

創建webhook 用於發送消息的

6.2釘釘腳本配置

編寫腳本

cd /usr/local/zabbix/share/zabbix/alertscripts
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url =
 "https://oapi.dingtalk.com/robot/send?access_token=46e7d1cb4afd4bf4190b6302a514ab474a37cbc6***************55b"#這里就是需要的那webhook  
def msg(text):
   json_text= {
    "msgtype": "text",
    "text": {
        "content": text
     },
     "at": {
        "atMobiles": [
            "189..." #需要@群里誰
        ],
        "isAtAll": True #是否全部@,True為是,False為否
    }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content 
if __name__ == '__main__':
   text = sys.argv[1]
msg(text)
​
給腳本加權限
​
chmod 755 dingding.py & chown -R zabbix.zabbix dingding.py
​
安裝模塊(沒有request模塊的話腳本會執行不了)
​
pip install requests 
​
測試腳本是否可執行
​
 ./dingding.py test

 

6.3創建釘釘報警媒介

這邊腳本參數添加一個就可以了

{ALERT.MESSAGE}

添加用戶

權限這邊選超級管理員

創建動作(跟郵件微信一樣)

創建

操作

恢復

到此配置完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM