--监控zabbix概述

文章详细介绍了如何在CentOS系统上安装和配置Zabbix监控系统,包括数据采集、存储和展示,使用ZabbixAgent监控服务器和Web服务器的状态,如CPU负载、内存使用、磁盘空间和网络连接。此外,还涉及到了Zabbix与MySQL的集成以及自定义监控项的创建。
摘要由CSDN通过智能技术生成
  • 对服务的管理,不能仅限于可用性。

  • 还需要服务可以安全、稳定、高效地运行。

  • 监控的目的:早发现、早治疗。

  • 被监控的资源类型:

    • 公开数据:对外开放的,不需要认证即可获取的数据
    • 私有数据:对外不开放,需要认证、权限才能获得的 

监控命令

# uptime可以查看系统已经运行了多久。最后的3个数字分别是CPU最近1分钟、5分钟、15分钟的平均负载。平均负载的值,不应该大于总核心数。
[root@myhost ~]# uptime 
 09:28:25 up 53 days, 27 min,  0 users,  load average: 0.09, 0.08, 0.03

[root@myhost ~]# free -h      # 主要用于查看内存
[root@myhost ~]# swapon -s    # 查看swap空间
[root@myhost ~]# df -h        # 查看硬盘使用情况
[root@myhost ~]# ping -c2 www.baidu.com   # 发2个包,测试网络

zabbix

实施监控的几个方面:

数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)
数据存储:使用mysql数据库
数据展示:通过web页面
zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示。

安装zabbix 6.0

主机名地址
zabbixserver192.168.88.5/24
web1192.168.88.100/24
web2192.168.88.200/24
# 准备3台主机。按上表配置主机名和IP地址
[root@myhost ~]# vm clone zabbixserver web1 web2
[root@myhost ~]# vm setip web1 192.168.88.100
[root@myhost ~]# vm setip web2 192.168.88.200
[root@myhost ~]# vm setip zabbixsever 192.168.88.5
  • 安装zabbix
# 1. 在真机上拷贝zabbix软件包到pubserver
[student@server1 ~]# scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms
# 2. 更新yum仓库配置
[root@pubserver ~]# createrepo -v /var/ftp/rpms/
# 3. 在pubserver上创建ansible工作环境
[root@pubserver ~]# mkdir -p zabbix/files
[root@pubserver ~]# cd zabbix/
[root@pubserver zabbix]# vim ansible.cfg 
[defaults]
inventory = inventory
host_key_checking = false

[root@pubserver zabbix]# vim inventory 
[zabbix]
zabbixserver ansible_host=192.168.88.5

[webservers]
web1 ansible_host=192.168.88.100
web2 ansible_host=192.168.88.200

[all:vars]
ansible_ssh_user=root
ansible_ssh_pass=a

# 4. 为各台主机配置yum

[root@pubserver zabbix]# vim files/local88.repo 
[BaseOS]
name = BaseOS
baseurl = ftp://192.168.88.240/dvd/BaseOS
enabled = 1
gpgcheck = 0

[AppStream]
name = AppStream
baseurl = ftp://192.168.88.240/dvd/AppStream
enabled = 1
gpgcheck = 0

[rpms]
name = rpms
baseurl = ftp://192.168.88.240/rpms
enabled = 1
gpgcheck = 0

[root@pubserver zabbix]# vim 01-upload-repo.yml 
---
- name: config repos.d
  hosts: all
  tasks:
    - name: delete repos.d
      file:
        path: /etc/yum.repos.d
        state: absent

    - name: create repos.d
      file:
        path: /etc/yum.repos.d
        state: directory
        mode: '0755'

    - name: upload local88
      copy:
        src: files/local88.repo
        dest: /etc/yum.repos.d/
[root@pubserver zabbix]# ansible-playbook 01-upload-repo.yml 

# 5. 在zabbixserver上安装相应软件包
zabbix-server-mysql: 用于安装Zabbix监控系统的服务器端,并将其配置为与MySQL数据库一起使用。

zabbix-web-mysql: 用于安装和配置Zabbix监控系统的Web界面,可与MySQL数据库一起使用。

