使用Zabbix监控pfSense

Zabbix是一个高度集成的企业级开源网络监控解决方案,提供分布式监控以及集中的Web管理界面。zabbix可以对主机、网络设备、数据库性能等实时监控,利用可定制警告机制,来保证维护人员快速解决问题;提供分析报表及实时的图形化数据处理,实现对主机7×24小时集中监控。 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 $1
UserParameter=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:OpenVPN server user Auth,单击添加。完成此操作后,等待系统收集统计数据,该过程可能需要花费数分钟。

、使用Zabbix监控pfSense

完成所有操作后,回到配置->主机,将看到防火墙显示其所有应用程序,项目,触发器,图形等。单击图形可查看防火墙的各项状态。

导航到监测 ->主机,选择pfSense防火墙和要查看的图表。如果正确完成所有操作,则会显示一些图表数据,如下图所示。

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

发表评论

邮箱地址不会被公开。 必填项已用*标注