centos7.6安装zabbix4.0

国内源配置

  • 更改国内源
    • 备份yum源
      mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
    • 安装zabbix yum源
      rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    • 阿里云yum源和epel源
      curl http://mirrors.aliyun.com/repo/Centos-7.repo -o yum.repos.d/Centos-7.repo
      wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    • 同步时间
      yum install -y ntpdate && ntpdate ntp1.aliyun.com
      echo '* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >> /var/spool/cron/root
    • 更换zabbix国内源
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
    
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch 
    baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
    enabled=1
    gpgkey=http://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX
    gpgcheck=1
    
    • 添加gpgkey
      注意,key已经用了url。
    • 清理更新源
    yum clean all
    yum makecache -y
    

安装

yum install zabbix-server-mysql zabbix-web-mysql mariadb-server -y

配置mysql

  • 自启
    systemctl enable mariadb && systemctl start mariadb
  • 数据库初始化
mysql_secure_installation;
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@'localhost' identified by '123456';
flush privileges;
quit;
#导入表结构
zcat /usr/share/doc/zabbix-server-mysql-4.0.10/create.sql.gz | mysql -uzabbix -p123456 zabbix

配置httpd

vim /etc/httpd/conf/httpd.conf
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 修改参数
ServerName 127.0.0.1:80
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#修改时区
vim /etc/php.ini;
date.timezone = Asia/Shanghai;
vim /etc/httpd/conf.d/zabbix.conf;
php_value date.timezone Asia/Shanghai;
#自启
systemctl enable httpd && systemctl start httpd;

访问zabbix网页,并初始化配置。

http://[IP]/zabbix/setup.php

账密:Admin/zabbix
数据库分离 修改此配置文件 /etc/zabbix/web/zabbix.conf.php

zabbix-server配置

vim /etc/zabbix/zabbix_server.conf;
#配置数据库相关信息
DBHost=localhost;
DBName=zabbix;
DBUser=zabbix;
DBPassword=123456;
>>>>>>>>>>>>>>>>>>>>>>>
systemctl enable zabbix-server;
systemctl start zabbix-server;

zabbix-agent安装配置

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.9-3.el7.x86_64.rpm;
vim /etc/zabbix/zabbix_agentd.conf;
#服务端的地址
Server=127.0.0.1
#
systemctl enable zabbix-agent;
systemctl start  zabbix-agent;

完成查看

在这里插入图片描述


