zabbix3.4.1使用教程

  • 一、 Zabbix概念
    • 1. Zabbix简介
    • 2. zabbix的主要特点
    • 3. Zabbix主要功能
    • 4. 各组件介绍
  • 二、 Zabbix的安装
    • 1. 网络配置
    • 2. 安装配置zabbix server(同时数据库)
    • 3. 安装zabbix web
    • 4. 安装配置zabbix agent
  • 三、 Zabbix使用
    • 1. 监控主机
    • 2. 监控磁盘空间
      • 监控项
      • 触发器
    • 3. 监控服务端口
      • 监控项
      • 触发器
    • 4. 监控服务器CPU
      • 监控项
      • 触发器
    • 5. 监控服务日志
      • 创建监控项(**自定义键值**)
      • 步骤
        • 1、zabbix_agent.conf配置文件中引入配置文件
        • 2、配置文件
        • 3、自定义脚本
        • wc命令:
        • 4、创建监控级别
        • 监控项
        • 触发器
    • 6. 实现发送邮件功能
      • 1. 安装邮件发送工具mailx
      • 2. 配置zabbix_service.conf文件,引入发送脚本
      • 3. 编写发送脚本
      • 4. zabbix-web页面配置
        • 1).新建媒介类型
        • 2).用户添加报警媒介
        • 3).配置中给触发器添加动作
        • 4).操作和恢复操作设置
        • 5).查看状态
  • 四、其他

一、 Zabbix概念

1. Zabbix简介

   zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix由zabbix server与可选组件zabbix agent两部门组成。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

2. zabbix的主要特点

- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能

3. Zabbix主要功能

 - CPU负荷- 内存使用- 磁盘使用- 网络状况- 端口监视- 日志监视

4. 各组件介绍

zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。
zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。
zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。
zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。
zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

二、 Zabbix的安装

1. 网络配置

连接centos 系统后,首先关闭防火墙和SELINUX,如不关闭会各种拦截,网页访问等故障,容易造成蛋疼哦.

# systemctl stop firewalld.service #关闭防火墙服务# systemctl disable firewalld.service #开机不启动# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #替换文本参数# grep SELINUX=disabled /etc/selinux/config #查文本状态# setenforce 0 #关闭当前SELINUX

备注:必须关闭selinux监控,否则zabbix服务端没有权限访问zabbix客户端文件。

2. 安装配置zabbix server(同时数据库)

 安装mysql数据库

# yum -y install mariadb mariadb-devel mariadb-server  # centos7下安装的是mariadb
# systemctl enable mariadb # 设置开机自启动
# systemctl start mariadb # 启动
# systemctl status mariadb # 查看状态

设置mysql的root密码

# mysqladmin -u root -h localhost password 'xxxxxxxx'

 创建数据库 zabbix 并授权

# mysql -uroot -pxxxxxx

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by ‘xxxxxxxx’;
quit

安装zabbix-server,因为mysql初始化数据的脚本通过安装zabbix-server下载的

 备份本地yum 源

# cp -r /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #

 下载3.4.1 rpm

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

 Zabbix-server
在3.X版本中,没有单独的zabbix-server安装包,安装了zabbix-server-mysql即为安装了server端包。
同时,我们可以在服务端安装zabbix_get包,以便向agent端发起测试。

# yum install zabbix-server-mysql zabbix-get

 导入zabbix初始化数据

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pxxxxxxxx Zabbix

 配置zabbix_server的配置文件

# vim /etc/zabbix/zabbix_server.conf37:LogFile=/var/log/zabbix/zabbix_server.log
48:LogFileSize=0
71:PidFile=/var/run/zabbix/zabbix_server.pid
81:SocketDir=/var/run/zabbix
90:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=123456
130:DBSocket=/var/lib/mysql/mysql.sock
138:DBPort=3306
328:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
445:Timeout=4
487:AlertScriptsPath=/usr/lib/zabbix/alertscripts
497:ExternalScripts=/usr/lib/zabbix/externalscripts
533:LogSlowQueries=3000

 启动zabbix-server

# systemctl start zabbix-server

 查看状态

# systemctl status zabbix-server

3. 安装zabbix web

 安装

# yum install zabbix-web-mysql

 编辑Zabbix前端的PHP配置
Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置,重点是调整时区的配置,修改为亚洲上海。

# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

 修改zabbix server访问端口:

  1. 编辑httpd.conf文件 :

    #vim /etc/httpd/conf/httpd.conf
    
  2. 修改默认的侦听端口和ServerName

    136 Listen 8383
    
  3. 重启apache服务,使配置生效:

    # service httpd restart
    
  4. 添加防火墙规则,允许端口访问 (前边防火墙关了,这里可以不用管)

    # vim /etc/sysconfig/iptables
    zabbix web -A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT
    重启防火墙:service iptables restart
    
  5. 浏览器访问http://IP:8383/zabbix 测试是否修改成功

 访问Zabbix Web页面,http://IP:8383/zabbix,默认的用户名/密码为 Admin/zabbix

确保PHP所有项目都OK,然后点击“Next step”

此处为连接mysql的配置,请按照前面安装时的配置填写,然后点击“Next step”

Name处可以填写网站的名称,然后点击“Next step”


根据提示可以看到下面图形界面的操作都写到一个配置文件中,/etc/zabbix/web/zabbix.conf.php,确认无误后,点击“Finish”

登陆zabbix前端,默认账号为 Admin,默认密码为zabbix

 配置zabbix中文界面
#修改PHP配置文件
确认zabbix是否开启了中文件支持功能,

# vim /usr/share/zabbix/include/locales.inc.php

浏览器登陆zabbix前端,设置语言为Chinese(zh_CN),然后点击“Update”,刷新页面就可以看到中文了。

4. 安装配置zabbix agent

安装zabbix-agent

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.4-2.el7.x86_64.rpm
# yum install -y zabbix-agent zabbix-get

配置zabbix-agent

