返回列表 发帖

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



修改被监控主机的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

SNMP Version:( 支持v1、v2c )
图片3.png

SNMP OID:
图片4.png



启动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

移除agent代理程序的接口:
图片6.png

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

本页拖下去:
图片8.png



给主机c7添加模板:( Template OS Linux SNMPv2  )
图片9.png


监控成功:
图片10.png

图片11.png




###

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

监测》图形

CPU使用率:
图片12.png

图片13.png

图片14.png



图片15.png

图片16.png

这里可以看到被监控主机的CPU核心数:
图片17.png



网卡流量:
图片18.png

图片19.png

图片20.png




被监控主机的硬盘分区情况:
lsblk
图片22.png

df -hT
图片23.png


查看根分区使用情况:
图片24.png

图片25.png

可以看到根分区的大小、已使用量、使用率:
图片26.png



查看/home分区的使用情况:
图片27.png

图片28.png

可以看到/home分区的大小、已使用量、使用率:
图片29.png



查看/var分区的使用情况:
图片30.png

图片31.png

可以看到/var分区的大小、已使用量、使用率:
图片32.png



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

图片34.png

图片35.png



内存使用率:
图片36.png

图片37.png

图片38.png


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

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


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


修改公式:(加或减偏差值
(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


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

图片43.png

图片44.png













######

被监控主机安装、使用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
注释:要自定义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


图片47.png


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







######

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


确认模板Template App FTP Service添加成功:
图片50.png


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



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

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

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



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

图片55.png

备注:
假如被监控主机的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


更换端口后,一切正常:
图片57.png







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


解决方法:

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

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


克隆后,自定义新监控项的名称、键值
名称自定义为: FTP service(2121) is running
键值改为: net.tcp.service[ftp,,2121]
图片60.png
备注:其他地方保持默认即可,记得点击本页底下的“添加”按钮。



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


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

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

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



旧的触发器( FTP service is down on {HOST.NAME} )要禁用
图片63.png



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

图片65.png

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






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

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

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

返回列表