Linux云计算 |【第二阶段】SECURITY-DAY1

主要内容:

监控基础(系统监控命令、监控软件)、Zabbix监控服务端部署、Zabbix监控客户端部署、创建监控主机、调用监控模板、自定义key、创建模板、应用集、监控项、绑定模板;

一、监控概述

1)监控的目的

① 实时报告系统的运行情况

每一部分必须同时监控,内容包括吞吐量、反应时间、使用率等;

② 提前发现系统的问题

进行服务器性能调整前,知道调整方向,且找出系统的瓶颈;

2)监控的资源类别

① 公开数据(共有数据)

  • Web(HTTP)、FTP、SSH、数据库等应用服务;
  • TCP或UDP端口;

② 私有数据

  • CPU、内存、磁盘、网卡流量等使用信息;
  • 用户、进程等运行信息;

3)系统监控命令

- ps  //查看进程

- uptime  //查看系统登录时间、平均负载量

- free  //查看内存信息(剩余内存容量)

- swapon -s  //查看交换分区信息

- df -h    //查看磁盘信息和挂载(查看所有磁盘的使用率)

- ifconfig   //查看网卡信息

- netstat 或ss   //查看服务端口信息

- ping    //ping访问测试

- traceroute    //路由跟踪

- iostat   //查看进程IO请求下发的数量

4)自动化监控系统软件

  • Cacti,基于SNMP协议的监控软件,强大的绘图能力;
  • Nagios,基于Agent监控,强大的状态检查与报警机制,插件较多,可写监控脚本嵌入到Nagios非常方便;
  • Zabbix,基于多种监控机制,支持分布式监控;
  • Prometheus,可监控podman容器;


案例:常用系统监控命令

  • 查看内存信息(free)
  • 查看交换分区信息(swapon -s)
  • 查看磁盘信息(df -h)
  • 查看CPU信息(uptime)
  • 查看网卡信息(ifconfig)
  • 查看端口信息(netstat、ss)

例如1:使用命令查看计算机状态数据

1)查看内存与交换分区信息

[root@web1 ~]# free     //查看内存信息total        used        free      shared  buff/cache   available
Mem:        1446804       53280     1313996        8632       79528     1270840
Swap:             0           0           0
[root@web1 ~]# free | awk '/Mem/{print $4}'     //通过awk查看剩余内存容量
1313776
[root@web1 ~]# swapon -s    //查看交换分区信息
文件名                类型            大小        已用        权限
/dev/sda3             partition        4194300    218268    -1

例如2:查看磁盘与CPU利用率

1)查看磁盘信息

[root@web1 ~]# df -h    //查看所有磁盘的使用率
文件系统          容量  已用  可用 已用% 挂载点
/dev/vda1        30G  1.3G   29G    5% /
devtmpfs        697M     0  697M    0% /dev
tmpfs           707M     0  707M    0% /dev/shm
tmpfs           707M  8.5M  699M    2% /run
tmpfs           707M     0  707M    0% /sys/fs/cgroup
tmpfs           142M     0  142M    0% /run/user/0
[root@web1 ~]# df -h | awk '/\/$/{print $5}'   //查看根分区的利用率
5%

2)查看CPU平均负载

[root@web1 ~]# uptime     //查看CPU平均负载量(1,5,15分钟)10:40:52 up 41 min,  1 user,  load average: 0.00, 0.00, 0.00
[root@web1 ~]# uptime | awk '{print $NF}'   //仅查看CPU的15分钟平均负载
0.00

例如3:查看网卡信息、端口信息、网络连接信息

1)查看网卡信息(没有ifconfig命令则需安装net-tools软件包)

[root@web1 ~]# ifconfig eth0    //查看eth0网卡信息
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 52:54:00:c3:4d:20  txqueuelen 1000  (Ethernet)RX packets 3974  bytes 458236 (447.4 KiB)RX errors 0  dropped 1437  overruns 0  frame 0TX packets 298  bytes 26816 (26.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@web1 ~]# ifconfig eth1 | awk '/inet /{print $2}'    //查看IP地址信息
192.168.2.100
[root@web1 ~]# ifconfig eth1 | awk '/RX p/{print $5}'   //网卡接收数据包流量
515054
[root@web1 ~]# ifconfig eth1 | awk '/TX p/{print $5}'   //网卡发送数据包流量
73638

2)查看端口信息

