• zabbix5.0搭建配置


    ●简介

    zabbix监控需要安装服务端和客户端,需要监控的机器需要安装客户端把数据上报给服务端。服务端搭建完成后进入web管理页面进行监控配置。

    本次搭建使用centos7环境yum方式安装,安装不复杂配置的内容比较多,做下操作记录方便后续使用查看,在新环境能够快速搭建部署一套可用

    的监控。

    安装服务端

    1、关闭selinux

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    setenforce 0
    

    2、配置yum源

    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    
    yum clean all
    

    3、安装zabbix server 、agent

    yum install zabbix-server-mysql zabbix-agent -y
    

    4、安装zabbix前端源

    yum install centos-release-scl -y
    

    启用 zabbix 前端源,将[zabbix-frontend]下的 enabled 改为 1
    修改/etc/yum.repos.d/zabbix.repo

    [root@zabbix ~]# vim /etc/yum.repos.d/zabbix.repo
    
    [zabbix-frontend]
    name=Zabbix Official Repository frontend - $basearch
    baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

    5、安装 zabbix 前端和相关环境

    yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
    

    6、安装数据库

    使用 yum 安装 centos7 默认的 mariadb 数据库  (mysql也一样,已安装过数据库可以略过)

    yum install mariadb mariadb-server mariadb-devel -y
    systemctl enable --now mariadb	  	#启动数据库,并配置开机自动启动
    mysql_secure_installation	  	#初始化 mariadb 并配置 root 密码
    

    7、创建初始数据库

    # mysql -uroot -p
    password
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> create user zabbix@localhost identified by 'password';
    mysql> grant all privileges on zabbix.* to zabbix@localhost;
    mysql> quit;
    

    导入 zabbix 数据库,zabbix 数据库用户为 zabbix,密码为 password

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p 
    
    若出现报错ERROR 1046 (3D000) at line 1: No database selected
    vim  /usr/share/doc/zabbix-server-mysql*/create.sql.gz  在首行添加下 use  zabbix;

    8、为Zabbix server配置数据库

    编辑配置文件 /etc/zabbix/zabbix_server.conf

    DBPassword=password
    

    9、为Zabbix前端配置PHP文件里的时区

    编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
    php_value[date.timezone] = Asia/Shanghai
    

    10、启动相关服务,并配置开机自动启动

    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
    

    11、浏览器测试访问zabbix 的 web 页面,格式http://ip/zabbix

     

     

    安装客户端

    1、查看yum是否有zabbix-agent5.0

    yum list |grep  zabbix

    如果有就不用安装zabbix源了,安装zabbix源

    rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    yum clean all  #清除缓存
    

    2、安装zabbix-agent

    yum install -y  zabbix50-agent.x86_64
    

    3、修改客户端配置并启动

    vim /etc/zabbix_agentd.conf 修改:
    
        Server= 101.132.159.46    #服务端ip
    
        ServerActive= 101.132.159.46 #服务端ip
    
        Hostname=xxxx_server    #机器服务命名,服务端配置时需要填写此信息
    
     
    #启动
    systemctl start zabbix-agent
    
    开机自启
    systemctl enable  zabbix-agent 
    

    配置监控

    1、配置群组

       配置--主机群组--创建主机群组--填写群组名称--添加

    2、配置模板

       配置--模板--创建模板--填写模板名称--选择主机群组--添加

       添加完可在末班中添加监控项、触发器等,每次添加主机时选择模板即可拥有模板中的监控项和触发器了。

    3、添加主机

       配置--主机--填写主机名称(客户端配置文件中的Hostname)--选择主机群组--填写客户端机器ip、端口--上方选择模板选择使用的模板(可选)--添加

    4、配置邮件告警

          ①编写脚本vim   /usr/lib/zabbix/alertscripts/zabbix_sendmail.py  (/usr/lib/zabbix/alertscripts告警脚本存放路径)

    #!/usr/bin/python
    #coding:utf-8
    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    import sys
    mail_host = 'smtp.exmail.qq.com'
    mail_user = 'xxxxx@xxxxx.com'                      #邮箱账号
    mail_pass = 'RZVDjFLJVxxxxxxx'                    #邮箱管理后台获取的授权码
    mail_postfix = 'qq.com'
    def send_mail(to_list,subject,content):
        me = ("%s<%s>")%(Header('运维告警信息','utf-8'), mail_user)
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = subject
        msg['From'] = me
        msg['to'] = to_list
        try:
            s = smtplib.SMTP_SSL(mail_host,465)
            s.connect(mail_host)
            s.login(mail_user,mail_pass)
            s.sendmail(me,to_list,msg.as_string())
            s.close()
            return True
        except Exception as e:
            print('Exception',e)
            return False
    if __name__ == "__main__":
        send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

      ②配置报警媒介

          管理--报警媒介类型--创建媒介类型--填写名称--类型选择脚本--填写脚本名称(zabbix_sendmail.py)--脚本参数填写(见下图)--添加

       脚本参数:

    {ALERT.SENDTO} 
    {ALERT.SUBJECT} 
    {ALERT.MESSAGE}
    

      

          ③配置用户的告警媒介

      用户--选择用户--报警媒介--添加告警人邮件--选择告警类型(自己第②步创建的)--填写收件人邮箱--添加--添加

          ④配置动作

      配置--动作--创建动作--填写名称--添加条件--选择触发器--添加--操作--添加操作--选择用户--添加--添加恢复操作--选择用户--添加--添加

    5、配置自动注册

     zabbix客户端自动注册设置,实现客户端自动向服务端发送请求,从而添加主机、添加模板等操作。

    web设置步骤:

       配置--动作--选择自动注册动作--填写名称--添加条件--选择主机元数据--选择匹配--填写值(可以根据值分类1、默认的使用一个值 2、mysql数据库的一个值 3、等等)

          --点击添加--点击操作--添加操作--添加主机--添加主机群组--添加模板--点击添加

    zabbix客户端配置步骤:

       vim /etc/zabbix_agentd.conf

         添加HostMetadata=(这里填web设置步骤中主机元数据的值)

         保存退出,重启zabbix-agent服务就会发现页面中已经添加了此客户端的主机了。

    常见问题处理

    1、cpu、内存异常捕捉进程的方法

    以下脚本当cpu、内存可用率小于30查看占用最高的5个进程记录到文件里

    #!/bin/bash
    
    while true
    do
    mem_free=`free -m | grep '^Mem:' | awk '{print $4 }' `
    mem_buff_cache=`free -m | grep '^Mem:' | awk '{print $6 }' `
    mem_total=`free -m | grep '^Mem:' | awk '{print $2 }' `
    mem_percent=$(((mem_free+mem_buff_cache)*100/mem_total))
    
    # 输出信息的文件
    echo_file="/root/Mem.txt"
    echo_file2="/root/cpu.txt"
    cpu=`top -b|head -3|grep '%Cpu'|awk '{print $8}'`
    cpu_percent=`echo ${cpu%.*}`

    #内存监控留档 if [ $mem_percent -lt 30 ] ;then echo "`date +%F-%H` memory: ${mem_percent}%" >> $echo_file echo "最高的进程:" >> $echo_file echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -5`" >> $echo_file echo "=========================end========================" >> $echo_file sleep 10 echo "`date +%F-%H` memory: ${mem_percent}%" >> $echo_file echo "最高的进程:" >> $echo_file echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -5`" >> $echo_file echo "=========================end========================" >> $echo_file fi #cpu监控留档 if [ $cpu_percent -lt 30 ] ;then echo "`date +%F-%H` cpu: ${cpu}%" >> $echo_file2 echo "最高的进程:" >> $echo_file2 echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -5`" >> $echo_file2 echo "=========================end========================" >> $echo_file2 sleep 10 echo "`date +%F-%H` cpu: ${cpu}%" >> $echo_file2 echo "最高的进程:" >> $echo_file2 echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -5`" >> $echo_file2 echo "=========================end========================" >> $echo_file2 fi sleep 60 done

      

  • 相关阅读:
    Yii中CreateUrl的使用总结
    scite配置文件及常用设置
    smarty中判断数组是否为空的方法
    Notepad++添加插件Funtion List 支持PHP
    类的例子1
    class的使用
    lambda 的使用汇总
    作用域
    模块的整理汇总
    函数使用的健壮性
  • 原文地址:https://www.cnblogs.com/chenjiye/p/16122394.html
Copyright © 2020-2023  润新知