zabbix-nginx-conf: 用于配置Nginx Web服务器以配合Zabbix监控系统的Web界面使用。

zabbix-sql-scripts: 用于安装和配置Zabbix监控系统所需的SQL脚本。

zabbix-selinux-policy: 适用于CentOS或RedHat系统的安全策略模块,可提高系统的安全性。

zabbix-agent: 用于在被监视的主机上安装Zabbix代理。

mysql-server: MySQL数据库服务器。

langpacks-zh_CN: 用于安装中文语言包的软件包,这样就可以以中文显示Zabbix监控系统的Web界面。

这些软件包一起安装和配置,可以使Zabbix监控系统在CentOS或RedHat系统上顺利运行并保持良好的性能。
[root@pubserver zabbix]# vim 02-inst-zabbix.yml
---
- name: install zabbix
  hosts: zabbix
  tasks:
    - name: install zabbix    # 安装软件包
      yum:
        name:
          - zabbix-server-mysql
          - zabbix-web-mysql
          - zabbix-nginx-conf
          - zabbix-sql-scripts
          - zabbix-selinux-policy
          - zabbix-agent
          - mysql-server
          - langpacks-zh_CN
        state: present
[root@pubserver zabbix]# ansible-playbook 02-inst-zabbix.yml

# 6. 启动mysqld服务
[root@pubserver zabbix]# vim 03-start-mysqld.yml
---
- name: config mysqld
  hosts: zabbix
  tasks:
    - name: start mysqld      # 启动mysqld服务
      service:
        name: mysqld
        state: started
        enabled: yes
[root@pubserver zabbix]# ansible-playbook 03-start-mysqld.yml 

# 7. 在zabbix上创建连接数据库的用户
[root@zabbixserver ~]# mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 在binlog日志开启的情况下,打开函数生成器
mysql> set global log_bin_trust_function_creators = 1;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