[root@web1 ~]# ss -nlptu       //查看本机监听的所有端口
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
udp    UNCONN     0      0      127.0.0.1:323                   *:*                   users:(("chronyd",pid=455,fd=1))
tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=466,fd=3))[root@web1 ~]# ss -anptu     //查看所有的网络连接信息
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
udp    UNCONN     0      0      127.0.0.1:323                   *:*                   users:(("chronyd",pid=455,fd=1))
tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=466,fd=3))
tcp    ESTAB      0      0      192.168.2.100:22                 192.168.2.254:45946               users:(("sshd",pid=620,fd=3))

解释说明:

# -n以数字显示端口号

# -t显示tcp连接

# -u显示udp连接

# -p显示监听端口对应的程序名称

# -a查看所有连接状态信息

二、Zabbix概念

简介:zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,高度集成并监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题;

1)Zabbix的主要特点:

  • 开源:免费使用,社区支持活跃。
  • 灵活性:支持多种监控方式和协议,易于定制。
  • 可扩展性:可以轻松扩展以适应不断增长的监控需求。
  • 丰富的功能:提供全面的监控和告警功能。
  • 易于使用:用户友好的 Web 界面,便于管理和配置。

2)Zabbix主要功能:

数据收集

  • 支持多种数据收集方法,包括主动和被动监控。
  • 可以通过 SNMP、IPMI、JMX、SSH、Telnet 等多种协议收集数据。

灵活的监控项

  • 可以监控各种参数,如 CPU 负载、内存使用、磁盘空间、网络流量等。
  • 支持自定义监控项,可以根据需要监控特定的应用程序或服务。

告警和通知

  • 提供强大的告警机制,可以在检测到问题时发送通知。
  • 支持多种通知方式,包括电子邮件、短信、即时消息等。

可视化和报告

  • 提供丰富的图表和图形界面,便于用户查看监控数据。
  • 支持生成详细的报告,帮助分析性能趋势和问题。

分布式监控

  • 支持分布式监控架构,可以监控多个地理位置的系统和设备。
  • 可以通过代理服务器进行数据收集,减轻中央服务器的负担。

自动发现

  • 支持自动发现网络设备和服务,减少手动配置的工作量。
  • 可以自动添加新设备到监控系统中。

可扩展性

  • 设计灵活,易于扩展和定制。
  • 支持插件和模块,可以根据需要添加新功能。

3)Zabbix监控拓扑:

Zabbix 的架构主要包括以下组件:

  • Zabbix Server:核心组件,负责数据收集、处理和存储,以及告警和通知。
  • Zabbix Proxy:可选组件,用于分布式监控,可以收集数据并转发到 Zabbix Server。
  • Zabbix Agent:安装在被监控设备上的代理程序,负责收集本地数据并发送给 Zabbix Server 或 Proxy。
  • Web 界面:基于 Web 的管理界面,用于配置、查看监控数据和生成报告。
  • 数据库:存储配置信息、历史数据和事件。

4)Zabbix基于的两种架构模式:

① 通过C/S模式(Client / Server),采集监控数据;

补充:S:监控服务器 (1个Zabbixserver),C:被监控主机(若干Zabbixagent)

- Zabbixserver可单独监视远程服务器的服务状态;同时也可与Zabbixagent配合,可以轮询Zabbix agent主动接收监视数据(agent方式),同时还可被动接收Zabbix agent发送的数据(trapping方式)。另外Zabbixserver还支持SNMP (v1,v2);

- Zabbixagent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集

② 通过B/S模式(Browser / Server),实现Web管理;

补充:B:WEB浏览器,S:LNMP平台

- 监控服务器需部署LNMP平台,通过SNMP或Agent采集被监控主机的监控数据,将数据可以写入MySQL、Oracle等数据库中(数据可视化曲线图);使用LNMP平台实现Web前端的管理;


案例1:部署Zabbix监控平台

案例要求:部署一台Zabbix监控服务器

  • 1)在监控服务器上部署LNMP环境;
  • 2)源码安装Zabbix及相关的依赖包;
  • 3)创建并初始化数据库;
  • 4)修改zabbix_server和zabbix_agentd配置并启动服务
  • 5)初始化Zabbix监控Web页面
  • 6)修改PHP配置文件,满足Zabbix需求
  • 7)安装被监控端主机,修改基本配置

主机地址分配:

步骤1:部署监控服务器(zabbixserver)

1)配置防火墙与SELinux限制

[root@zabbixserver ~]# firewall-cmd --set-default-zone=trusted
[root@zabbixserver ~]# setenforce 0
[root@zabbixserver ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

2)部署LNMP环境(源码安装Nginx、安装Mysql和PHP软件包)

Zabbix监控管理控制台需要通过Web页面展示,并且还需使用MySQL来存储数据,因此需要先为Zabbix准备基础LNMP环境。