配置监控项及告警脚本。

  • 逻辑解释:
    动作:机制触发后实行的动作,包括触发,恢复和更新。
    监控项:需要被监控的项目,条目。
    触发器:监控项的判断机制。
    报警媒介类型:监控指标到达预期峰值后的触发媒介,可以是:脚本,短信接口,邮箱接口,手机接口等通知服务。
  • 告警媒介
    例如计划做一个微信或钉钉的通知。
    • zabbix存放媒体脚本的路径:/usr/lib/zabbix/alertscripts
    rpm -qa zabbix*
    >>>
    zabbix-release-4.0-1.el7.noarch
    zabbix-web-4.0.19-1.el7.noarch
    zabbix-server-mysql-4.0.19-1.el7.x86_64
    zabbix-agent-4.0.9-3.el7.x86_64
    zabbix-web-mysql-4.0.19-1.el7.noarch
    zabbix-get-4.0.19-1.el7.x86_64
    >>>
    rpm -ql zabbix-server-mysql-4.0.19-1.el7.x86_64 | grep alertscripts
    
    • zabbix执行脚本的逻辑。
      在这里插入图片描述
      shell脚本:bash /usr/lib/zabbix/alertscripts/post/dt_sender.sh {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
      python脚本:python /usr/lib/zabbix/alertscripts/post/dt_sender.py {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
      通过声明来辨别:
      #!/bin/bash
      以bash来执行
      $0 参数一 $1 参数二 $2 参数三 $3 参数四
      #! /usr/bin/python
      # -*- coding: utf-8 -*-
      以Python来执行
      获取参数import sys;sys.argv
      
      zabbix脚本可用变量:
      {ALERT.SENDTO}:发给谁
      {ALERT.SUBJECT}:告警主题
      {ALERT.MESSAGE}:告警内容
    • 动作
      • zabbix动作的发生模板可用变量:
      告警主机:{HOST.NAME} 
      告警地址:{HOST.IP} 
      监控项目:{ITEM.NAME} 
      监控取值:{ITEM.LASTVALUE} 
      告警等级:{TRIGGER.SEVERITY} 
      当前状态:{TRIGGER.STATUS} 
      告警信息:{TRIGGER.NAME} 
      告警时间:{EVENT.DATE} {EVENT.TIME} 
      事件ID:{EVENT.ID}
      
      在这里插入图片描述
      • 告警信息发送周期自定义:
        在这里插入图片描述
        假如:希望报警触发后未解决,则每隔60秒发一次消息无限循环。
        操作步骤持续时间:60s。步骤:1-0表示,从第一步开始无限循环直到解决告警触发恢复告警。
        步骤:1-3表示,每隔60s发3次。
  • 触发器
    • zabbix表达式:
  • 监控项
    在这里插入图片描述
  • 应用集
    一批监控项的集合。可立即为保存多个监控项的文件夹。
  • 模板
    监控项,触发器和应用集特定组合的。

自定义监控指标

  • 多个自定义Key值。
  • 将Key定义在独立的文件中,然后在主配置文件中进行新引用。
vim /usr/local/zabbix_agent/etc/zabbix_agentd.conf;
### Option: Include
#       You may include individual files or all files in a directory in the configuration file.
#       Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
Include=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/
  • 在/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d目录写编写自定义Key文件
vim custom_parameters.conf;
##############################
UserParameter=Physical_cpu_0_temperature,sensors|grep "id 0"|awk '{print $4}'|awk -F "°" '{print $1}'|awk -F "+" '{print $2}'
UserParameter=cpu_0_core0,sensors|grep -A 6 "id 0" | grep "Core 0" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
UserParameter=cpu_0_core1,sensors|grep -A 6 "id 0" | grep "Core 1" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
UserParameter=cpu_0_core2,sensors|grep -A 6 "id 0" | grep "Core 2" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
UserParameter=cpu_0_core3,sensors|grep -A 6 "id 0" | grep "Core 3" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
UserParameter=cpu_0_core4,sensors|grep -A 6 "id 0" | grep "Core 4" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
UserParameter=cpu_0_core5,sensors|grep -A 6 "id 0" | grep "Core 5" | awk '{print $3}'|awk -F "°" '{print $1}'|awk  -F "+" '{print $2}'
  • 测试键值
    zabbix_get -s xx.xx.xx.xx -p 10050 -k Physical_cpu_0_temperature

删除指定监控项历史数据

数据表

  • history表
    该表保存浮点型监控项数值
  • history_uint表
    该表保存无符号整型数据
  • history_str表
    该表保存字符型数据

删除语句

#删除指定监控项指定时间段内的数据
delete  from history_uint  where  itemid = "" and clock < ""  LIMIT 10000;

Docker部署

Dockerfile

  • zabbix-server
FROM zabbix/zabbix-server-mysql:latest

MAINTAINER duanyiwen dyiwen@aliyun.com

ENV LANG en_US.utf8
USER root
RUN sed -i 's/dl-cdn.alpinelinux.org/mirror.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
	apk add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN apk del tzdata
USER zabbix
  • zabbix-nginx-web
FROM zabbix/zabbix-web-nginx-mysql:latest

MAINTAINER duanyiwen dyiwen@aliyun.com

ENV LANG en_US.utf8
USER root
RUN sed -i 's/dl-cdn.alpinelinux.org/mirror.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
	apk add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN apk del tzdata
USER zabbix

docker-compose

version: "2.3" #定义类型为 3
services:
  db:  #定义mysql服务
    restart: unless-stopped
    container_name: mysql5.7
    image: registry.cn-hangzhou.aliyuncs.com/dyiwen/mysql:5.7.25 # 声明镜像
    ports:
      - "3306:3306" #声明端口
    networks:
      - dbnet
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456 #定义mysql密码
      MYSQL_DATABASE: zabbix # 创建数据库
      MYSQL_USER: zabbix #定义用户
      MYSQL_PASSWORD: passwd #用户密码
    volumes:
      - ./data:/var/lib/mysql
      - ./etc/my.cnf:/etc/mysql/conf.d/mysqlutf8.cnf
    command:
      # - "--character-set-server=utf8mb4"
      - "--character-set-server=utf8"
      # - "--collation-server=utf8_unicode_ci"
      - "--collation-server=utf8_bin"
    logging:
      driver: json-file
      options:
        max-size: "20m"
        max-file: "1"

  zabbix-server:
    restart: unless-stopped
    container_name: zabbix-server
    image: registry.cn-hangzhou.aliyuncs.com/dyiwen/zabbix:4.4.2-server-mysql
    ports:
      - "10051:10051" #声明端口
    networks:
      - dbnet
    # external_links:
    #   - mysql5.7:db
    environment:
      TZ: Asia/Shanghai
      DB_SERVER_HOST: db #连接mysql
      DB_SERVER_PORT: 3306 # 连接端口
      MYSQL_DATABASE: zabbix 
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: passwd
    
    depends_on:
      - db
    
    logging:
      driver: json-file
      options:
        max-size: "20m"
        max-file: "1"

  zabbix-web:
    restart: unless-stopped
    container_name: zabbix-web
    image: registry.cn-hangzhou.aliyuncs.com/dyiwen/zabbix:4.4.2-web-nginx-mysql #镜像
    ports:
      - "80:8080" #声明端口
    networks:
      - dbnet
    # external_links:
    #   - mysql5.7:db
    depends_on:
      - db
    environment:
      TZ: Asia/Shanghai
      DB_SERVER_HOST: db #连接mysql
      DB_SERVER_PORT: 3306 # 连接端口
      MYSQL_DATABASE: zabbix 
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: passwd
      TZ: Asia/Shanghai #声明时区为亚洲/上海
      ZBX_SERVER_HOST: zabbix-server
    logging:
      driver: json-file
      options:
        max-size: "20m"
        max-file: "1"

networks:
  dbnet:
    # external:
    name: mysql_network

配置

  • mysql中文配置文件
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server=utf8_general_ci
character-set-server=utf8
init-connect='SET NAMES utf8'
  • agent配置
    如zabbix-server跑在容器内,agent在宿主机上,其需要配置zabbix-server容器的内网地址:
vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,192.168.0.4
ServerActive=127.0.0.1,192.168.0.4
Hostname=Zabbix server
# ListenPort=10050

#-------------------------------------
docker inspect zabbix-server | grep IPAddress
####################################################
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "192.168.0.4",
####################################################
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值