返回列表 发帖

Zabbix使用SNMP监控CentOS8/Redhat8

被监控主机的信息:
[root@redhat8 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@redhat8 ~]#
[root@redhat8 ~]# uname -r
4.18.0-193.el8.x86_64

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


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

[root@redhat8 ~]# ifconfig ens160 |grep netmask |awk '{print $2}'
192.168.168.155



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


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



修改被监控主机的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@redhat8 ~]# vi /etc/snmp/snmpd.conf
SNMP Community: public
图片58.png
2020-12-21 00:15


SNMP Version:( 支持v1、v2c )
图片2.png
2020-12-20 23:33


SNMP OID:
图片3.png
2020-12-20 23:33




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

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

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


检测snmpd是否运行中:(运行时的效果)
[root@redhat8 ~]# ps aux |grep snmpd |grep -v grep
root       11882  0.1  0.7 100092 13704 ?        Ss   18:55   0:00 /usr/sbin/snmpd -LS0-6d -f
[root@redhat8 ~]#
[root@redhat8 ~]# echo $?
0


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


检测snmpd是否运行中:(关闭时的效果)
[root@redhat8 ~]# ps aux |grep snmpd |grep -v grep
[root@redhat8 ~]#
[root@redhat8 ~]# echo $?
1


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



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

查看防火墙所有打开的端口:
[root@redhat8 ~]# firewall-cmd --zone=public --list-ports
161/udp

查看防火墙所有打开的服务:(cockpit、dhcpv6-client、ssh服务是默认开启的)
[root@redhat8 ~]# firewall-cmd --zone=public --list-services
cockpit dhcpv6-client ssh

查看Firewalld的配置文件:
[root@redhat8 ~]# 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"/>
  <service name="cockpit"/>
  <port port="161" protocol="udp"/>
</zone>



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


[root@redhat8 ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted











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

Zabbix创建主机:

配置〉〉主机〉〉创建主机(主机名称无需与被监控主机的真实主机名一致;群组可以随便选)
移除agent代理程序的接口、
使用SNMP接口:( 指明被监控主机的IP地址;端口为UDP 161 )
图片4.png
2020-12-20 23:35


本页拖下去:
图片5.png
2020-12-20 23:35




给主机c8添加模板:( Template OS Linux SNMPv2  )
图片6.png
2020-12-20 23:36



监控成功:
图片7.png
2020-12-20 23:36


图片8.png
2020-12-20 23:36






###

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

监测》图形

CPU使用率:
图片9.png
2020-12-20 23:37


图片10.png
2020-12-20 23:37


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




Systemc load:
图片13.png
2020-12-20 23:38


图片14.png
2020-12-20 23:38


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




图片16.png
2020-12-20 23:38


图片17.png
2020-12-20 23:38


图片18.png
2020-12-20 23:39




内存使用率:
图片19.png
2020-12-20 23:39


图片20.png
2020-12-20 23:39


图片21.png
2020-12-20 23:39




网卡流量:
图片22.png
2020-12-20 23:40


图片23.png
2020-12-20 23:40


图片24.png
2020-12-20 23:40





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


df -hT
图片26.png
2020-12-20 23:41



查看根分区使用情况:
图片27.png
2020-12-20 23:42


图片28.png
2020-12-20 23:42


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




被监控主机的交换分区(Swap)的使用情况:( free -m
图片30.png
2020-12-20 23:43



图片31.png
2020-12-20 23:43


图片32.png
2020-12-20 23:43


图片33.png
2020-12-20 23:43




第一块硬盘的读写速度:( nvme0n1: Disk read/write rates )
图片34.png
2020-12-20 23:44


图片35.png
2020-12-20 23:44


图片36.png
2020-12-20 23:44










######

给主机c8添加模板:( Template App SSH Service
笺注:其实这个模板的原理就是监控TCP 22端口,看这个端口是否能用。
图片37.png
2020-12-20 23:45



确认模板添加成功:
图片38.png
2020-12-20 23:45




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




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


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

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




测试一:

被监控主机:
[root@redhat8 ~]# systemctl stop sshd


仪表板会如下图显示:(显示触发器的名称)
SSH service is down on c8
图片42.png
2020-12-20 23:47


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




被监控主机:
[root@redhat8 ~]# systemctl start sshd


仪表板的告警自动消失:
图片44.png
2020-12-20 23:47





测试二:

在防火墙(Firewalld)删除服务ssh:
firewall-cmd --zone=public --remove-service=ssh --permanent
firewall-cmd --reload

查看防火墙所有打开的服务:
[root@redhat8 ~]# firewall-cmd --zone=public --list-services
cockpit dhcpv6-client


仪表板会如下图显示:(显示触发器的名称)
图片45.png
2020-12-20 23:48




防火墙添加服务ssh:(相当于打开TCP 22端口)
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --reload

再次查看防火墙所有打开的服务:
[root@redhat8 ~]# firewall-cmd --zone=public --list-services
cockpit dhcpv6-client ssh


仪表板的告警自动消失:
图片46.png
2020-12-20 23:49


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








假如被监控主机的SSH的端口要改为TCP 32500

[root@redhat8 ~]# vi /etc/ssh/sshd_config
图片47.png
2020-12-20 23:49

修改为:
图片48.png
2020-12-20 23:49



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


再重启SSH服务:
[root@redhat8 ~]# systemctl restart sshd


确认服务端口已经更改成功:
[root@redhat8 ~]# netstat -anp |grep 32500
tcp        0      0 0.0.0.0:32500           0.0.0.0:*               LISTEN      12132/sshd         
tcp6       0      0 :::32500                :::*                    LISTEN      12132/sshd  



现在,客户端访问被监控主机的SSH就要使用TCP 32500端口了:
图片49.png
2020-12-20 23:50





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



解决方法:

修改模板 Template App SSH Service 进行监控TCP 32500端口

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



克隆后,自定义新监控项的名称、键值
名称自定义为: SSH service(32500) is running
键值改为: net.tcp.service[ssh,,32500]
图片52.png
2020-12-20 23:51

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



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



克隆后,自定义新触发器的名称、严重性、表达式
名称自定义为: SSH service(32500) is down on {HOST.IP}
严重性: 严重
表达式改为: {c8:net.tcp.service[ssh,,32500].max(#3)}=0
图片54.png
2020-12-20 23:53


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

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



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




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


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


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







相关文章:
CentOS8防火墙(firewalld)
最小化安装CentOS8
Zabbix使用SNMP监控CentOS6/Redhat6

返回列表