[root@zabbixserver ~]# yum -y install gcc make pcre-devel openssl-devel
[root@zabbixserver ~]# tar -xf nginx-1.12.2.tar.gz
[root@zabbixserver ~]# cd nginx-1.12.2
[root@zabbixserver nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbixserver nginx-1.12.2]# make && make install
[root@zabbixserver ~]# yum -y install php php-mysql php-fpm
[root@zabbixserver ~]# yum -y install mariadb mariadb-devel  mariadb-server

3)修改Nginx配置文件

配置Nginx支持PHP动态网站,因有大量PHP脚本需执行,所以需开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度;

[root@zabbixserver ~]# vim /usr/local/nginx/conf/nginx.conf
http{
…fastcgi_buffers 8 16k;           //缓存php生成的页面内容(8个16k)fastcgi_buffer_size 32k;         //缓存php生产的头部信息(32k)fastcgi_connect_timeout 300;   //连接PHP的超时时间(300秒)fastcgi_send_timeout 300;      //发送请求的超时时间(300秒)fastcgi_read_timeout 300;      //读取请求的超时时间(300秒)
...location ~ \.php$ {       //修改配置文件,使Nginx支持动态页面root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;#   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;include        fastcgi.conf;     //调用fastcgi.conf配置文件}
  • 注意:Nginx配置文件中的FastCGI缓存优化需要在http{}下配置;
  • 解释:客户端重复访问PHP网页,由于PHP脚本解析需要时间,开启Nginx的各种fastcgi缓存可加速PHP脚本的执行速度;设置缓存生成页面内容大小、缓存头部信息大小、超时时间等;

4)启动服务

启动Nginx服务,通过/etc/rc.local设置开机自启

[root@zabbixserver ~]# /usr/local/nginx/sbin/nginx
[root@zabbixserver ~]# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local
[root@zabbixserver ~]# chmod +x /etc/rc.local
[root@zabbixserver ~]# ss -nlptu | grep :80
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=3897,fd=6),("nginx",pid=3896,fd=6))

开启MariaDB服务并设置开机自启

[root@zabbixserver ~]# systemctl start mariadb
[root@zabbixserver ~]# systemctl enable mariadb
[root@zabbixserver ~]# ss -nlptu | grep :3306
tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=3760,fd=14))

开启PHP-FPM服务并设置开机自启

[root@zabbixserver ~]# systemctl start php-fpm
[root@zabbixserver ~]# systemctl enable php-fpm
[root@zabbixserver ~]# ss -nlptu | grep :9000
tcp    LISTEN     0      128    127.0.0.1:9000                  *:*                   users:(("php-fpm",pid=3893,fd=0),("php-fpm",pid=3892,fd=0),("php-fpm",pid=3891,fd=0),("php-fpm",pid=3890,fd=0),("php-fpm",pid=3889,fd=0),("php-fpm",pid=3887,fd=6))

步骤2:部署监控服务器Zabbix Server

1)源码安装Zabbix Server(可参考lnmp_soft/zabbix-3.4.4.tar.gz )

  • 注意:Zabbix多数源码包都需要依赖包,源码编译前需提前安装相关依赖包
[root@zabbixserver ~]# yum -y install net-snmp-devel   //snmp协议相关依赖包
[root@zabbixserver ~]# yum -y install curl-devel   //curl相关依赖包
[root@zabbixserver ~]# yum -y install autoconf    //shell脚本
[root@zabbixserver ~]# yum -y install libevent-devel   //事件驱动器
[root@zabbixserver ~]# useradd -s /sbin/nologin zabbix   //创建zabbix用户
[root@zabbixserver ~]# cd lnmp_soft/
[root@zabbixserver lnmp_soft]# tar -xf zabbix-3.4.4.tar.gz    //解压压缩包
[root@zabbixserver lnmp_soft]# cd zabbix-3.4.4/
[root@zabbixserver zabbix-3.4.4]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
[root@zabbixserver zabbix-3.4.4]# make && make install    //编译安装

解释说明:

# --enable-server 安装部署zabbix服务器端软件

# --enable-agent 安装部署zabbix被监控端软件

# --enable-proxy 安装部署zabbix代理相关软件

# --with-mysql 指定mysql_config路径

# --with-net-snmp 允许zabbix通过snmp协议监控其他设备(如交换机、路由器等)

# --with-libcurl 安装相关curl库文件,zabbix就可通过curl连接http等服务,测试被监控主机服务的状态

验证:

[root@zabbixserver ~]# ls /usr/local/sbin/     //安装完成后有3个执行程序文件

2)创建空数据库并授权账户访问该数据库,最后导入Zabbix相关数据