# vim /etc/zabbix/zabbix_agentd.conf # 修改agent配置文件
Server=172.18.0.113 # zabbix服务端内网IP
ServerActive=172.18.0.113 # zabbix服务端内网IP,Active表示agent主动推送
Hostname=172.18.0.106 # zabbix客户端主机名称,需要和web端添加的名称一致,一般写自己ip
Include=/etc/zabbix/zabbix_agentd.d/*.conf

启动zabbix-agent

# systemctl start zabbix-agent

三、 Zabbix使用

1. 监控主机

Web端添加Linux主机
配置-主机-创建主机,按下图配置好后点击“更新”

2. 监控磁盘空间

监控项

配置-主机-监控项-创建监控项
名称随意,其他看图片,配置完点“更新“,键值:vfs.fs.size[/,pused]

触发器

配置磁盘使用超过80%的触发器,超过报警

定时触发器:
表达式
{192.168.0.111:net.tcp.port[,8000].last()}=0 and {192.168.0.111:net.tcp.port[,8000].time()}>=033000 and {192.168.0.111:net.tcp.port[,8000].time()}<=213000

监控8000端口使用情况,每天03:30~21:30期间触发器生效

3. 监控服务端口

监控项

以redis(port:6379)为例,键值:net.tcp.port[,6379]

触发器

键值:{172.18.0.106:net.tcp.port[,6379].last()}=0

4. 监控服务器CPU

监控项

键值:system.cpu.util[,idle]

触发器

超过85%报警,表达式:{172.18.0.113:system.cpu.util[,idle].avg(1m)}<15

5. 监控服务日志

创建监控项(自定义键值

思想
通过自定义键值,引入脚本,根据脚本实现服务的日志监控

步骤

1、zabbix_agent.conf配置文件中引入配置文件

vim /etc/zabbix/zabbix_agentd.conf   Include=/etc/zabbix/zabbix_agentd.d/*.conf

2、配置文件

cd /etc/zabbix/zabbix_agentd.d/userparameter_jvm.conf  userparameter_log.conf  userparameter_mysql.conf
配置文件内容UserParameter=test_log,/etc/zabbix/script/logs/log_usercenter-service.shUserParameter=usercenter_count,/etc/zabbix/script/logs/count_eq-usercenter-service.sh

3、自定义脚本

/etc/zabbix/script/logs/log_usercenter-service.sh#!/bin/bashsource /etc/zabbix/log.conflogdate=$(date "+%Y-%m-%d")msg=`tail -n "$row" /service1/usercenter-service1/logs/usercenter-service."$logdate"-*.log |grep -E "${logtype_02}"|grep -E "${logtype_01}"`#msg=`grep -E "${logtype_01}" /usr/service/usercenter-service/logs/usercenter-service."$logdate"-0.log `count=`echo "$msg" | wc -l`if [ ! -n "$msg" ];thenecho "OK"exit 0fiif [ $count -gt 0 ];thenecho "$msg"exit 1elseecho "OK"exit 0fi

监控日志中出现的error数量

/etc/zabbix/script/logs/count_eq-usercenter-service.sh#!/bin/bashsource /etc/zabbix/log.conflogdate=$(date "+%Y-%m-%d")msg=`tail -n "$row" /zyqservice1/eq-usercenter-service1/logs/eq-usercenter-service."$logdate"-*.log |grep -E "${logtype_02}"|grep -E "${logtype_01}"`#msg=`grep -E "${logtype_01}" /usr/zeqservice/eq-usercenter-service/logs/eq-usercenter-service."$logdate"-0.log `count=`echo "$msg" | wc -l`if [ ! -n "$msg" ];thenecho "0"exit 0fiif [ $count -gt 0 ];thenecho "$count"exit 1elseecho "OK"exit 0fi

注意:(给脚本设置权限)chmod 777 *.sh

wc命令:

wc -l : 统计行
wc -c: 统计字节数
wc -m:统计字符数,不能与-c同时使用
wc -w:统计字数
wc -L:打印最长长度

4、创建监控级别

vim /etc/zabbix/log.conflogtype_01=ERRORlogtype_02=Exceptionrow=10000脚本存放位置
/etc/zabbix/script/logs/

监控项

触发器

报错超过50个示警
表达式:{172.18.0.106:usercenter_count.last()}>50

查看监控结果

监控中 - 仪表盘
监控项达到触发器设置的提示点,会在仪表盘中显示错误信息,需要确认后信息才会消失。

监控中 - 最新数据
看数据

6. 实现发送邮件功能

1. 安装邮件发送工具mailx

yum install mailx # 安装
cp /etc/mail.rc /etc/mailrc.bak # 备份原来配置文件

vi /etc/mail.rc # 修改配置文件内容,添加发送邮件的邮箱信息set from=...@qq.com
set smtp=smtp.qq.com:25
set smtp-auth-user=...@qq.com
set smtp-auth-password=  # 邮箱密码使用SMTP授权码
set smtp-auth=login

systemctl restart postfix.service #重启服务

echo hello word | mail -s " title" …@qq.com # 接收的邮箱,测试一下

2. 配置zabbix_service.conf文件,引入发送脚本

/etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

3. 编写发送脚本

/usr/lib/zabbix/alertscripts/sendmail.sh

内容:

#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`subject=`echo $2 | tr '\r\n' '\n'`echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

4. zabbix-web页面配置

1).新建媒介类型

管理 – 报警媒介类型 – 创建媒体类型

脚本名称与引入的文件名称一直
新增三个脚本参数:

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

更新即可

2).用户添加报警媒介

管理 – 用户 – admin – 报警媒介 – 添加

添加报警媒介:

3).配置中给触发器添加动作

配置 – 动作 – 创建动作

动作页面:触发条件选择触发器,选择中选择你要选择的触发器,最后添加,更新


4).操作和恢复操作设置

标题:

警报:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息内容:

告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}

操作:如图
最后点击添加

5).查看状态

触发器触发时,仪表板上如下显示,动作下不为空,点击后可看mail发送状态

四、其他

官方文档:https://www.zabbix.com/documentation/

zabbix报错排错大全
https://www.cnblogs.com/dbslinux/p/9465803.html

日志文件: vi /var/log/zabbix/zabbix-agentd.log

1.系统提示zabbix共享内存报错
zabbix_agentd [5922]: cannot open log: cannot create semaphore set: [28] No space left on device

解决:
修改 vim /etc/sysctl.conf

kernel.sem =500  64000   64      256

sysctl -p /etc/sysctl.conf

后便能够正常启动了。(报错原因:kernel.sem参数设置过小 ,原先系统默认设置的为 250 32000 32 128)

2.数据库问题
浏览器打开zabbix页面报Error connecting to database: Access denied for user ‘zabbix’ @ ‘localhost’ to databas

/etc/zabbix/web/zabbix.conf.php

手写不易,有用请点赞!
有问题请留言!

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了相关推荐

  1. python详细安装教程-超详细Python与PyCharm安装教程,看这一篇就够了

    原标题:超详细Python与PyCharm安装教程,看这一篇就够了 学习了三天的python, 之前测试一直用课程自带的网页版玩玩, 为了学习 然后就下载了一个python和pycharm 现在分享下 ...

  2. windows系统 电脑系统重装详细教程(看这一篇就够了)

    windows系统 U盘制作 电脑系统重装详细教程(看这一篇就够了) 电脑装机教程 安装前准备 安装步骤如下 第一步:安装软碟通软件 第二步:下载windows系统镜像 第三步:打开软碟通软件 系统盘 ...

  3. 【wordpress】搭建wordpress看这一篇就够了。

    搭建wordpress看这一篇就够了 一.介绍 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一 ...

  4. 监控系统看这一篇就够了!zabbix、Prometheus等常见监控教程

    监控系统俗称「第三只眼」,几乎是我们每天都会打交道的系统,俗话说:无监控.不运维,监控系统的地位不言而喻. 先来认识下主流的开源监控系统,Zabbix.Open-Falcon.Prometheus等, ...

  5. 零基础学Linux运维,看这一篇就够了(含30G自学教程笔记)

    作为一个10年老运维,在开始这篇文章之前,先送给大家一句话: 干啥不好,非要做运维,听人劝,吃饱饭,趁年轻,换行吧! 好了,不开玩笑了,回到正文中来. 当谈到运维职业发展情况时,很多人都会说运维做不长 ...

  6. asp开发工具_VSCode搭建完美的asp.net core开发环境,看完这篇就够了

    引言 由于.net core的全面跨平台,我也在之前的一篇文章中介绍了如何在深度Deepin操作系统上安装并搭建.net core的开发环境,当时介绍的是安装.net core和使用Rider.net ...

  7. 黑客零基础入门教程,从入门到精通学习路线规划,看完这篇就够了。

    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样. 想要成为黑客,却苦于没有方向,不知道从何学起 ...

  8. RabbitMQ教程大全看这一篇就够了-java版本

    目录 什么是RabbitMQ? RabbitMQ 核心概念 Docker 安装 RabbitMQ RabbitMQ 控制台页面介绍 RabbitMQ 交换机 Exchange 介绍 Direct Ex ...

  9. 网络安全入门教程(超级详细)从零基础入门到精通,看这一篇就够了。

    前言 随着Web技术发展越来越成熟,而非Web服务越来越少的暴露在互联网上,现在互联网安全主要指的是Web安全. 为了自身不"裸奔"在大数据里,渐渐开始学习Web安全,在学习Web ...

最新文章

  1. Qt Creator移动平台
  2. 从HEVC到通用视频编码的下一代视频压缩技术
  3. C++万能头文件#include“bits/stdc++.h”
  4. QuerySyntax(查询语法)
  5. 几行代码搞定树形文本转XML和JSON
  6. stringstream字符串流的妙用
  7. TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
  8. java socket php_Web架构(二)PHP Socket与Java ServerSocket交互
  9. Ubuntu 意外死机 (Linux Crash/Hang)解决
  10. cfa英语不好的怎么学_考CFA,英语太差怎么办?
  11. 基于SRIO的FPGA与DSP间高速数据传输
  12. 【DB宝41】监控利器PMM的使用--监控MySQL、PG、MongoDB、ProxySQL等
  13. 短信工具类 SmsUtil
  14. python编译原理 书籍_如何想学点编译原理,又不想直接看龙虎之类的书籍,太多理论,干燥?...
  15. css 面包屑 30个字节,css3面包屑设计
  16. Uipath Try Catch 妙用
  17. itextpdf生成pdf,指定样式及文字水印
  18. 孝感市小学生机器人编程比赛_小学生获机器人大赛一等奖 编程是语文老师教的...
  19. MySQL系列----创建函数
  20. 学习如逆水行舟,不进则退

热门文章

  1. 《UNIX环境高级编程》笔记 第十九章-伪终端
  2. RAISERROR 的用法(转)
  3. 1、eclipse安装Axis2插件
  4. wifi密钥破解(WPA2/PSK)
  5. 闽高校计算机等级考试vb选择题,计算机等级考试二级VB程序设计选择题
  6. Android自定义view实现动态模拟时钟。
  7. 【音视频】直播CDN介绍
  8. DIY机械键盘过程照
  9. 推荐轻量级易用的3D建模软件Wings3D和Sculptris
  10. 【回眸】近期牛客网刷刷刷(二)C(++)字符串Linux专题