最全zabbix安装部署

监控

  1.  
    netstat -tunlp #查看进程
  2.  
    tail -f /var/log/zabbix/zabbix_server.log #查看日志
  3.  
    tail #显示文件末尾内容
  4.  
    history #查看历史命令 !+ 行号 直接使用
  5.  
    # hostnamectl set-hostname +主机名(修改主机名)

监控的生命周期

  1. 服务器上架到机柜

  2. 基础设施监控

    1.  服务器温度,风扇转速,ipmitool命令(只能用在物理机)
    2.  存储的监控(df,fdisk,iotop)
    3. cpu监控 lscpu,uptime,top,htop,glances
  3. 应用监控

安装服务端

  1.  关闭防火墙
  2.  sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  3.  systemctl disable --now firewalld

在这里插入图片描述

  1. .zabbix-server内存尽量大一点,4G最好
  2.  获取zabbix的下载源
  3. rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  4.  更换zabbix.repo源,为阿里
  5. sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

在这里插入图片描述

在这里插入图片描述

  1.  清空缓存,下载zabbix服务端
  2.  yum clean all
  3.  yum makecache
  4.  yum install zabbix-server-mysql zabbix-agent -y
  5.  安装工具,可以在机器上,使用多个版本的软件,并且不会影响整个系统的依赖环境
  6.  yum install centos-release-scl -y
  7.  更改zabbix.repo中zabbix-frontend的数值
  8.  vi /etc/yum.repos.d/zabbix.repo

 

  1.  安装zabbix前端环境,且是安装到scl环境下
  2.  yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
  3.  安装zabbix所需的数据库,mariadb
  4.  yum install mariadb-server -y
  5.  配置数据库开机启动
  6.  systemctl enable --now mariadb
  7.  初始化数据库,并设置密码
  8.  mysql_secure_installation
  9.  添加数据库用户
  10. # 进入数据库,创建一个zabbix数据库:
  11.  create database zabbix character set utf8 collate utf8_bin;
  12.  # 创建一个zabbix用户,密码123
  13.  create user zabbix@localhost identified by '123';
  14.  #修改权限
  15.  grant all privileges on zabbix.* to zabbix@localhost;
  16.  使用zabbix-mysql命令,导入数据库信息
  17. # mysql -u 用户名 -p 数据库名
  18.  zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
  19.  修改zabbix server配置文件,修改数据库密码
  20. # 进入/etc/zabbix/zabbix_server.conf中,修改DBPassword为数据库密码
  21.  vim /etc/zabbix/zabbix_server.conf
  22.  DBPassword=123
  23.  # 查看修改是否成功
  24.  grep '^DBPass' /etc/zabbix/zabbix_server.conf
  25.  修改zabbix PHP的配置文件
  26. #进入/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf中最后一行改成php_value[date.timezone] = Asia/Shanghai
  27.  启动zabbix相关服务器
  28.  systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
  29.  systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
  30.  访问zabbix入口
  31. 本机ip/zabbix
  32.  安装成功后默认用户名:Admin,密码是:zabbix

安装客户端

agent2新版本采用golang开发,默认使用10050端口,也会zabbix客户端的端口。

  1.  
    1.环境准备,关闭防火墙
  2.  
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  3.  
    systemctl disable --now firewalld
  4.  
     
  5.  
    2.注意时间正确
  6.  
    yum install ntpdate -y
  7.  
    ntpdate -u ntp.aliyun.com
  8.  
     
  9.  
    3.时区统一
  10.  
    mv /etc/localtime{,.back}
  11.  
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

zabbix-agent2部署流程

  1.  
    1.获取zabbix的下载源
  2.  
    rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  3.  
     
  4.  
    2.更换zabbix.repo源,为阿里
  5.  
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
  6.  
     
  7.  
    3.安装
  8.  
    yum install zabbix-agent2 -y
  9.  
     
  10.  
    4.查看配置命令
  11.  
    /etc/zabbix/zabbix-agent2.conf
  12.  
     
  13.  
    5.启动命令
  14.  
    ls -l /usr/sbin/zabbix_agent2
  15.  
     
  16.  
    6.启动客户端
  17.  
    systemctl enable --now zabbix-agent2
  18.  
    #检查端口(yum install net-tools)
  19.  
    netstat -tnlp | grep zabbix
  1.  
    7.修改配置文件
  2.  
    nano /etc/zabbix/zabbix_agent2.conf
  3.  
    # 将Server,ServerActive改为server的IP地址
  4.  
    # 将Hostname改为本机名(使用hostname查询本机名)
  5.  
    # 查看修改后的文件
  6.  
    grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
  7.  
     
  8.  
    8.重启
  9.  
    systemctl restart zabbix-agent2

在这里插入图片描述

PidFile端口文件

LogFile日志文件

  1.  
    Server=x.x.x.x #被动模式的server IP地址,如果为纯主动模式可以注释
  2.  
    # Server若有多个IP地址,使用逗号分隔开
  3.  
    ServerActive=x.x.x.x #主动模式的serverIP地址