[root@zabbixserver ~]# mysql      //使用mysql命令创建zabbix仓库
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';    //授权zabbix数据库所有权限给zabbix用户并设置密码
MariaDB [(none)]> exit    //退出数据库
  • 解释:创建数据库,数据库名称为zabbix,character set utf8是支持中文字符集;
  • 解释:创建可以访问数据库的账户与密码,用户名是zabbix,密码是zabbix;

格式:grant 权限 on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/database/mysql/
[root@zabbixserver mysql]# ls
data.sql  images.sql  schema.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
  • 解释:创建空数据库后,数据库默认没有数据表,需将Zabbix源码包目录的数据表文件data.sql、images.sql、schema.sql通过mysql导入zabbix数据库(注意导入顺序)

# [-u]指定数据库用户名,[-p]指定数据库密码

测试:

[root@zabbixserver mysql]# mysql -uzabbix -pzabbix -h localhost zabbix
MariaDB [zabbix]>
MariaDB [zabbix]> show tables;    //查看zabbix库下的数据表
...
140 rows in set (0.00 sec)

解释:

# [-u]指定用户名,[-p]指定密码,[-h]指定服务器IP,zabbix是数据库库名

# 使用zabbix账户(密码为zabbix)连接localhost服务器上面的zabbix数据库

3)修改zabbix_server配置,启动zabbix_server监控服务

修改Zabbix_server配置文件,设置数据库相关参数

[root@zabbixserver ~]# vim /usr/local/etc/zabbix_server.conf
...38 LogFile=/tmp/zabbix_server.log   //日志的位置,排错使用85 DBHost=localhost  //定义哪台主机为数据库主机(localhost为本机)95 DBName=zabbix   //设置数据库名称
111 DBUser=zabbix    //设置数据库账户
119 DBPassword=zabbix   //设置数据库密码
...
  • 注意:相关.conf的配置需要与创建的数据库及授权的用户、密码及指定的localhost一致;

编写zabbix_server的service文件,通过systemd管理服务(端口10051)

[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=zabbix server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@zabbixserver ~]# systemctl enable zabbix_server.service --now
[root@zabbixserver ~]# ss -nlptu | grep zabbix_server  //确认连接状态,端口10051


Zabbix_server服务启动失败因素:

原因分析:

  • ① Mariadb服务未启动或启动异常;
  • ② 数据库中的配置和zabbix_server.conf配置文件的DB配置不一致;

- grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';

- DBName=zabbix、DBUser=zabbix、DBPassword=zabbix、DBHost=localhost

  • ③ 导入数据错误(数据表140个)
  • ④ 没有/usr/local/etc/zabbix_server.conf配置文件(./configure配置错误)

解决办法:查看/tmp/zabbix_server.log进行排错;


4) 修改Zabbix_agent配置文件,启动Zabbix_agent服务

[root@zabbixserver ~]# vim /usr/local/etc/zabbix_agentd.conf
...30 LogFile=/tmp/zabbix_agentd.log    //日志的位置,排错使用93 Server=127.0.0.1,192.168.2.5     //允许哪些主机监控本机(被动监控)
134 ServerActive=127.0.0.1,192.168.2.5    //允许哪些主机通过主动模式监控本机
145 Hostname=zabbix_server    //设置监控端的主机名(名称可以任意)
280 UnsafeUserParameters=1    //是否允许自定义监控传参(0为关闭,1为开启)
...

编写zabbix_agentd的service文件,通过systemd管理服务(端口10050)

[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agent
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@zabbixserver ~]# systemctl enable zabbix_agentd.service --now
[root@zabbixserver ~]# ss -nlptu | grep zabbix_agentd   //确认连接状态,端口10050

5)上线Zabbix的Web页面

[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/frontends/php/
[root@zabbixserver php]# ls
50x.html                       imgstore.php
actionconf.php                 include
adm.gui.php                    index.html
...
[root@zabbixserver php]# cp -r ./* /usr/local/nginx/html/   //拷贝.php动态文件
[root@zabbixserver php]# ls /usr/local/nginx/html/
50x.html                       imgstore.php
actionconf.php                 include
adm.gui.php                    index.html
...
[root@zabbixserver php]# chown -R apache:apache /usr/local/nginx/html/

补充:chown设置归属权限时,apache.apache与apache:apache效果相同;

补充:php-fpm服务的用户和组是Apache,PHP解释器需要解释PHP文件(读写权限),则需要让PHP对/usr/local/nginx/html/有权限,设置归属为Apache;

6)使用浏览器访问Zabbix_server服务器的Web页面,http://192.168.2.5/setup.php

  • 注意:第一次访问初始化PHP页面,会检查主机的环境是否满足要求,如果不满足会给出修改建议;

