• Zabbix 部署配置


    监控基本概述

    主要的监控工具

    1.CACTI:网络监控,Cacti是一套基于PHP,MySQL,SNMP 及 RRDTool 开发的网络流量监测图形分析工具

    2.NAGIOS:系统监控,很久之前使用的,需要人为定义,没有图形,没有办法查询历史

    3.ZABBIX:分布式监控

    4.Open-falcon:小米监控产品,开源的

    5.Prometheus:普罗米修斯,监控 docker,K8S

    6.lepus:天兔,数据库监控

    主要的监控内容

    1.公有云:云监控
    2.硬件监控:CPU 温度,主板温度,磁盘,网卡,风扇转速
    3.系统监控:CPU,内存,网络,磁盘剩余
    4.服务监控:
        1)MySQL:主从复制是否有延迟(zabbix 监控模板)
        2)Redis:主从复制是否有延迟
        监控思路: Zabbix 没有固定模板,可以在主库中 set 一个 key 为时间戳,然后从库会同步这个时间戳(动态),写脚本时时获取这两个时间戳,做对比。
        3)NFS:磁盘挂载状况
        4)Tomcat:JVM 监控,老年代、新生代、永久带、full-gc、垃圾回收
        5)Rsync 的同步情况,MD5 校验文件是否被篡改
    5.Web 页面监控:请求时间,响应时间,加载时间,nginx 状态码监控,pv,uv,ip
    6.网络监控:网卡流量(出入流量),贷款,监控宝
    7.业务监控:
    	1)URL 监控
    	2)API 监控:针对业务的接口  basic.action
    	3)Nginx 状态码
    	4)Tomcat日志监控
    8.日志监控:ELK,第三方日志易
    9.安全监控:Firewalld,WAF,牛盾云,安全狗
    10.容器监控:Prometheus,普罗米修斯
    

    监控命令

    监控CPU

    w top htop uptime glances ps
    
    # 不管用什么命令监控,查看CPU,我们都必须了解,系统的用户态和内核态
    us: 用户态     跟用户的操作有关35%
    sy: 内核态     跟内核的处理有关65%
    id: CPU空闲
    
    # 当我们执行一个命令的时候,很快能出来结果,占用用户态和内核态的时间
    [root@web02 ~]# time ls
    real    0m0.002s       真实执行时间
    user    0m0.001s       用户执行时间
    sys     0m0.001s       系统执行时间
    

    监控内存

    free glances top htop
    

    监控磁盘

    df glances iotop iostat dstat
    
    #以兆为单位,每秒执行一次,执行10次
    [root@web02 ~]# iostat -dm 1 10
    

    网络监控

    glances ifconfig iftop ip route
    
    nethogs 该命令可以查看某个进程所使用的流量
    

    TCP 端口状态监控

    # TCP 端口状态一共 11 种 
    netstat -ant
    ss -ant
    

    监控内存脚本实例

    [root@zabbix ~]# vim /scripts/free.sh
    #!/bin/bash
    Hostname_Ip=$(hostname)_$(hostname -I|awk '{print $2}')
    Date=$(date +%F)
    while true
    do
        Mem_Free=$(free -m|awk '/^Mem/{print $NF}')
        Swap_used=$(free -m | awk '/^Swap/ {print $3}')
        if [ $Mem_Free -lt 100 -a $Swap_used -gt 100 ];then
            echo "$Date: $Hostname_Ip 内存可用量不足100M并且Swap空间占用超过100M,内存当前剩余: $Mem_Free,Swap空间使用达到: $Swap_used"
        fi
        sleep 5
    done
    

    脚本监控,单台服务器或少量服务器可以使用,但是遇到大型架构服务器数量很多,使用该方法并不适用,所以我们要使用第三方工具进行监控 zabbix

    Zabbix 安装

    Zabbix 架构

    1.Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server;

    2.Zabbix server 是 Zabbix 软件的核心组件,Agent 向其报告可用性、系统完整性信息和统计信息。server 也是存储所有配置信息、统计信息和操作信息的核心存储库;

    3.数据库:所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中;

    4.Zabbix web 为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 Web 的界面,该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上;

    5.Zabbix proxy 可以代替 Zabbix server 采集性能和可用性数据。Zabbix Proxy 在 Zabbix 的部署是可选部分;但是 Proxy 的部署可以很好的分担单个 Zabbix server 的负载。

    配置官方源安装

    配置官方源

    [root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    
    [root@zabbix ~]# ll /etc/yum.repos.d/
    total 12
    -rw-r--r--. 1 root root 2523 Jul  6 22:19 CentOS-Base.repo
    -rw-r--r--. 1 root root  664 Jul  6 22:19 epel.repo
    -rw-r--r--  1 root root  633 Oct  7  2019 zabbix.repo
    

    开启仓库

    #Zabbix 前端需要额外的基础安装包。 您需要在运行 Zabbix 前端的系统中启用可选 rpms 的软件仓库
    
    #安装命令
    [root@zabbix ~]# yum install -y yum-utils
    [root@zabbix ~]# yum-config-manager --enable rhel-7-server-optional-rpms
    Loaded plugins: fastestmirror
    

    安装 Zabbix

    [root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
    

    第三方源安装

    配置第三方源

    [root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    

    安装 zabbix

    [root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
    

    安装数据库

    [root@zabbix ~]# yum install -y mariadb-server
    

    配置数据库

    [root@zabbix ~]# systemctl start mariadb
    [root@zabbix ~]# systemctl enable mariadb
    
    [root@zabbix ~]# mysql
    MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
    Query OK, 1 row affected (0.00 sec)
    MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by 'zabbix';
    Query OK, 0 rows affected (0.00 sec)
    

    配置 zabbix 连接数据库

    [root@zabbix ~]# grep "^DB" /etc/zabbix/zabbix_server.conf 
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    

    导入初始数据库

    [root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.24/create.sql.gz | mysql -u root -p zabbix
    
    [root@zabbix ~]# mysql
    MariaDB [(none)]> use zabbix
    Database changed
    
    MariaDB [zabbix]> show tables;
    ... ...
    144 rows in set (0.00 sec)
    

    启动 zabbix 服务

    [root@zabbix ~]# systemctl start zabbix-server.service 
    [root@zabbix ~]# systemctl enable zabbix-server.service
    

    启动 httpd

    # 修改时区
    [root@web02 ~]# vim /etc/httpd/conf.d/zabbix.conf
    php_value date.timezone Asia/Shanghai
    
    [root@zabbix ~]# systemctl start httpd
    [root@zabbix ~]# systemctl enable httpd
    

    web页面访问 zabbix

    http://10.0.0.71/zabbix/index.php
    # 按照流程配置
    
    # 默认登录用户名密码:
    Admin
    zabbix
    

    启动 agent

    [root@zabbix ~]# systemctl start zabbix-agent.service
    

    监控一台远端主机

    安装zabbix客户端

    [root@web01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
    

    配置客户端

    [root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
    Server=172.16.1.71
    ServerActive=172.16.1.71
    Hostname=web01
    

    启动客户端

    [root@web01 ~]# systemctl start zabbix-agent.service 
    [root@web01 ~]# systemctl enable zabbix-agent.service
    
    #验证启动
    [root@web01 ~]# netstat -lntp     
    tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      39529/zabbix_agentd
    

    Web 端配置监控

    添加主机组 => 创建主机 => 选择主机模板 => 添加主机

    数据库拆分

    搭建新的数据库

    [root@db01 ~]# yum install -y mariadb-server
    

    授权数据库

    [root@db01 ~]# systemctl start mariadb
    [root@db01 ~]# systemctl enable mariadb
    [root@db01 ~]# mysql
    MariaDB [(none)]> grant all on *.* to zabbix@'172.16.1.%' identified by '123';
    Query OK, 0 rows affected (0.00 sec)
    

    导出源数据库数据

    [root@zabbix ~]# mysqldump -B zabbix > /tmp/zabbix.sql
    

    将数据导入新库

    [root@zabbix ~]# mysql -uzabbix -p -h172.16.1.51 < /tmp/zabbix.sql 
    Enter password:
    

    修改 Zabbix-server 数据库配置

    [root@zabbix ~]# grep "^DB" /etc/zabbix/zabbix_server.conf 
    DBHost=172.16.1.51
    DBName=zabbix
    DBUser=zabbix
    DBPassword=123
    

    修改 Zabbix-web 数据库配置

    [root@zabbix ~]# vim /etc/zabbix/web/zabbix.conf.php 
    <?php
    // Zabbix GUI configuration file.
    global $DB;
    
    $DB['TYPE']     = 'MYSQL';
    #修改数据库地址
    $DB['SERVER']   = '172.16.1.51';
    $DB['PORT']     = '0';
    $DB['DATABASE'] = 'zabbix';
    $DB['USER']     = 'zabbix';
    #修改远程连接密码
    $DB['PASSWORD'] = '123';
    
    // Schema name. Used for IBM DB2 and PostgreSQL.
    $DB['SCHEMA'] = '';
    
    $ZBX_SERVER      = 'localhost';
    $ZBX_SERVER_PORT = '10051';
    $ZBX_SERVER_NAME = 'Linux脱产9期';
    
    $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
    

    重启访问

    [root@zabbix ~]# systemctl restart zabbix-server.service
    

    停止旧库

    [root@zabbix ~]# systemctl stop mariadb
    

    Zabbix 配置字体

    中文字会乱码,安装下面字体,并拷贝到 Zabbix 的字体目录

    [root@zabbix yum.repos.d]# yum -y install wqy-microhei-fonts.noarch
    [root@zabbix yum.repos.d]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc  /usr/share/zabbix/assets/fonts/graphfont.ttf
    
    记录成长过程
  • 相关阅读:
    487-3279(电话号码)
    【模板】二分图匹配
    【模板】网络最大流
    P3879 [TJOI2010]阅读理解
    10.10 考试T1 低仿机器人
    P4025 [PA2014]Bohater
    线段树合并 从入门到入土
    CF547B Mike and Feet
    10.6洛谷月赛划水记
    P4552 [Poetize6] IncDec Sequence
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13634943.html
Copyright © 2020-2023  润新知