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

  

 

posted @ 2022-04-09 16:14  记忆抹不去  阅读(492)  评论(0编辑  收藏  举报