① 根据错误提示,因涉及可视化界面,需安装依赖包满足Zabbix_server的环境要求;

[root@zabbixserver ~]# yum -y install php-gd php-xml php-bcmath php-mbstring

② 根据错误提示,PHP的相关配置不满足环境要求,需修改PHP配置文件;

 [root@zabbixserver ~]# vim /etc/php.ini394 max_input_time = 300    //服务器接收数据的时间限制(超时时间300秒)384 max_execution_time = 300   //执行脚本最大执行时间(300秒)672 post_max_size = 32M    //POST数据最大容量(允许上传数据最大容量32M)878 date.timezone = Asia/Shanghai   //设置时区(Asia/Shanghai)

补充:PHP配置文件/etc/php.ini以【;】为注释

③ 按照提示完成依赖包安装及PHP配置文件修改,进行PHP-FPM服务重启

重启服务后,再次使用浏览器访问Zabbix_server服务器的Web页面,查看页面是否还有提示

[root@zabbixserver ~]# systemctl restart php-fpm    //重启php-fpm服务

补充:提示中,PHP LDAP是warning状态(可忽略)

配置数据库连接

在初始化数据库页面,手动创建数据库,并设置连接到此数据库的配置参数

Zabbix服务器详细信息

请输入Zabbix服务器的主机名或主机IP地址和端口号,以及安装的名称(可选)

安装前清单

请检查配置参数。如果全部正确,按“下一步”按钮或“后退”按钮更改配置参数。

已成功安装Zabbix前端

已创建配置文件“/usr/local/nginx/html/conf/zabbix.conf.php”。

进入登陆页面

使用用户(admin)和密码(zabbix)登陆,登陆后设置语言环境为中文

登录后Zabbix服务器后,显示的Zabbix首页

在Admin中设置语言为中文

步骤3:部署被监控主机Zabbix Agent(web1,web2)

补充:在2.100和2.200需要做相同操作(以web1为例)

1)设置防火墙与SELinux限制

[root@web1 ~]# firewall-cmd --set-default-zone=trusted
[root@web1 ~]# setenforce 0
[root@web1 ~]# sed -i  '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

2)源码安装Zabbix agent软件

[root@web1 ~]# useradd -s /sbin/nologin zabbix   //创建zabbix用户
[root@web1 ~]# id zabbix
uid=1000(zabbix) gid=1000(zabbix) 组=1000(zabbix)
[root@web1 ~]# yum -y install gcc make pcre-devel autoconf   //安装依赖包
[root@web1 ~]# tar -xf zabbix-3.4.4.tar.gz
[root@web1 ~]# cd zabbix-3.4.4/
[root@web1 zabbix-3.4.4]# ./configure --enable-agent   //配置,加载agent模块
[root@web1 zabbix-3.4.4]# make && make install     //编译安装

3)修改Zabbix_agent配置文件,启动Zabbix_agent服务

[root@web1 zabbix-3.4.4]# vim /usr/local/etc/zabbix_agentd.conf
...69 EnableRemoteCommands=1  //监控异常后,是否允许服务器远程执行命令,如重启某个服务93 Server=127.0.0.1,192.168.2.5   //允许谁可以监控本机(被动监控模式
134 ServerActive=127.0.0.1,192.168.2.5  //允许谁可以监控本机(主动监控模式)
145 Hostname=web1     //设置被监控端的主机名
280 UnsafeUserParameters=1    //是否允许自定义监控传参(0为关闭,1为开启)
...

编写zabbix_agentd的service文件,通过systemd管理服务(端口10050)

[root@web1 zabbix-3.4.4]# vim /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agent
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@web1 zabbix-3.4.4]# systemctl enable zabbix_agentd.service --now
[root@web1 zabbix-3.4.4]# ss -nlptu | grep zabbix_agent

案例2:配置及使用Zabbix监控系统

案例要求:沿用案例1,使用Zabbix监控平台监控Linux服务器实现以下目标:

  • 1)监控CPU
  • 2)监控内存
  • 3)监控进程
  • 4)监控网络流量
  • 5)监控硬盘

步骤1:添加监控主机

主机是Zabbix监控的基础,Zabbix所有监控都是基于Host主机

1)使用浏览器登录http://192.168.2.5/index.php,通过首页栏【Configuration配置】—>【Hosts主机】,查看监控主机列表,因Zabbix server服务器也部署了agent,所以也能收集到本机监控信息;

监控主机列表中有Zabbix server服务器(本机),可将【停用状态】开启

