Zabbix5.2监控安装和配置

(需安装包,下面是官网下载的zabbix5.2rpm包)

#在/data/projects/下生成zabbix目录并将上面的rpm附件包传输到此目录
sudo mkdir -p /data/zabbix
sudo mv zabbix-agent-5.2.0-1.el7.x86_64.rpm /data/zabbix/
cd /data/zabbix
#cd /data/projects/zabbix
#rpm安装
sudo rpm -i zabbix-agent-5.2.0-1.el7.x86_64.rpm

#以上是离线RPM安装包步骤,用yum安装可参考以下
官网在线安装链接如下
https://www.zabbix.com/download?zabbix=5.2&os_distribution=centos&os_version=7&db=&ws=

#编辑conf文件配置,修改以下三行
sudo vim /etc/zabbix/zabbix_agentd.conf
Server=x.x.x.x    #被动模式,ZABBIX服务器IP地址
ServerActive=x.x.x.x    #主动模式,ZABBIX服务器IP地址
Hostname=x.x.x.x     #ZABBIX-agent本机主机名
#启动zabbix-agent
[root@agent ~]# sudo systemctl restart zabbix-agent
[root@agent ~]# sudo systemctl enable zabbix-agent
  • Win-zabbix_agent配置

链接下载windows版本的agent包

#解压到C盘并重命名为zabbix_agent
#修改C:\zabbix_agent\conf\zabbix_agentd.conf的配置信息
Server=x.x.x.x    #被动模式,ZABBIX服务器IP地址
ServerActive=x.x.x.x    #主动模式,ZABBIX服务器IP地址
Hostname=x.x.x.x     #ZABBIX-agent本机主机名
#安装命令
C:\zabbix_agent\bin\zabbix_agentd.exe -i -c C:\zabbix_agent\conf\zabbix_agentd.conf
#启动命令
C:\zabbix_agent\bin\zabbix_agentd.exe -s -c C:\zabbix_agent\conf\zabbix_agentd.conf
#下面为关闭命令,需要时再用
#C:\zabbix_agent\bin\zabbix_agentd.exe -x
#查看开机自启动
services.msc

Server端部署docker-compose.yml

此步骤需要提前安装docker及docker-compose,然后运行此docker-compos脚本.将以下脚本编辑成docker-compose.yml文件后,在此文件的同级目录运行docker-compose up -d命令启动zabbix-server.

version: '2'
services:
  mysql-zabbix:
    container_name: mysql-zabbix
    image: mysql:8.0
    environment:
         - "MYSQL_DATABASE=zabbix"
         - "MYSQL_USER=zabbix"
         - "MYSQL_PASSWORD=zabbixpassword"
         - "MYSQL_ROOT_PASSWORD=rootpassword"
    command: [
            '--character-set-server=utf8',
            '--collation-server=utf8_bin',
            '--default-authentication-plugin=mysql_native_password'
            ]
    volumes:
        - ./mysql/data:/var/lib/mysql
        - "/etc/localtime:/etc/localtime:ro"

  zabbix-java-gateway:
    container_name: zabbix-java-gateway
    image:  zabbix/zabbix-java-gateway:latest
    restart: always

  zabbix-server-mysql:
    container_name: zabbix-server-mysql
    image: zabbix/zabbix-server-mysql:latest 
    restart: always
    environment:
        - "DB_SERVER_HOST=mysql-zabbix"
        - "MYSQL_DATABASE=zabbix"
        - "MYSQL_USER=zabbix"
        - "MYSQL_PASSWORD=zabbixpassword"
        - "MYSQL_ROOT_PASSWORD=rootpassword"
        - "ZBX_JAVAGATEWAY=zabbix-java-gateway"
    ports:
        - 10051:10051
    links:
        - mysql-zabbix:mysql
        - zabbix-java-gateway:zabbix-java-gateway

  zabbix-web-nginx-mysql:
    container_name: zabbix-web-nginx-mysql
    image: zabbix/zabbix-web-nginx-mysql:latest
    restart: always
    environment:
        - "DB_SERVER_HOST=mysql-zabbix"
        - "MYSQL_DATABASE=zabbix"
        - "MYSQL_USER=zabbix"
        - "MYSQL_PASSWORD=zabbixpassword"
        - "MYSQL_ROOT_PASSWORD=rootpassword"
#       - "PHP_TZ=Asia/Shanghai"
    volumes:
        - "/etc/localtime:/etc/localtime:ro"
    ports:
        - 6380:8080
    links:
        - mysql-zabbix:mysql
        - zabbix-server-mysql:zabbix-server

