• zabbix(一)


    1. 为什么需要监控

    保证业务7*24小时,稳定运行
    提前做监控,只要有问题立马报警,报警需要时间
    有时候出的故障,故障处理需要时间
    
    load average: 0.12, 5.28, 7.87
    负载高峰期已经过去了
    
    1分钟 5分钟  15分钟
    load average: 7.87,5.28,0.12
    负载高峰期要来了
    
    nginx 业务日志,ip来源  url
    zabbix 监控工具,监控系统
    
    写shell脚本,读取当前内存的值,判断内存是否不足,如果内存不足,发送邮件
    定时任务:分时日月周 命令
    
    监控工具:
    zabbix:  安装简单,功能强大,易用性比较强,扩展灵活 ,数据存储,数据分析
    nagios:  没有数据库,不能做数据分析,
    cacti:   数据库,做数据分析,自定义监控麻烦
    open-falcon: 适合有开发基础的人去用
    prometheus:插件比较少,最适合监控容器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2. 常见linux监控命令

    cpu: top  htop  uptime  vmstat
    内存: free
    磁盘: df  iotop
    网卡: iftop #查看IP地址占用流量  nethogs #查看进程占用流量
    系统进程: ps  pstree #以树状的形式查看进程
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. zabbix基础架构

    在这里插入图片描述
    在这里插入图片描述

    3. zabbix安装

    部署一套zabbix监控系统
    数据采集 zabbix-agent(被监控主机)
    数据分析,报警 zabbix-server 核心程序(配置数据库的账号密码)
    数据存储 支持多种数据库mysql,mariadb,pgsql,sqlite
    数据展示 zbbix-web界面(配置数据库的账号密码)

    yum安装软件(zabbix 安装LTS版本)

    centos-base  基础软件包
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    zabbix yum仓库 repo文件  https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    
    # 1. 添加zabbix的yum仓库,替换repo文件中下载地址为清华源
    rpm -ivh  https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    sed -i "s#http://repo.zabbix.com/zabbix#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix#g" zabbix.repo
    
    # 2. yum安装zabbix-server-mysql,zabbix-web-mysql,数据库mysql,pgsql
    yum install zabbix-server-mysql zabbix-web-mysql -y
    yum install  mariadb-server -y
    
    # 3. 启动配置数据库(创库,授权,导入初始数据)
    systemctl start mariadb.service 
    systemctl enable mariadb.service
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> create user 'zabbix'@'localhost' identified by '123456';
    mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
    
    rpm -ql zabbix-server-mysql # 查看这包有什么文件/usr/share/doc/zabbix-server-mysql-4.0.19/create.sql.gz
    
    #导入初始数据
    zcat /usr/share/doc/zabbix-server-mysql-4.0.49/create.sql.gz|mysql -uzabbix -p123456 zabbix
    #验证数据导入
    mysql -uzabbix -p123456 zabbix -e "show tables;"|head -6
    
    # 4. 配置启动zabbix-server
    vim /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=123456
    
    systemctl start zabbix-server.service 
    systemctl enable zabbix-server.service
    e:配置zabbix-web(lamp)
    vim /etc/httpd/conf.d/zabbix.conf
    php_value date.timezone Asia/Shanghai
    
    systemctl start httpd
    systemctl enable httpd
    访问http://10.0.0.10/zabbix来安装
    初始账号密码:Admin/zabbix
    
    如果后期需要改动数据库的IP地址,可以到/etc/zabbix/web/zabbix.conf.php进行修改
    Congratulations! You have successfully installed Zabbix frontend.
    Configuration file "/etc/zabbix/web/zabbix.conf.php" created.
    
    登录界面后修改密码和调整中文
    # zabbix-server也需要通过zabbix-agent来监控自己,在zabbix-server上安装zabbix-agent, 安装、配置、启动
    yum install zabbix-agent -y
    systemctl start zabbix-agent.service 
    systemctl enable zabbix-agent.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    4. zabbix监控主机

    4.1 zabbix添加监控主机

    10.0.0.11被监控主机安装zabbix-agent来采集数据,传递给服务端

    # 1. yum安装配置启动zabbix-agent,在web01(10.0.0.11)上安装zabbix-agent(不需要配置zabbix仓库,直接下载rpm包即可)
    yum install zabbix-agent -y
    vim /etc/zabbix/zabbix_agentd.conf
    Server=10.0.0.10
    
    systemctl start zabbix-agent.service 
    systemctl enable zabbix-agent.service 
    
    # 剩下的步骤;web界面鼠标点点
    zabbix-agent  配置文件中,Server的地址  127.0.0.1    
    
    Template OS Linux 模板:
    应用集 10 监控项 34 触发器 15 图形 5
    
    监控项:34个监控指标,监控,取值
    应用集就是对监控项进行分组
    触发器:定义报警条件(阈值)
    图形:根据多个监控项的值来出图
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    zabbix特别好用的功能之一就是模板,模板里面定义了很多监控项
    监控项不一定有触发器,监控项可以做数据分析

    4.2 zabbix命令行自定义监控项

    监控模板中不存在的监控项,这时需要自定义监控项

    命令行监控io的读写速度

    创建自定义监控项: 
    1. 命令行取值
    yum install sysstat.x86_64 -y
    iostat|awk '$1~/sda/{print $2}'
    
    tps                kB_read/s       kB_wrtn/s
    每秒传输的次数     每秒读取的速度  每秒写入的数据
    
    # 2. 修改zabbix-agent配置文件
    UserParameter=<key>,<shell command>
    key变量名称不能相同
    
    vim /etc/zabbix/zabbix_agentd.conf
    UserParameter=tps,iostat|awk '$1~/sda/{print $2}'
    
    systemctl restart zabbix-agent.service 
    
    # 3. 在zabbix-server上使用zabbix-get测试取值(在服务端安装  yum -y install zabbix-get)
    zabbix_get -s 10.0.0.11 -k nginx_staus
    
    # 4. 在web界面上给web01: 10.0.0.11添加监控项
    前两步操作,是为了让web01支持监控tps值,zabbix-web决定要不要监控tps值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    4.2 zabbix脚本自定义监控项

    监控模板中不存在的监控项,这时需要自定义监控项
    脚本监控nginx的健康状态

    # 1. 脚本取值/server/scripts/ngx_check.sh
    [root@localhost scripts]# cat ngx_check.sh 
    #!/bin/bash
    status_code=$(ps -fe | grep nginx | wc -l)
    if [ $status_code -lt 2 ]
    then
            echo 0
    else
            echo 1
    fi
    
    # 2. 修改zabbix-agent配置文件
    [root@localhost scripts]# cat  /etc/zabbix/zabbix_agentd.conf|grep 
    UserParameter=tps,iostat|awk '$1~/sda/{print $2}'
    UserParameter=nginx_status,/server/scripts/ngx_check.sh
    ## 重启zabbix-agent
    systemctl restart zabbix-agent.service 
    
    # 3. 在zabbix-server上使用zabbix-get测试取值(在服务端安装  yum -y install zabbix-get)
    [root@localhost ~]# zabbix_get -s 10.0.0.11 -k nginx_status
    1
    
    # 4. 在web界面上给web01: 10.0.0.11添加监控项
    
    # 5. 值映射,在查看最新数据的时候,0和1显示效果不号,显示好看的话可以使用值映射(管理--一般--值映射--创建值映射)也可以自定义映射
    1  up
    0  down
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Linux内核设计与实现 第六章 内核数据结构
    vue3 无法使用pnpm安装依赖 或 Cannot find module preinstall.js
    「PAT乙级真题解析」Basic Level 1098 岩洞施工 (问题分析+完整步骤+伪代码描述+提交通过代码)
    Linux下redis7的安装,启动与停止
    在Windows10、Windows11系统下安装Docker
    逍遥自在学C语言 | 枚举的那些事儿
    无版权 NFT 会为市场带来改变么?
    运动蓝牙耳机哪种款式好用、专业的蓝牙运动耳机推荐
    制作 3 档可调灯程序编写
    内核中内存数据迁移速度对比
  • 原文地址:https://blog.csdn.net/weixin_46818279/article/details/132913442