2)通过首页栏【Configuration配置】-->【Hosts主机】—>【Create Host创建主机】添加被监控Linux主机。添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称(最好与添加主机的主机名一致,但也允许不一致)、主机组、IP地址等参数;

  • - 主机名称:web1
  • - 可见的名称:web1
  • - 主机组:Linux servers(可使用默认已有群组或新建群组)
  • - agent代理程序的接口:添加IP(192.168.2.100)、端口(默认10050)

步骤2:为被监控主机添加监控模板

Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据;对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可;

1)通过首页栏【Configuration配置】-->【Hosts主机】-->点击,【链接指示器】—>点击,选择相关的模板(Template OS Linux)点击,显示到【链接的模板】并;

步骤3:查看监控数据

查看监控数据,通过首页栏【Monitoring监控中】—>【Latest data最新数据】,在过滤器中填写过滤条件,根据监控【主机群组】和监控【主机】选择需要查看哪些监控数据;

找到需要监控的数据后,可以点击后面的【Graph图形】查看监控图形;例如:CPU平均1分钟负载量【Processor load (1 min average per core)】

通过首页栏【Monitoring监控中】—>【Graph图形】,选择群组、主机、图形CPUload可查看CPU平均负载量(1、5、15分钟)

案例4:自定义Zabbix监控项目

案例要求:沿用案例1/2,使用Zabbix实现自定义监控Linux服务器系统账户数量

整体思路:使用Zabbix自定义key的方式实现自定义监控

  • 1)创建自定义key
  • 2)创建监控项目
  • 3)将监控模板关联到主机

场景:Zabbix自带监控模板满足不了企业需求,所以通过自定义模板实现个性化监控;

注意:自定义监控需要传参数,配置 zabbix_agent.conf文件开启传参UnsafeUserParameters=1

  • 格式:UserParameter=自定义key名称,命令[脚本]   //自定义key名称可任意
  • 自定义的key文件一般存储目录:/usr/local/etc/zabbix_agentd.conf.d/

步骤1:被监控端主机创建自定义key(web1操作)

1)修改zabbix_agentd.conf文件,取消注释,允许调用存放自定义监控key目录

[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
264 Include=/usr/local/etc/zabbix_agentd.conf.d/   //取消注释,加载配置文件目录

2)创建自定义key(监控Linux服务器系统账户数量)

格式:UserParameter=自定义key名称,命令

[root@web1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[root@web1 zabbix_agentd.conf.d]# vim count.line.passwd //创建自定义key文件
UserParameter=count.line.passwd,sed -n '$=' /etc/passwd  //创建自定义key

统账户数量的命令

  • sed -n ‘$=’ /etc/passwd
  • awk “END{print NR}” /etc/passwd
  • cat /etc/passwd | wc -l

3)重启agent服务,测试自定义key是否正常工作

[root@web1 ~]# systemctl restart zabbix_agentd.service
[root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd
21    //自定义key的命令结果

解释:[-s]指定需要监控的服务器,[-k]指定自定义Key


常见报错:自定义key变量名称与配置文件中的key不一致;(例如文中的pass)

[root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.pass
ZBX_NOTSUPPORTED: Unsupported item key.

常见报错:zabbix_get命令执行,报错配置错误

[root@web1 ~]# zabbix_get -s 192.168.2.5 -k count.line.passwd
zabbix_get [10378]: Check access restrictions in Zabbix agent configuration
  • 解决分析:检查agent配置文件是否正确
[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5
ServerActive=127.0.0.1,192.168.2.5

补充:由于zabbix_agentd.conf配置文件仅允许本机和192.168.2.5访问,而192.168.2.5主机中未有自定义key,所以无法监控到该key导致报错;

步骤2:创建监控模板

  • 模板、应用集、监控项目关系图:

一个模板中可以有多个应用集,一个应用集可以有多个监控项目

1)添加监控模板

登录Zabbix Web监控控制台,通过首页栏【Configuration配置】—>【Template模板】—>【Create template创建模板】,填写模板名称,新建模板群组

  • 模板名称:count.line.passwd
  • 新建模板群组:count.line.passwd

创建模板后,默认模板中没有任何应用集、监控项、触发器、图形等;

2)创建应用集

点击模板后面的,打开创建应用集的页面,点击按钮;设置应用集名称(名称可以任意)

应用集名称:count.line.passwd

3)创建监控项目(监控项)

点击模板后面的,打开创建监控项的页面,点击按钮;