# 8. 在数据库中创建表并导入数据
[root@zabbixserver ~]# cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
[root@zabbixserver ~]# gzip -d server.sql.gz 
[root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < server.sql

# 9. 配置zabbix_server
[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix

# 10. 配置zabbix_agent
[root@zabbixserver ~]# vim +182 /etc/zabbix/zabbix_agentd.conf 
Hostname=zabbixserver  #修改主机名

# 11. 配置nginx展示zabbix
[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf
# 打开第2、3行的注释,结果如下所示:
server {
        listen          8080;
        server_name     example.com;
...以下省略...

# 12. 启动相关服务
[root@pubserver zabbix]# vim 04-start-zabbix.yml 
---
- name: config zabbix
  hosts: zabbix
  tasks:
    - name: start service    # 循环启动多个服务
      service:
        name: "{{item}}"
        state: started
        enabled: yes
      loop:
        - zabbix-server
        - zabbix-agent
        - nginx
        - php-fpm
[root@pubserver zabbix]# ansible-playbook 04-start-zabbix.yml

访问zabbixserver的8080端口,进行初始化:

 

 

注意:这里的用户名Admin,A是大写的!密码是小写的zabbix 

  此时zabbix已经开始在监控自己了,查看默认监控配置

  

  配置zabbix监控web1服务器

在web1上安装agent

# 1. 安装agent
[root@pubserver zabbix]# vim 05-inst-agent.yml
--- 
- name: install agent
  hosts: webservers
  tasks:
    - name: install agent    # 安装agent
      yum:
        name: zabbix-agent
        state: present
[root@pubserver zabbix]# ansible-playbook 05-inst-agent.yml 

# 2. 修改web1配置文件
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf 
117 Server=127.0.0.1,192.168.88.5
182 Hostname=web1

# 3. 起动服务
[root@pubserver zabbix]# vim 06-start-agent.yml 
---
- name: config agent
  hosts: web1
  tasks:
    - name: start agent      # 启动服务
      service:
        name: zabbix-agent
        state: started
        enabled: yes
[root@pubserver zabbix]# ansible-playbook 06-start-agent.yml

在web页面中添加对web1的监控 

  • 主机:安装了agent,被监控的主机
  • 主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
  • 模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。

 

     

常用监控指标

  • Space utilization:以百分比显示的磁盘利用率
  • Used space:已用磁盘空间
  • Available memory:可用内存
  • CPU idle time:CPU空闲时间。不宜过低。
  • Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
  • Interface eth0: Bits received:网卡接收到的数据量
  • Interface eth0: Bits sent:网卡发送的数据量
  • Number of processes:系统运行的进程数
  • Number of logged in users:已登陆的用户数

自定义监控项

实现监控web1用户数量的监控项

  1. 在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
  2. 在web页面中创建监控项。监控项对应key值。

  

在被控端创建key

  • 创建key的语法
  • UserParameter=自定义key值,命令
    # 命令的执行结果,是key的value
  • 创建自定义配置文件。文件名自定义。
  • [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
    UserParameter=usercnt,sed -n '$=' /etc/passwd
    [root@web1 ~]# systemctl restart zabbix-agent.service 
  • 验证自定义监控项
  • # 1. 安装zabbix-get
    [root@zabbixserver ~]# yum install -y zabbix-get
    [root@web1 ~]# yum install -y zabbix-get
    
    # 2. 获取监控项的值
    [root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt
    46
    [root@zabbixserver ~]# zabbix_get -s 192.168.88.100 -k usercnt
    46

    创建模板

  • 创建模板

 

  

  

  

  

  

  

  

1 问答题:你都知道有哪些命令可以监控服务器的各种状态?

参考答案(注意:有些命令需要额外安装):

可以使用以下命令监控服务器的各种状态:

top:查看系统整体的 CPU、内存、进程等信息。

htop:类似于 top,但是界面更加美观,而且支持鼠标操作。

free:查看内存的使用情况。

df:查看磁盘的使用情况。

du:查看指定目录的磁盘使用情况。

iostat:查看磁盘 I/O 的情况。

vmstat:查看虚拟内存的情况。

sar:查看 CPU、内存、磁盘、网络等信息,可以设置输出时间间隔。

netstat:查看网络连接情况。

ss:查看网络连接情况,比 netstat 更快速、更详细。

iftop:查看网络流量情况。

tcpdump:抓包工具,可以查看网络数据包的内容。

ping:测试网络连通性。

traceroute:追踪数据包在网络中的路径。

telnet:测试端口是否开放。

curl:测试 Web 服务是否正常。

wget:下载文件,测试网络带宽。

nload:查看网络流量情况,类似于 iftop。

iptraf:查看网络流量情况,支持多种协议。

nethogs:查看进程的网络流量情况。

iftop:查看网络流量情况。

tcpdump:抓包工具,可以查看网络数据包的内容。

ping:测试网络连通性。

traceroute:追踪数据包在网络中的路径。

telnet:测试端口是否开放。

curl:测试 Web 服务是否正常。

2 问答题:简要说明一下如何在Rocky 8系统上安装zabbix 6.0?

参考答案:

系统yum没有提供zabbix安装包,需要先准备zabbix的yum源

安装软件包,包括:zabbix-server-mysql、zabbix-web-mysql、zabbix-nginx-conf、zabbix-sql-scripts、zabbix-selinux-policy、zabbix-agent、mysql-server

启动mysqld服务

在mysql服务器上创建数据库以及访问数据库的用户

导入zabbix提供的sql文件到上一步建立的数据中

配置zabbix server端(改配置文件)

配置zabbix agent端(改配置文件)

配置nginx展示zabbix(改配置文件)

启动相关服务,包括:zabbix-server、zabbix-agent、nginx、php-fpm

访问zabbixserver的8080端口,进行初始化

3 问答题:如何通过zabbix agent监控linux主机?

参考答案:

可以通过以下步骤来在 Linux 主机上安装和配置 Zabbix Agent:

在 Linux 主机上安装 Zabbix Agent。

在 Zabbix Server 的web页面上创建一个主机,指定主机的 IP 地址和主机名。

在 Zabbix Server 的web页面上配置 Zabbix Agent,指定 Zabbix Server 的 IP 地址和主机名。

在 Zabbix Server 上创建一个模板,定义需要监控的指标。

将模板应用到主机上,开始监控。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值