基础配置

进入Web端首页

地址:ServerIP:6380

账号:Admin

密码:zabbix

图片

更改语言并update

图片

图片

  • 将模板链接到主机群组

(以后只要将主机添加到模板所链接的主机群组,就可以实现分组配置)

搜索自己想要链接的模板

图片

模板链接主机群组

图片

  • 添加主机

图片

填写主机ip端口信息

图片

给主机添加相应模板(以linux为例)

图片

  • 邮箱报警

图片

填写邮箱信息

腾讯企业邮箱参考文档)此步骤填写的是邮箱的发送方,通过腾讯企业邮箱提供的smtp服务为我们发送制定的邮箱内容。

图片

登录企业邮箱生成密码

图片

创建动作

图片

图片

图片

图片

恢复操作亦如上,以下为消息模板

主题:【项目名称】【故障】服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障
消息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}
事件ID:{EVENT.ID}
---------
主题:【项目名称】【恢复】 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
消息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:
事件ID:{EVENT.ID}

注意:上图添加用户群组或者用户的时候,需要给指定用户添加报警媒介并指定类型为之前添加的报警媒介类型
图片

图片

当出现异常,就会在邮箱收到类似截图

图片

  • 钉钉报警

新建钉钉群,添加机器人获取webhook

图片

图片

图片

图片

添加完成保存好以上的webhook

  • 编辑zabbix–server-mysql容器内/usr/lib/zabbix/alertscripts/dingding.py脚本
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
# Author: liusy
import requests
import json
import sys
# 告警群
url = '这里填写钉钉群的机器人webhook链接'
def send_msg(msg):
    program = {"msgtype": "text", "text": {"content": msg}, }
    headers = {'Content-Type': 'application/json'}
    try:
        f = requests.post(url, data=json.dumps(program), headers=headers)
    except Exception as e:
        return False
    return f.status_code
def main():
    msg = sys.argv[1]
    send_msg(msg)

if __name__ == '__main__':
    main()
  • 监控端口号
  • 添加监控项

图片

  • 添加触发器

图片

注意:当需要常更新的端口,在一两分钟内能正常恢复的情况下不报警,则可以更改表达式max(1m)为sum(2m)

  • 自定义监控
  • Grafana(Dashboard展示)

docker-compose.yml如下

version: '2'
services:
    grafana:
        image: grafana/grafana:latest
        container_name: grafana_3311
        restart: always
        volumes:
            - ./data/:/var/lib/grafana
        ports:
            - "3311:3000"

注意:service启动(数据挂载)之前,应先在grafana目录进行如下操作

mkdir data
chown 472:472 data/
docker-compose up -d

即可通过http://IP:3311进行服务的访问
初始账号:admin

初始密码:admin

添加alexanderzobnin-zabbix-app-4.0.1.zip插件到grafana的映射目录下(在官网下载,附录上传限制原因无法上传到此文档里)

cp alexanderzobnin-zabbix-app-4.0.1.zip data/plugins/
sudo unzip alexanderzobnin-zabbix-app-4.0.1.zip
docker-compose down
docker-compose up -d

启用zabbix插件

图片

添加数据源

图片

图片

图片

http://ip:6380/api_jsonrpc.php

之后就可以开始该数据源的dashboard打造了。详细dashboard要点过多,将在新的篇幅中介绍。

  • 问题集:
  • 1.zabbix-server的宿主机agent无法与server相连。

查/var/log/zabbix/zabbix_agentd.log日志发现:

failed to accept an incoming connection: connection from "172.19.0.4" rejected, allowed hosts: "192.168.1.16"

zabbixserver所在的docker网络172.19.0.4和本机的192.168.1.16不一致。
这是由于docker-compose创建的容器内服务访问宿主机,优先走的是docker为该容器创建的网卡,网卡ip不写在agent的配置文件里则该网卡发出的请求会被agent拒绝。

解决方案:客户端配置文件中Sever和ServerActive中加上“172.19.0.4”(用逗号作分隔)并重启客户端(实际上后来发现)图片

  • 2.Job for zabbix-agent.service failed. See ‘systemctl status zabbix-agent.service’ and ‘journalctl -xn’ for details.

解决方案:关闭SELINUX

setenforce 0
vim /etc/selinux/config 
#将 SELINUX=enforcing改为disabled 
SELINUX=disabled
  • 3.邮件告警提示COULDN’T RESOLVE HOST NAME

解决方案:是系统无法联网导致的dns服务器不可达。开放网络,检查网络配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值