在这里插入图片描述

在这里插入图片描述

验证zabbix-agent2连通性

  1.  
    1.在Server中安装zabbix—get
  2.  
    yum install zabbix-get -y
  3.  
    2.验证连通性
  4.  
    zabbix_get -s '192.168.253.130' -p 10050 -k 'agent.ping'
  5.  
    #agent.ping 测试连通性
  6.  
    #agent.name 查看主机名
  7.  
    #agent.uname 查看主机信息

解决zabbix查看乱码问题

zabbix默认检测了服务端本身,但是编码有问题

  1.  
    1.安装字体
  2.  
    yum -y install wqy-microhei-fonts
  3.  
     
  4.  
    2.复制字体
  5.  
    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
  6.  
     

添加zabbix-agent主机

在这里插入图片描述

自定义监控内容

自定义监控服务器登陆的人数

命令行角度

  1.  
    1.明确需要执行的Linux命令
  2.  
    who | wc -l #查看当前用户数
  3.  
     
  4.  
    2.手动创建zabbix的配置文件,用于自定义key
  5.  
    vim /etc/zabbix/zabbix_agent2.conf

在这里插入图片描述

  1.  
    3.创建配置文件,以及内容
  2.  
    [root@zbx-agent01 zabbix_agent2.d]# cat userparameter.conf
  3.  
    UserParameter=login.user,who|wc -l
  4.  
     
  5.  
    4.在server中测试
  6.  
    zabbix_get -s '192.168.253.131' -p 10050 -k 'login.user'

在页面添加

添加流程

  1. 创建模板

在这里插入图片描述

  1. 创建应用集(好比一个文件夹,里面放入一堆监控项)

在这里插入图片描述

  1. 创建监控项,自定义item,具体监控内容

    在这里插入图片描述

  2. 创建触发器,当监控项获取到值得时候和触发器比较,判断,决定是否报警

    在这里插入图片描述

  3. 创建图形

在这里插入图片描述

  1. 将具体的主机和该模板链接,关联

在这里插入图片描述

邮件报警

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

全网监控方案

自动添加主机监控

  1. 克隆监控模板
  2. 自动注册,自动发现
  3. 使用zabbix的api接口,使用curl语言,或者开发自己的编程脚本如python等

监控实施方案

硬件监控(自带)

应用服务监控

  1.  
    rsync服务监控(实时文件同步)
  2.  
    监控服务器的873端口是存活的
  3.  
    有关端口的监控,使用zabbix自带的key net.tcp.port[,873]
  4.  
    进行数据推拉,检测效果
  5.  
    检测NFS服务是否正常(网络文件系统)
  6.  
    通过key检测111端口 net.tcp.port[,111]
  7.  
    showmount -e ip | wc -l #查看挂载
  8.  
    检测mysql数据库是否正常
  9.  
    通过 net.tcp.port[,3306]
  10.  
    zabbix自带了mysql的监控模板,直接添加模板
  11.  
    web服务器监控
  12.  
    net.tcp.port[,80]

监控服务的具体方法

  1.  
    #端口检测命令
  2.  
    netstat -tunlp | grep
  3.  
    ss
  4.  
    lsof
  5.  
     
  6.  
    #查询进程信息
  7.  
    ps
  8.  
     
  9.  
    #通过客户端连接
  10.  
    web服务器用curl查询
  11.  
    mysql 用sql语句连接验证

自动发现,自动注册

自动发现:(agent被动模式)

  1.  
    zabbix server 主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上(主动发现客户端)
  2.  
     
  3.  
    缺点:zabbix server压力会较大,耗时较久

自动注册:(agent主动模式)

  1.  
    zabbix agent2主动上报自己的信息,发给zabbix-server
  2.  
     
  3.  
    缺点:agent2可能找不到server(配置文件错了,网络不通)

被动模式,主动模式:

  1.  
    被动模式,对于agent2来说,server来找agent2
  2.  
    主动模式,agent2主动把数据上传给server
  1.  
    1.检测客户端是否存活
  2.  
    [root@zbx-agent01 ~]# systemctl is-active zabbix-agent2
  3.  
    active
  4.  
     
  5.  
    2.练习
  6.  
     

配置hosts解析

  1.  
    #在server 和 agent 的/etc/hosts中添加
  2.  
    192.168.253.128 localhost.DZQ
  3.  
    192.168.253.130 z

自动发现配置

在这里插入图片描述

在这里插入图片描述

