监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项

监控概述

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

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

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

  • 被监控的资源类型:

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

监控命令

# 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

  • 安装说明:Download and install Zabbix
  • 中文手册:Zabbix 文档
主机名地址
zabbixserver192.168.88.5/24
web1192.168.88.100/24
web2192.168.88.200/24
  • 安装zabbix
# 1. 拷贝zabbix软件包到pubserver

[root@zabbixserver ~]# 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上安装相应软件包

[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 ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix


# 9. 在数据库中创建表并导入数据

[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


# 10. 配置zabbix_server

[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf

DBPassword=zabbix


# 11. 配置zabbix_agent

[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 

182 Hostname=zabbixserver


# 12. 配置nginx展示zabbix

[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf

# 打开第2、3行的注释,结果如下所示:

server {

        listen          8080;

        server_name     example.com;

...以下省略...


# 13. 启动相关服务

[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
创建模板
  • 创建模板

  • 创建监控项

 应用模板到主机

 查看结果

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分享关闭Windows自动更新的六种方法。

方法一&#xff1a;禁用Windows Update服务 同时按下键盘的“WinR”键&#xff0c;打开“运行”窗口&#xff0c;输入“services.msc”并点击“确定”。 在打开的服务列表中找到“Windows Update”选项&#xff0c;双击打开其属性窗口。 在“启动类型”下拉菜单中选择“禁用”…

vue-内置组件-Suspense

Suspense (实验性功能) <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌…

基于完全二叉树实现线段树-- [爆竹声中一岁除,线段树下苦踌躇]

文章目录 一.完全二叉树完全二叉树的父子结点引索关系 二.线段树三.基于完全二叉树实现线段树关于线段树的结点数量问题的证明递归建树递归查询区间和递归单点修改线段树模板题 一.完全二叉树 完全二叉树的物理结构是线性表,逻辑结构是二叉树 完全二叉树的父子结点引索关系 …

Dubbo的负载均衡策略剖析

1 Dubbo的负载均衡策略概述 Dubbo的负载均衡策略应用于服务消费方。当服务提供者是集群时&#xff0c;通过在消费方设置负载均衡策略&#xff0c;避免大量请求一直集中在其中的某一个或者某几个服务提供方机器上。 Dubbo提供了多种负载均衡策略&#xff0c;默认为随机策略-Ra…

函数及函数的定义

前言&#xff1a; 在之前介绍指针的时候&#xff0c;小编发现有些地方需要用函数&#xff0c;所以小编决定先带领大家学习函数&#xff0c;然后再学习指针。 函数是从英文function翻译过来的&#xff0c;其实function在英文中的意思就是函数&#xff0c;也是功能的意思&#xf…

【深度学习:MPT-30B】提高开源基础模型的标准

【深度学习&#xff1a;MPT-30B】提高开源基础模型的标准 MPT-30B家族MPT-30B (Base)MPT-30B-InstructMPT-30B-Chat使用 MosaicML Inference 部署 MPT-30B 模型通过 MosaicML 培训定制 MPT-30BLLM Foundry 下一步是什么&#xff1f; 附录致谢数据MPT-30B 8k 上下文窗口微调数据…

【OrangePi Zero2 智能家居】阿里云人脸识别方案

一、接入阿里云 二、C语言调用阿里云人脸识别接口 三、System V消息队列和POSIX 消息队列 一、接入阿里云 在之前树莓派的人脸识别方案采用了翔云平台的方案去1V1上传比对两张人脸比对&#xff0c;这种方案是可行&#xff0c;可 以继续采用。但为了接触更多了云平台方案&…

常用工具类-Collections

常用工具类-Collections 排序操作查找操作填充操作判断集合是否有交集不可变集合 java.util.Collections类是一个工具类&#xff0c;它包含了一些静态方法&#xff0c;用于操作集合&#xff08;如列表和映射&#xff09;。这个类主要用于创建不可修改的集合、填充集合、替换元素…

「优选算法刷题」:数青蛙

一、题目 给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 "croak" &#xff09;的组合。由于同一时间可以有多只青蛙呱呱作响&#xff0c;所以 croakOfFrogs 中会混合多个 “croak” 。 请你返回模拟字符串中所有蛙鸣所需不…

如何启动若依框架

Mysql安装 一、下载 链接&#xff1a;https://pan.baidu.com/s/1s8-Y1ooaRtwP9KnmP3rxlQ?pwd1234 提取码&#xff1a;1234 二、安装(解压) 下载完成后我们得到的是一个压缩包&#xff0c;将其解压&#xff0c;我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹)&…

网络原理(一)

&#x1f495;"Echo"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;网络原理(一) 一. 应用层 应用层是和程序员联系最密切的一层,对于应用层来说,程序员可以自定义应用层协议,应用层的协议一般要约定好以下两部分内容: 根据需求,明确要传输哪些信…

MySQL进阶45讲【19】幻读是什么,幻读会产生什么问题?

1 前言 在MySQL进阶45讲【3】事务隔离的恩恩怨怨这篇文章中&#xff0c;我们有提到过幻读的概念&#xff0c;为了更好地介绍幻读&#xff0c;我们先创建一个表&#xff0c;并添加一些数据&#xff0c;建表和初始化语句如下&#xff1a; CREATE TABLE t ( id int(11) NOTNULL,…

「C++ 类和对象篇 10」初始化列表

目录 一、什么是初始化列表&#xff1f; 二、为什么需要初始化列表&#xff1f; 三、初始化列表怎么使用&#xff1f; 3.1 在构造函数中使用初始化列表 3.2 注意 3.3 结论 3.4 应用场景 四、初始化列表的初始化顺序 五、另一种初始化成员变量的方法 【总结】 一、什么是初始化…

【深度学习】:滴滴出行-交通场景目标检测

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现&#xff08;实验满分&#xff09;&#xff0c;只展示主要任务实验结果&#xff0c;如果需要详细的实验报告或者代码可以私聊博主&#xff0c;接实验技术指导1对1 有任…

单目深度估计任意未标记数据:释放大规模数据潜力 | 开源日报 No.166

LiheYoung/Depth-Anything Stars: 2.6k License: Apache-2.0 Depth-Anything 是一个释放大规模未标记数据力量的项目&#xff0c;可以对任意未标记数据进行单目深度估计。 该项目主要功能、关键特性和核心优势包括&#xff1a; 相对深度估计度量深度估计更好的深度条件控制网…

【Java八股面试系列】并发编程-并发关键字,线程池

目录 并发关键字 Synchronized synchronized最主要的三种使用方式&#xff1a; 具体使用&#xff1a;双重校验锁单例模式 synchronized 底层实现原理&#xff1f; synchronized锁的优化 偏向锁 轻量级锁 重量级锁 Mark Word 与 Monitor 之间的关系 总结 偏向锁、轻量…

阿里百秀移动端首页

技术选型 方案:采取响应式页面开发方案技术: bootstrap框架设计图∶设计图采用1280px设计尺寸 屏幕划分分析 屏幕缩放发现中屏幕和大屏幕布局是一致的。因此我们列定义为col-md-就可以了&#xff0c;md是大于等于970以上的屏幕缩放发现小屏幕布局发生变化&#xff0c;因此我…

ArcGIS学习(四)坐标系-1

ArcGIS学习(四)坐标系 大家平时在处理数据的时候肯定经常遇到坐标系相关的问题。最常见的就是同一个地区的两个数据,导入ArcGIS内却对不上;也肯定听到过坐标系相关的一些词语,比如地理坐标系投影坐标系、投影、WGS1984坐标、CGCS2000坐标系、火星坐标系、百度坐标系等。 …

架构(十二)动态Excel

一、引言 作者最近的平台项目需要生成excel&#xff0c;excel的导入导出是常用的功能&#xff0c;但是作者想做成动态的&#xff0c;不要固定模板&#xff0c;那就看看怎么实现。 二、后端 先捋一下原理&#xff0c;前后端的交互看起来是制定好的接口&#xff0c;其实根本上是…