返回列表 发帖

Zabbix使用SNMP监控CentOS7/Redhat7

被监控主机的信息:
[root@ser1 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@ser1 ~]#
[root@ser1 ~]# uname -r
3.10.0-1127.el7.x86_64

[root@ser1 ~]# hostname
ser1.zhuohua.store
[root@ser1 ~]# cat /etc/hostname
ser1.zhuohua.store


[root@ser1 ~]# ifconfig
-bash: ifconfig: 未找到命令
[root@ser1 ~]#
[root@ser1 ~]# yum -y install net-tools

[root@ser1 ~]# ifconfig ens33 |grep netmask |awk '{print $2}'
192.168.168.190


被监控主机安装软件包:
[root@ser1 ~]# yum -y install net-snmp lm_sensors

安装后,查看SNMP的版本( snmpd -v
图片1.png
2020-12-20 22:43




修改被监控主机的SNMP配置文件 /etc/snmp/snmpd.conf

sed -i 's/access  notConfigGroup ""      any       noauth    exact  systemview none none/access  notConfigGroup ""      any       noauth    exact  all none none/g' /etc/snmp/snmpd.conf

################# 192.168.168.154为Zabbix服务器的IP地址
sed -i 's/com2sec notConfigUser  default       public/com2sec notConfigUser  192.168.168.154       public/g' /etc/snmp/snmpd.conf

#################
echo 'view all    included  .1                               80' >> /etc/snmp/snmpd.conf



[root@ser1 ~]# vi /etc/snmp/snmpd.conf
SNMP Community: public
图片2.png
2020-12-20 22:45


SNMP Version:( 支持v1、v2c )
图片3.png
2020-12-20 22:45


SNMP OID:
图片4.png
2020-12-20 22:46




启动snmpd服务:
[root@ser1 ~]# systemctl start snmpd

开机自动启动snmpd服务:
[root@ser1 ~]# systemctl enable snmpd

确认开机自动启动snmpd服务:
[root@ser1 ~]# systemctl is-enabled snmpd
enabled



检测snmpd是否运行中:(运行时的效果)
[root@ser1 ~]# pgrep -l snmpd
10133 snmpd
[root@ser1 ~]#
[root@ser1 ~]# echo $?
0


关闭snmpd服务:
[root@ser1 ~]# systemctl stop snmpd


检测snmpd是否运行中:(关闭时的效果)
[root@ser1 ~]# pgrep -l snmpd
[root@ser1 ~]#
[root@ser1 ~]# echo $?
1


重启snmpd服务:
[root@ser1 ~]# systemctl restart snmpd



添加防火墙(Firewalld)规则: (打开UDP 161端口)
firewall-cmd --zone=public --add-port=161/udp --permanent
firewall-cmd --reload


查看Firewalld的配置文件:
[root@ser1 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="udp" port="161"/>
</zone>



关闭SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config






########################################
########################################

Zabbix创建主机:

配置〉〉主机〉〉创建主机(主机名称无需与被监控主机的真实主机名一致;群组可以随便选)
图片5.png
2020-12-20 22:47


移除agent代理程序的接口:
图片6.png
2020-12-20 22:48


使用SNMP接口:( 指明被监控主机的IP地址;端口为UDP 161 )
图片7.png
2020-12-20 22:48


本页拖下去:
图片8.png
2020-12-20 22:48




给主机c7添加模板:( Template OS Linux SNMPv2  )
图片9.png
2020-12-20 22:49



监控成功:
图片10.png
2020-12-20 22:49


图片11.png
2020-12-20 22:49





###

查看模板Template OS Linux SNMPv2自带图形:(要等一段时间才会出现)

监测》图形

CPU使用率:
图片12.png
2020-12-20 22:49


图片13.png
2020-12-20 22:50


图片14.png
2020-12-20 22:50




图片15.png
2020-12-20 22:50


图片16.png
2020-12-20 22:50


这里可以看到被监控主机的CPU核心数:
图片17.png
2020-12-20 22:51




网卡流量:
图片18.png
2020-12-20 22:51


图片19.png
2020-12-20 22:51


图片20.png
2020-12-20 22:51





被监控主机的硬盘分区情况:
lsblk
图片22.png
2020-12-20 22:52


df -hT
图片23.png
2020-12-20 22:52



查看根分区使用情况:
图片24.png
2020-12-20 22:52


图片25.png
2020-12-20 22:53


可以看到根分区的大小、已使用量、使用率:
图片26.png
2020-12-20 22:53




查看/home分区的使用情况:
图片27.png
2020-12-20 22:53


图片28.png
2020-12-20 22:54


可以看到/home分区的大小、已使用量、使用率:
图片29.png
2020-12-20 22:54




查看/var分区的使用情况:
图片30.png
2020-12-20 22:54


图片31.png
2020-12-20 22:54


可以看到/var分区的大小、已使用量、使用率:
图片32.png
2020-12-20 22:54




第一块硬盘的读写速度:( sda: Disk read/write rates )
图片33.png
2020-12-20 22:55


图片34.png
2020-12-20 22:55


图片35.png
2020-12-20 22:55




内存使用率:
图片36.png
2020-12-20 22:56


图片37.png
2020-12-20 22:56


图片38.png
2020-12-20 22:56



监控到的内存使用率的值与实际的内存使用率的值,存在较大偏差:
图片39.png
2020-12-20 22:56


内存使用率=(total-available)/total


内存使用率自带的监控项:(来源于模板Template OS Linux SNMPv2)
名称: Memory utilization
键值: vm.memory.util[snmp]
图片40.png
2020-12-20 22:57



修改公式:(加或减偏差值
(last("vm.memory.total[memTotalReal.0]")-(last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")))/last("vm.memory.total[memTotalReal.0]")*100+14
图片41.png
2020-12-20 22:58



主机c7的监控项(Memory utilization)的公式更新后,图形里的值也就正确了:
图片42.png
2020-12-20 22:58


图片43.png
2020-12-20 22:58


图片44.png
2020-12-20 22:58














######

被监控主机安装、使用PureFTPd虚拟用户验证

安装依赖软件包:
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

下载pure-ftpd-1.0.47.tar.gz:https://pan.baidu.com/s/1BabTr2PzXzTdmBGLE53HwQ

编译安装:
tar -zxvf pure-ftpd-1.0.47.tar.gz && cd pure-ftpd-1.0.47
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
make && make install


修改PureFTPd的配置文件:(可拿以下代码直接覆盖原文件,记得去掉注释)
[root@ser1 ~]# cat /usr/local/pureftpd/etc/pure-ftpd.conf |grep -v ^# |grep -v ^$
ChrootEveryone               yes
BrokenClientsCompatibility   no
MaxClientsNumber             50
Daemonize                    yes
MaxClientsPerIP              8
VerboseLog                   no
DisplayDotFiles              yes
AnonymousOnly                no
NoAnonymous                  yes  #不允许匿名用户
SyslogFacility               ftp
DontResolve                  yes
MaxIdleTime                  15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion               10000 8
AnonymousCanCreateDirs       no
MaxLoad                      4
PassivePortRange             9000 9045  #开放的端口
AntiWarez                    yes
Umask                        133:022
MinUID                       100
AllowUserFXP                 no
AllowAnonymousFXP            no
ProhibitDotFilesWrite        no
ProhibitDotFilesRead         no
AutoRename                   no
AnonymousCantUpload          yes
CreateHomeDir                yes
MaxDiskUsage                   99
CustomerProof                yes
IPV4Only                     yes



启动PureFTPd服务:
[root@ser1 ~]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf


开机自动启动PureFTPd服务:
[root@ser1 ~]# vi /etc/rc.local
追加:
/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf

[root@ser1 ~]# chmod a+x /etc/rc.d/rc.local



检测PureFTPd是否运行中:(运行时的效果)
[root@ser1 ~]# ps -ef |grep pure-ftpd |grep -v grep
root      25960      1  0 10:30 ?        00:00:00 /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
[root@ser1 ~]#
[root@ser1 ~]# echo $?
0


关闭PureFTPd:
[root@ser1 ~]# killall -9 pure-ftpd
-bash: killall: 未找到命令
[root@ser1 ~]#
[root@ser1 ~]# yum -y install psmisc

[root@ser1 ~]# killall -9 pure-ftpd


检测PureFTPd是否运行中:(关闭时的效果)
[root@ser1 ~]# ps -ef |grep pure-ftpd |grep -v grep
[root@ser1 ~]#
[root@ser1 ~]# echo $?
1



创建一个真实的系统用户:
[root@ser1 ~]# adduser -d /home/pure -s /sbin/nologin pure


创建FTP目录:
mkdir -p /www/web
chmod -R 777 /www/web/


添加FTP虚拟用户(zhuohua),并指定其FTP目录:
/usr/local/pureftpd/bin/pure-pw useradd zhuohua -u pure -d /www/web/
图片45.png
2020-12-20 23:01

注释:要自定义FTP虚拟用户zhuohua的密码


每添加一个新的FTP虚拟用户后,都要重新生成数据库文件:
[root@ser1 ~]# /usr/local/pureftpd/bin/pure-pw mkdb
[root@ser1 ~]#
[root@ser1 ~]# ls -lh /usr/local/pureftpd/bin/pure-pw
-rwxr-xr-x. 1 root root 128K 12月  1 10:25 /usr/local/pureftpd/bin/pure-pw


打开防火墙(Firewalld)以下端口:( TCP 21、9000-9045 )
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=9000-9045/tcp --permanent
firewall-cmd --reload


再次查看Firewalld的配置文件:
[root@ser1 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="udp" port="161"/>
  <port protocol="tcp" port="21"/>
  <port protocol="tcp" port="9000-9045"/>

</zone>




Windows客户端访问被监控主机的FTP(PureFTPd)

软件winscp的下载链接:https://pan.baidu.com/s/1lXa21_RrPjSPnxALZbPhGw

WinSCP是常用的FTP、SFTP客户端软件,这里使用的文件协议为 FTP
图片46.png
2020-12-20 23:02



图片47.png
2020-12-20 23:03



至此,上传、下载都是没有问题的;对于/www/web/里面的所有内容,zhuohua具有完全控制的权限:
图片48.png
2020-12-20 23:03








######

给主机c7添加模板Template App FTP Service
笺注:其实这个模板的原理就是监控TCP 21端口,看这个端口是否能用。
图片49.png
2020-12-20 23:04



确认模板Template App FTP Service添加成功:
图片50.png
2020-12-20 23:04



模板Template App FTP Service自带的监控项:
名称: FTP service is running
键值: net.tcp.service[ftp]
图片51.png
2020-12-20 23:04




模板Template App FTP Service自带的触发器:(触发器的表达式要用到监控项中的键值)
名称: FTP service is down on {HOST.NAME}
表达式: {c7:net.tcp.service[ftp].max(#3)}=0
图片52.png
2020-12-20 23:05


注释: {HOST.NAME} 是预定义变量,即当前主机的名称。

此触发器默认已启用:(可以在这里关闭触发器)
图片53.png
2020-12-20 23:05




如被监控主机的TCP 21端口不能用了,仪表板会如下图显示:(显示触发器的名称)
FTP service is down on c7
图片54.png
2020-12-20 23:06


图片55.png
2020-12-20 23:06


备注:
假如被监控主机的FTP服务没有开启,或者防火墙的TCP 21端口没有打开都会触发此触发器。








假如被监控主机的PureFTPd的端口要改为TCP 2121

修改PureFTPd的配置文件:
[root@ser1 ~]# echo 'Bind 0.0.0.0,2121' >> /usr/local/pureftpd/etc/pure-ftpd.conf

关闭PureFTPd服务:
[root@ser1 ~]# killall -9 pure-ftpd

再启动PureFTPd服务:
[root@ser1 ~]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf


打开防火墙(Firewalld)以下端口:( TCP 2121 )
firewall-cmd --zone=public --add-port=2121/tcp --permanent
firewall-cmd --reload


再次查看Firewalld的配置文件:
[root@ser1 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="udp" port="161"/>
  <port protocol="tcp" port="21"/>
  <port protocol="tcp" port="9000-9045"/>
  <port protocol="tcp" port="2121"/>
</zone>



现在,客户端访问被监控主机的FTP就要使用TCP 2121端口了:
图片56.png
2020-12-20 23:07



更换端口后,一切正常:
图片57.png
2020-12-20 23:08








当被监控主机的PureFTPd的端口改为TCP 2121后,模板Template App FTP Service自带的监控项、触发器就无法进行监控了,会如下图显示:
图片58.png
2020-12-20 23:08



解决方法:

修改模板 Template App FTP Service 进行监控TCP 2121端口

1、克隆对应的监控项:(此页面底下有个“克隆”按钮)
图片59.png
2020-12-20 23:08



克隆后,自定义新监控项的名称、键值
名称自定义为: FTP service(2121) is running
键值改为: net.tcp.service[ftp,,2121]
图片60.png
2020-12-20 23:09

备注:其他地方保持默认即可,记得点击本页底下的“添加”按钮。



2、克隆对应的触发器:(此页面底下有个“克隆”按钮)
图片61.png
2020-12-20 23:09



克隆后,自定义新触发器的名称、严重性、表达式
名称自定义为:FTP service(2121) is down on {HOST.IP}
严重性: 灾难
表达式改为: {c7:net.tcp.service[ftp,,2121].max(#3)}=0
图片62.png
2020-12-20 23:10


注释: {HOST.IP} 是预定义变量,即当前主机的IP地址。

备注:其他地方保持默认即可,记得点击本页底下的“添加”按钮。



旧的触发器( FTP service is down on {HOST.NAME} )要禁用
图片63.png
2020-12-20 23:11




如被监控主机的TCP 2121端口不能用了,仪表板会如下图显示:(显示触发器的名称)
FTP service(2121) is down on 192.168.168.190
图片64.png
2020-12-20 23:11


图片65.png
2020-12-20 23:11


备注:
假如被监控主机的FTP服务没有开启,或者防火墙的TCP 2121端口没有打开都会触发此触发器。






相关文章:
最小化安装CentOS7.8
CentOS8_PureFTPd虚拟用户验证

CentOS8_通过脚本发送Zabbix告警邮件(使用新浪邮箱的25端口)

Zabbix使用Agent监控CentOS7/Redhat7
Zabbix使用SNMP监控CentOS6/Redhat6

返回列表