自动注册,主动模式

  1.  
    #将/etc/zabbix/zabbix_agent2.conf中的HostnameItem前面的注释符删除
  2.  
    [root@zbx-agent01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
  3.  
    PidFile=/var/run/zabbix/zabbix_agent2.pid
  4.  
    LogFile=/var/log/zabbix/zabbix_agent2.log
  5.  
    LogFileSize=0
  6.  
    Server=192.168.253.128
  7.  
    ServerActive=192.168.253.128
  8.  
    Hostname=zbx-agent01
  9.  
    HostnameItem=system.hostname
  10.  
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
  11.  
    ControlSocket=/tmp/agent.sock
  12.  
     

 

在这里插入图片描述

在这里插入图片描述

分布式监控

分布式监控的作用

  1. 分担server的集中式压力

    agent > proxy > server

  2. 多机房之间的网络延时问题

    异地机房 > proxy > server

在这里插入图片描述

部署分布式zabbix-proxy

  1.  
    #1.环境准备
  2.  
    192.168.253.128 zabbix-server
  3.  
    192.168.253.130 zabbix-proxy
  4.  
    192.168.253.131 zabbix-agents
  5.  
     
  6.  
    #2.关闭192.168.253.130 的agent2服务
  7.  
    systemctl stop zabbix-agent2
  8.  
     
  9.  
    #3.安装proxy,以及数据库(数据库用来存储agent2发来的数据,并最终发给server)
  10.  
    yum install zabbix-proxy-mysql zabbix-get -y
  11.  
    yum install mariadb-server mariadb -y
  12.  
    systemctl enable mariadb #设置开机自启
  13.  
     
  14.  
    #4.启动数据库,配置数据库用户,存储zabbix-agent2信息
  15.  
    mysql -uroot -p
  16.  
    create database zabbix_proxy character set utf8 collate utf8_bin;
  17.  
    #针对zabbix用户所有权限在zabbix_proxy数据库里
  18.  
    grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
  19.  
    #刷新
  20.  
    flush privileges;
  21.  
     
  22.  
    #5.导入zabbix_proxy数据库信息
  23.  
    #查看yum安装路径
  24.  
    rpm -ql zabbix-proxy-mysql
  25.  
    /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz
  26.  
    #将sql.gz文件导入mysql(zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容)
  27.  
    zcat /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
  28.  
     
  29.  
    #6.配置zabbix-proxy配置文件
  30.  
    #修改162行
  31.  
    sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
  32.  
     
  33.  
    sed -i 's#Server=127.0.0.1#Server=192.168.253.128#' /etc/zabbix/zabbix_proxy.conf
  34.  
     
  35.  
    sed -i 's#Hostname=Zabbix proxy#Hostname=zbx-agent01' /etc/zabbix/zabbix_proxy.conf
  36.  
     
  37.  
    #7.检查代理服务器的配置文件
  38.  
    [root@zbx-agent01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
  39.  
    Server=192.168.253.128
  40.  
    Hostname=zbx-agent01(与web中的agent代理程序名称需要一致)
  41.  
    LogFile=/var/log/zabbix/zabbix_proxy.log
  42.  
    LogFileSize=0
  43.  
    PidFile=/var/run/zabbix/zabbix_proxy.pid
  44.  
    SocketDir=/var/run/zabbix
  45.  
    DBPassword=zabbix
  46.  
    DBName=zabbix_proxy
  47.  
    DBUser=zabbix
  48.  
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  49.  
    Timeout=4
  50.  
    ExternalScripts=/usr/lib/zabbix/externalscripts
  51.  
    LogSlowQueries=3000
  52.  
    StatsAllowedIP=127.0.0.1
  53.  
     
  54.  
    #8.启动代理服务
  55.  
    systemctl restart zabbix-proxy
  56.  
    systemctl status zabbix-proxy

agent配置

  1.  
    [root@zbx-agent02 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
  2.  
    PidFile=/var/run/zabbix/zabbix_agent2.pid
  3.  
    LogFile=/var/log/zabbix/zabbix_agent2.log
  4.  
    LogFileSize=0
  5.  
    Server=192.168.253.130(proxy地址)
  6.  
    ServerActive=192.168.253.130
  7.  
    Hostname=zbx-agent02
  8.  
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
  9.  
    ControlSocket=/tmp/agent.sock

web界面配置

在这里插入图片描述

SNMP 监控

简单网络管理协议

  1.  
    1.服务端安装snmp监控程序
  2.  
    yum -y install net-snmp net-snmp-utils
  3.  
     
  4.  
    2.snmp的配置
  5.  
    sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
  6.  
    systemctl start snmpd.service
  7.  
     
  8.  
    3.使用snmp命令
  9.  
    #-v 指定版本
  10.  
    #-c 指定暗号
  11.  
    #sysname snmp的key
  12.  
    snmpwalk -v 2c -c public 127.0.0.1 sysname

在这里插入图片描述

简单网络管理协议

  1.  
    1.服务端安装snmp监控程序
  2.  
    yum -y install net-snmp net-snmp-utils
  3.  
     
  4.  
    2.snmp的配置
  5.  
    sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
  6.  
    systemctl start snmpd.service
  7.  
     
  8.  
    3.使用snmp命令
  9.  
    #-v 指定版本
  10.  
    #-c 指定暗号
  11.  
    #sysname snmp的key
  12.  
    snmpwalk -v 2c -c public 127.0.0.1 sysname

在这里插入图片描述

在这里插入图片描述

posted @ 2022-07-02 21:33  武装小灰灰  阅读(1956)  评论(0编辑  收藏  举报