设置监控项目名称(名称可以任意)及对应的自定义key(必须与前面自定义的监控key名称一致)

  • 名称:count_line_passwd_item
  • 类型:Zabbix客户端(Zabbxi agent)
  • 键值:count.line.passwd    //必须与web1被监控端主机自定义的监控key名称一致
  • 信息类型:数字(无正负)
  • 更新间隔:30秒
  • 应用集:count.line.passwd(前面步骤创建的应用集)

4)将创建的模板链接到被监控主机

将完整的监控模板制作完成后,就可将模板链接到主机实现监控功能。通过【Configuration配置】-->【Hosts主机】选择被监控主机web1,打开监控主机设置页面,在【Template模板】页面中选择需要链接到该主机的模板(例如:count_line.passwd),完成添加即可;

6)查看监控数据图形

点击【Monitoring监控中】—> 【Latest data最新数据】,根据需要在过滤器中填写过滤条件,选择监控【主机群组】和监控【主机】,找到count.line.passwd记录并查看监控图形;

可视化监控图形,如图所示:

思维导图:

 

小结:

本篇章节为 的学习【第二阶段】SECURITY-DAY1 笔记,这篇笔记可以初步了解到 监控基础(系统监控命令、监控软件)、Zabbix监控服务端部署、Zabbix监控客户端部署、创建监控主机、调用监控模板、自定义key、创建模板、应用集、监控项、绑定模板。除此之外推荐参考相关学习网址:​​​​​​​

  • Linux命令:traceroute命令(路由跟踪)-CSDN博客

  • 使用iostat分析IO性能_iostat使用率满了,影响读写吗-CSDN博客

  • 什么是zabbix(高度集成的监控集成方案)-CSDN博客


Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405594.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LED电子看板优化生产线的管理

在当今竞争激烈的制造业领域&#xff0c;企业不断寻求提高生产效率、降低成本和提升产品质量的方法。而 LED 电子看板作为一种先进的管理工具&#xff0c;正逐渐成为优化生产线管理的关键利器。 一、LED电子看板能够清晰地展示生产进度信息 在繁忙的生产线上&#xff0c;工人和…

18105 银行的叫号顺序

### 详细分析 为了模拟银行的叫号过程&#xff0c;我们可以使用优先队列&#xff08;堆&#xff09;来管理客户的服务顺序。优先级越高的客户会先得到服务&#xff0c;同级别的客户按到达时间先后顺序得到服务。如果优先级和到达时间都相同&#xff0c;则按输入顺序服务。 ##…

表达式求值 - 整形提升和截断

文章目录 一、整形提升二、为什么要整形提升&#xff1f;三、截断四、示例1&#xff0c;23① c1 c2② c3 c1 c2 4 一、整形提升 C语言的整形算数运算总是至少以缺省整形类型的精度来进行的。 为了获得这个精度&#xff0c;表达式中的字符类型和短整型操作数在使用之前被转换…

深度学习基础之前馈神经网络

目录 基本结构和工作原理 神经元和权重 激活函数 深度前馈网络 应用场景 优缺点 深度前馈神经网络与卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;的具体区别和联系是什么&#xff1f; 具体区别 联系 如何有效解决前馈神经网络…

爬虫案例4——爬取房天下数据

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正 任务&#xff1a;从房天下网中爬取小区名称、地址、价格和联系电话 目标网页地址&#xff1a;https://newhouse.fang.com/house/s/ 一、思路和过程 目标网页具体内容如下&#xff1a; ​​​​ …

成为Python砖家(3): 何时产生字节码 .pyc 文件

好奇&#xff1a;.pyc和 __pycache__是啥&#xff1f; 你是否好奇&#xff0c;在某些 Python 工程中&#xff0c;当执行了 xxx.py脚本后&#xff0c;多出了 __pycache__目录&#xff1f;这个目录下存放的是一些 .pyc结尾的文件。 这些文件&#xff0c;叫做 python bytecode。 …

深度剖析数字媒体产业链的无限潜力与创新生态

在当今信息爆炸的时代&#xff0c;数字媒体产业链正以势不可挡的姿态展现出其令人瞩目的无限潜力与创新生态。 数字媒体的发展潜力简直无可限量。从在线视频的爆发式增长&#xff0c;到虚拟现实和增强现实技术带来的沉浸式体验&#xff0c;再到社交媒体平台上丰富多彩的内容创…

Windows 应用程序加密 - 功能强大、可定制、开源且完全免费

先进而优雅的 Windows 应用程序加密 - 功能强大、可定制、开源且完全免费&#xff01; 项目地址&#xff1a;FadCrypt GitHub 工作原理&#xff1a; 1. 密码创建&#xff1a;设置密码后&#xff0c;密码会与锁定应用程序的配置文件一起加密保存。监控期间&#xff0c;这些文…

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

