pfSense配置Zabbix監控

Zabbix是一個高度集成的企業級開源網絡監控解決方案,提供分佈式監控以及集中的Web管理界面。zabbix可以對主機、網絡設備、數據庫性能等實時監控,利用可定製警告機制,來保證維護人員快速解決問題;提供分析報表及實時的圖形化數據處理,實現對主機7x24小時集中監控。 Zabbix通過C/S模式採集數據,通過B/S模式在Web端展示和配置,通過SNMP協議傳輸,被監控對象只需要支持SNMP協議或者運行Zabbix—agents代理程序即可。

pfSense支持Zabbix監控,下面在pfsense2.5(開發版)上介紹配置過程。本例中,Zabbix服務器IP地址:192.168.100.98,pfSense防火牆LAN接口地址:192.168.100.254。

一、搭建Zabbix服務器

在Zabbix官網上,有不同linux系統搭建Zabbix服務器的簡要說明,我選用的操作系統爲Ubuntu,搭建過程如下:

1、安裝Zabbix倉庫

# wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb
# dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb
# apt update

2、安裝Zabbix服務器、前端、代理

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

3、安裝數據庫

# apt install -y mysql-server

初始化數據庫,輸入root賬戶的密碼,其他設置如果沒什麼特殊要求,建議都選"y"

# mysql_secure_installation

4、創建數據庫

在數據庫主機上運行以下命令,新建數據庫:zabbix,用戶名:zabbix,密碼:password

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

5、導入初始架構和數據

這裏會提示輸入新創建的密碼。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

6、配置數據庫

編輯文件 /etc/zabbix/zabbix_server.conf,將以下字段修改爲:

DBPassword=password

由於文件爲只讀屬性,在修改之前請執行以下命令:

Sudo chmod 777 /etc/zabbix/zabbix_server.conf

7、啓動Zabbix服務器和代理進程

啓動Zabbix服務器和代理進程,並使其在系統啓動時啓動。

# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2

8、登錄Zabbix服務器

在瀏覽器輸入“http://服務器IP地址/zabbix”進行訪問。

默認的登錄帳號和密碼爲“Admin”、“zabbix“。

二、安裝Zabbix代理插件

登錄到pfSense防火牆,然後導航至“ 系統”->“插件管理”->“可用插件”。搜索Zabbix字段,會有幾個不同的Zabbix-Agent版本。根據需要選擇適合的Zabbix版本。如果服務器安裝了Zabbix 5.2,則必須選擇zabbix-agent5.2。

二、配置Zabbix代理

接下來,我們需要配置Zabbix代理並將其指向我們的服務器。導航到服務-> Zabbix代理。選中“ 啓用Zabbix代理服務”選項,然後輸入Zabbix服務器的IP地址、服務器活動,主機名輸入pfSense防火牆的FQDN,爲了滿足後面Zabbix服務器監控模板的設置要求,超時值設爲5,其他設置採用默認值,如下圖所示。

本示例未選擇任何加密選項。

注意,爲了滿足後面Zabbix服務器監控模板的設置要求,在高級功能>User Parameters裏,請填寫如下內容:

AllowRoot=1
UserParameter=pfsense.states.max,grep "limit states" /tmp/rules.limits | cut -f4 -d ' 'UserParameter=pfsense.states.current,grep "current entries" /tmp/pfctl_si_out | tr -s ' ' | cut -f4 -d ' 'UserParameter=pfsense.mbuf.current,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f1
UserParameter=pfsense.mbuf.cache,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f2
UserParameter=pfsense.mbuf.max,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f4
UserParameter=pfsense.discovery[*],/usr/local/bin/php /root/scripts/pfsense_zbx.php discovery $1UserParameter=pfsense.value[*],/usr/local/bin/php /root/scripts/pfsense_zbx.php $1 $2 $3

三、添加監控腳本

GitHub下載適用pfSense的監控模板,如果不能訪問GitHup,點這裏本地下載,解壓縮備用,該模板的使用說明詳見README.md文件。

進入pfSense的shell環境,執行以下命令:

mkdir /root/scripts
curl -o /root/scripts/pfsense_zbx.php https://raw.githubusercontent.com/rbicelli/pfsense-zabbix-template/master/pfsense_zbx.php

如果你的網絡環境不能正常訪問GitHup,可以使用Winscp將壓縮包裏的pfsense_zbx.php文件手動上傳到/root/scripts目錄。

四、添加防火牆規則

在內網訪問,無需添加任何防火牆規則。如果Zabbix服務器在外部網絡,必須在WAN接口上添加防火牆規則,以允許Zabbix主機訪問pfSense的10050端口。轉到防火牆->規則->WAN,添加一個新規則,如下圖所示。

五、添加主機到Zabbix

要使用Zabbix監視pfSense,我們需要將它添加到Zabbix服務器中。在添加之前,我們需要先添加適用pfSense的監控模板。登錄到Zabbix,導航到配置->模板,點擊右上角的導入,選中第四步下載的壓縮包中的兩個xml文件,上傳到服務器。

下面添加主機。導航到配置->主機,點擊右上角的創建主機,根據提示輸入各項參數。輸入pfSense主機名,可見名稱,添加合適的組(可以自己新建)。在Interfaces下面單擊添加,然後輸入pfSense的IP地址、訪問端口,點擊更新。

轉到模板選項卡並鏈接新模板。選擇pfsense Active和pfsense active:Open*** server user Auth,單擊添加。完成此操作後,等待系統收集統計數據,該過程可能需要花費數分鐘。

、使用Zabbix監控pfSense

完成所有操作後,回到配置->主機,將看到防火牆顯示其所有應用程序,項目,觸發器,圖形等。單擊圖形可查看防火牆的各項狀態。

導航到監測 ->主機,選擇pfSense防火牆和要查看的圖表。如果正確完成所有操作,則會顯示一些圖表數據,如下圖所示。

至此,Zabbix監控pfSense配置完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章