SourceURL:file:///home/student/Documents/zabbix.doc

监控概述

    对服务的管理,不能仅限于可用性。

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

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

    被监控的资源类型:

        公开数据:对外开放的,不需要认证即可获取的数据

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

常用监控命令

uptime       # uptime可以查看系统已经运行了多久。最后的3个数字分别是CPU最近1分钟、5分钟、15分钟的平均负载。平均负载的值,不应该大于总核心数。

free -h      # 主要用于查看内存

swapon -s    # 查看swap空间

df -h        # 查看硬盘使用情况

ping -c2 www.baidu.com   # 发2个包,测试网络

常用的综合性能监控平台

Netdata‌

轻量级可视化工具,实时展示CPU、内存、网络等指标

支持Web界面和移动端访问,默认端口19999‌

‌Zabbix‌

企业级监控系统,支持网络设备、服务器、服务状态告警

提供分布式监控和自定义模板‌

‌Prometheus + Grafana‌·  

时间序列数据库+可视化组合,适合长期性能分析

需配合node_exporter采集主机指标‌

Zabbix介绍

    实施监控的几个方面:

        数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)

        数据存储:使用mysql数据库

        数据展示:通过web页面

    zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示。

网络架构

主机名

地址

角色

配置

zabbixserver

192.168.88.5/24

zabbix服务器

2CPU 4G内存

web1

192.168.88.100/24

被控节点

2CPU 1G内存

web2

192.168.88.200/24

被控节点

2CPU 1G内存

pubserver

192.168.88.240

ansible主机

2CPU 4G内存

Zabbix服务器基本搭建

一、准备4虚拟主机

vm clone zabbixserver web1 web2 pubserver 

vm setip zabbixserver 192.168.88.5

vm setip web1 192.168.88.100

vm setip web2 192.168.88.200

vm setip pubserver 192.168.88.240

二、ansible服务器配置

1、安装ftp

#安装vsftpd软件

[root@pubserver ~]# yum -y install vsftpd        

#编辑vsftpd配置启用匿名用户访问       

[root@pubserver ~]# vim /etc/vsftpd/vsftpd.conf         

12: anonymous_enable=YES

#加入开机自启并立即启动

[root@pubserver ~]# systemctl enable --now vsftpd      

#确认21端口被监听

[root@pubserver ~]# ss -antlp | grep 21                 

#创建ISO文件挂载目录

[root@pubserver ~]# mkdir /var/ftp/dvd       

#编辑fstab文件实现开机自动挂载
[root@pubserver ~]# vim /etc/fstab                      

...

/dev/cdrom      /var/ftp/dvd/   iso9660 defaults 0 0

#设置自动挂载

[root@pubserver ~]# mount -a     

2、配置Yam源

#修改local.repo文件使用本机                 

[root@pubserver ~]# vim /etc/yum.repos.d/local.repo     

[local_BaseOS]

name=Rocky Linux $releasever - BaseOS

baseurl="ftp://192.168.88.240/dvd/BaseOS"       

enabled=1

gpgcheck=0                                     

[local_AppStream]

name=Rocky Linux $releasever - AppStream

baseurl="ftp://192.168.88.240/dvd/AppStream"   

enabled=1

gpgcheck=0       

#确认本机网络yum源可用                               

[root@pubserver ~]# yum clean all; yum repoinfo

3、配置自定义yum源

# 创建rpm包存放目录

[root@pubserver ~]# mkdir /var/ftp/rpms    

# 上传Ansible相关软件到pubserver主机             

[root@server1 ~]# scp /linux-soft/s2/zzg/ansible_soft/* root@192.168.88.240:/var/ftp/rpms/           

#安装createrepo命令包           

[root@pubserver ~]# yum -y install createrepo_c    

#创建软件仓库信息 

[root@pubserver ~]# createrepo /var/ftp/rpms/           [root@pubserver ~]# ls /var/ftp/rpms/

ansible-6.3.0-1.el8.noarch.rpm  

ansible-core-2.13.3-1.el8.x86_64.rpm  

cowsay-3.04-16.el8.noarch.rpm  

repodata        #确保有该目录

# 配置自定义yum源

[root@pubserver ~]# vim /etc/yum.repos.d/local.repo     

#增加自定义yum源配置,在文件最后追加

...

[ansible-rpms]

name=ansible-rpms

baseurl="ftp://192.168.88.240/rpms"

enabled=1

gpgcheck=0

[root@pubserver ~]# yum clean all; yum repoinfo

# 同步repo文件到所有被控节点

[root@pubserver ~]# scp /etc/yum.repos.d/local.repo root@192.168.88.5:/etc/yum.repos.d/

[root@pubserver ~]# scp /etc/yum.repos.d/local.repo root@192.168.88.100:/etc/yum.repos.d/

[root@pubserver ~]# scp /etc/yum.repos.d/local.repo root@192.168.88.200:/etc/yum.repos.d/

4、安装ansible软件

[root@pubserver ~]# yum -y install ansible  

#确认ansible命令可用

[root@pubserver ~]# ansible --version           

5、配置主机名解析

#编辑hosts文件配置主机名解析

[root@pubserver ~]# vim /etc/hosts                      

192.168.88.240  pubserver

192.168.88.100   web1

192.168.88.200   web2

192.168.88.5   zabbixserver

#测试hosts文件配置

[root@pubserver ~]# for i in pubserver web1 web2 zabbixserver  

 do

 ping -c 2 $i

 done

6配置免密登录被控节点

#非交互生成秘钥对

[root@pubserver ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''    

#发送公钥到被控节点

[root@pubserver ~]# for i in web1 web2 zabbixserver              

 do

 ssh-copy-id root@$i

 done

#确认免密登录

[root@pubserver ~]# for i in web1 web2 zabbixserver                          

 do

 ssh root@$i "hostname"

 done

7被控节点Ansible管理环境配置

#查看默认配置,通常不用该文件

[root@pubserver ~]# cat /etc/ansible/ansible.cfg            

[root@pubserver ~]# ansible-config init     #根据提示查看配置条目

# 自定义Ansible工作目录,名称自定义

[root@pubserver ~]# mkdir -p zabbix/files

#进入工作目录,以后关于ansible操作均在此目录下进行   

[root@pubserver ~]# cd zabbix/         

#编辑配置文件

[root@pubserver ansible]# vim ansible.cfg                        

[defaults]                  #通用配置

inventory = inventory       #主机清单列表文件

host_key_checking = false   #不检查主机秘钥,=两边有无空格均可

#编辑主机清单列表文件

[root@pubserver ansible]# vim inventory     

[webservers]        #定义主机组,名称自定义

web1 ansible_host=192.168.88.100

web2 ansible_host=192.168.88.200

[zabbix]

zabbixserver ansible_host=192.168.88.5

[all:vars]

ansible_ssh_user=root

ansible_ssh_pass=a

## 确认配置结果,查看所有被控主机列表

[root@pubserver ansible]# ansible all --list-hosts     

#查看webservers组主机列表     

[root@pubserver ansible]# ansible webservers --list-hosts   

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