近日&#xff0c;上海望繁信科技有限公司&#xff08;以下简称“望繁信科技”&#xff09;凭借其自主研发的“数字北极星流程挖掘分析软件”项目&#xff0c;成功入选2024年第3批上海市高新技术成果转化项目名单。这一殊荣根据《上海市高新技术成果转化项目认定办法》&#xff…

linux 中docker git 容器磁盘占满如何解决

1.问题描述 git之前还使用ok&#xff0c;突然出现访问500 错误&#xff0c;懵圈了 2.问题排查 1. 服务器查看&#xff0c;服务正常&#xff0c;没有异常出现。 2. 查找资料&#xff0c;需要查看是否磁盘已经满了果然使用df-h 后显示磁盘已经满了&#xff0c;且容器和本地都…

WPF篇(20)- Menu菜单+ContextMenu上下文菜单+StatusBar状态栏

Menu菜单 Menu控件继承于MenuBase&#xff0c;而MenuBase继承于ItemsControl。所以学习Menu之前&#xff0c;要先了解一下MenuBase基类。它是一个抽象类&#xff0c;拥有一个ItemContainerTemplateSelector模板选择器&#xff0c;并重写了一些关于键盘和鼠标的方法。 Menu的子…

电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!

你是否曾好奇那些键盘敲击背后的秘密&#xff1f;电脑监控不仅是守护企业安全的隐形盾牌&#xff0c;更是揭秘高效与合规的魔法镜&#xff01;一键解锁安企神监控回放&#xff0c;就像打开时间宝盒&#xff0c;让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险&#xff0…

【Android】adb devices 出现devices offline的问题

1 问题 adb devices 出现devices offline 2 解决方法 adb kill-serveradb start-server 然后&#xff0c;adb devices查看。 adb devices 问题解决啦。。。&#x1f49b; &#x1f499; &#x1f49c; ❤️ &#x1f49a; &#x1f49b; &#x1f499; &#x1f49c; ❤️…

12/24/30v/36转固定5v输出芯片

设计电源芯片的应用方案时&#xff0c;必须保证输入电压在DC6V至30V范围内&#xff0c;输出电压为固定的5V&#xff0c;同时电流需在200至300mA之间。在这种需求下&#xff0c;推荐使用AH1405芯片&#xff0c;因其输入电压范围宽&#xff08;6-40V&#xff09;&#xff0c;内置…

自闭症寄宿语言开发全托学校

在自闭症儿童的世界里&#xff0c;语言往往是一座难以跨越的高山。语言问题作为自闭症儿童的核心障碍之一&#xff0c;给他们的生活、学习和社交带来了极大的困扰。因此&#xff0c;语言开发对于自闭症儿童来说至关重要。那么&#xff0c;怎样才能更好地对自闭症儿童进行语言开…

arthas源码刨析:启动 (1)

文章目录 arthas-bootBootstrap Created with Raphal 2.3.0 开始 检查监听端口 jps 列表java应用 下载 lib 依赖 功能移交给 arthas-core 结束 arthas-boot 该module 的代码只有3个类&#xff1a; Bootstrap 启动类 Bootstrap &#xff0c;开头的注解就是 alibaba 的 cli 中…

Qt 0820作业

一、思维导图 二、闹钟 头文件代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> //时间类 #include <QTimer> //时间事件类 #include <QTimerEvent> //定时器事件类 #include <QMouseEvent> //鼠标…

CSS 元素的尺寸

const dom document.querySelector(‘.size’) 以下方法只是拿的width举例 浏览器渲染管线 dom.style.width: 它读取/设置的是浏览器渲染管线的第一个步骤dom解析,也就是DOM树 比如: <a style"width:100px"></a><a style"width: auto"&…

SAP B1 三大基本表单标准功能介绍-业务伙伴主数据(三)

背景 在 SAP B1 中&#xff0c;科目表、业务伙伴主数据、物料主数据被称为三大基本表单&#xff0c;其中的标准功能是实施项目的基础。本系列文章将逐一介绍三大基本表单各个字段的含义、须填内容、功能等内容。 附上 SAP B1 10.0 的帮助文档&#xff1a;SAP Business One 10…

Android常见界面控件(二)

目录 ​前言 一、 RadioButton控件 设置RadioGroup的监听事件 二、CheckBox控件 三、Toast类 改变Toast窗口的提示位置 四、EditText控件 常用属性 前言 在上一篇中&#xff0c;我们讲解了三个常见的控件&#xff1a;TextView控件、Button控件、ImageView控件&#xf…