此篇感谢我的小师傅。

1. Zabbix主要功能和优劣势说明

1. Zabbix主要功能和优劣势说明

1.1 Zabbix主要功能:

1)Application monitoring 应用监控

数据库/SSH/Apache/Nginx等应用程序的监控。

2)Server monitoring 服务器监控

CPU,内存,SWAP,磁盘空间,网卡流量的监控等,可以通过浏览器实时查看Grafana。

3)Network monitoring 网络设备监控

支持Cisco, Juniper, 3Com等网络设备,网络设备通过SNMP(SNMP (v1,v2,v3) devices)协议进行监控。

4)添加自定义监控,对于Zabbix无法满足的监控,可以添加自定义监控。

1.2 Zabbix 主要优势:

1)安装配置简单,支持多种语言,包括中文。

2)系统自带多种监控模板,可以直接使用,能够满足企业大多数需求。

3)支持分布式部署和WEB集中管理(通过WEB页面设置或查看报警结果)。

4)自动发现主机和网络设备(discovery of file systems,network interfaces,hosts and netwrok devices)。

5)WEB监控:可以监控WEB下载速度,返回码及响应时间。

6)提供实时和历史的监控分析数据,可自定义数据存储时长,方便调用可查看。

7)EMAIL报警,按照故障级别|服务器类型|业务类型发送EMAIL邮件到相关负责人。

8)数据可视化,以图形的方式展示出来,而不是一大堆代码。

9)报警后可自动在agent端运行一些命令,这些命令可以使获取运维人员需要的信息,也可以是自动修复,比如重启服务等----触发报警后可以远程执行命令。

1.3 Zabbix主要劣势:

1)需要在被监控机器上面安装agent。

2)All configuration information都存储在数据库里面,数据库是整个监控平台的瓶颈。

1.3.1 Zabbix部分名词的定义:

l Zabbix Server:Zabbix的控制中心,收集数据、写入数据库都是它的工作。

l Zabbix Agent:部署在被监控服务器上的一个进程,负责和Zabbix Server交互,执行命令。

l Host:广义上的服务器,大多数指代的是刀片机这类,在少部分时间会指代包括交换机在内的,被Zabbix监控的实体。

l Item:对于某一个指标的监控,对应的是Item,英文原意是“物品”。比如某台服务器的CPU负债就是一个Item。

l Trigger:一些逻辑规则的组合,他有三个值:正常、异常、未知。

l Action:当Trigger符合某个值的时候,Zabbix会进行的操作,比如最常见的发邮件。

2. Zabbix分布式部署需求分析

目前最新版本为3.2,以3.0为例说明:

官方推荐的软件配置:

Name

平台

CPU /内存

数据库

监控主机

小型规模

CentOS的

虚拟设备

MySQL的InnoDB引擎

100

中型规模

CentOS的

2个CPU核心/ 2GB

MySQL的InnoDB引擎

500

大型规模

红帽企业版Linux

4个CPU核心/ 8GB

RAID10的MySQL的InnoDB或PostgreSQL

> 1000

很大型

红帽企业版Linux

8个CPU内核/ 16GB

快速RAID10的MySQL的InnoDB或PostgreSQL

> 10000

Software

Version

Comments

MySQL

5.0.3 or later

Required if MySQL is used as Zabbix backend database. InnoDB engine is required.

3.1分布式部署拓扑图

补充说明:

当proxy部署为主动模式(Active)时,Zabbix Server的负载最小。

1)Server:负责把数据写入到数据库,然后通过Apache|Nginx +php在WEB前端显示。

2)Proxy:帮助server采集被监控端的数据,并把采集到的数据主动传送给Server,proxy只负责数据收集。

3)Database:所有的配置信息都存储在数据库里面,Zabbix server数据库和proxy数据库必须独立。

4)Agent:agent的作用就是获取host数据,然后将收集到的数据发送给server(主动模式),或者是server主动来拿取数据(被动模式)。

5)Email:通过Qmail|postfix的SMTP负责报警邮件的发送(故障邮件和故障恢复邮件)。

效果预览图:

3.2 Zabbix分布式安装部署:

安装服务端:

Server端

下载yum源

#cd /etc/yum.repos.d/

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

#yum clean all

#yum check-update

#yum install zabbix-server-mysql zabbix-web zabbix-agent  zabbix-web-mysql zabbix-sender zabbix-get  -y

对服务器端来说,如果自己不监控自己zabbix-agent和zabbix-sender可以不装

安装web GUI:

~]# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml

~]# yum install zabbix-web zabbix-web

安装数据库:

~]#yum install mariadb-server.x86_64

创建Zabbix使用的数据库

~]#mysql -uroot -p

MariaDB [(none)]>create database zabbix default charset utf8;

授权Zabbix连接的账号密码

MariaDB [(none)]> grant all on zabbix.* to USERNAME@'X.X.X.X' identified by 'PASSWORD'; (最大权限有点危险)

grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";

grant all on zabbix.* to zabbix@"%" identified by "zabbix";

MariaDB [(none)]> flush privileges;

Server端数据库初始化:

2.x版本:三个sql脚本;

3.x版本:一个sql脚本;

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/

~]# gzip  -d  create.sql.gz

~]# mysql –hx.x.x.x  -uUSERNAME -p PASSWORD < create.sql(如果有报错写成-h127.0.0.1)

zabbix server配置启动

配置文件:/etc/zabbix/zabbix_server.conf

配置段:

~]# grep "^#####" zabbix_server.conf

############ GENERAL PARAMETERS #################

############ ADVANCED PARAMETERS ################

####### LOADABLE MODULES #######

####### TLS-RELATED PARAMETERS #######

通用参数:

ListenPort=10051(无需修改,默认就行)

SourceIP=

LogType=file

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

DebugLevel=3

(以上默认都不需要改,按需求)

DBHost=localhost

DBName=zabbix(默认数据库名字就是zabbix,可以不改,看你的数据库名字)

DBUser=zabbix

DBPassword=zabbix

DBSocket=/tmp/mysql.sock(如果默认安装在同一台服务器此路径在/var/lib/mysql/mysql.sock下,就不会用到下面的3306端口了,基于127.0.0.1访问的)

DBPort=3306

启动:

~]#systemctl start zabbix-server.service

配置zabbix-web:

配置php的时区设定:

(1) /etc/php.ini (对全局都生效)

(2) /etc/httpd/conf.d/zabbix.conf(只对zabbix生效)

改为  php_value date.timezone Asia/Shanghai

systemctl restart httpd

Agent端

~]# yum install zabbix-agent zabbix-sender –y

配置文件:/etc/zabbix/zabbix_agentd.conf

############ GENERAL PARAMETERS #################

##### Passive checks related

被动监控相关配置,agent要等待server主动过来拉取数据;

##### Active checks related

主动监控相关配置,agent端主动向server周期性发送数据;

############ ADVANCED PARAMETERS #################

####### USER-DEFINED MONITORED PARAMETERS #######

用户自定义参数

####### LOADABLE MODULES #######

####### TLS-RELATED PARAMETERS #######

##### Passive checks related

Server=IP1, IP2, ...(指的是定义了允许哪些地址的主机过来获取数据,授权哪些服务器获取数据 )

ListenPort=10050

ListenIP=0.0.0.0

StartAgents=3(启动的agent进程数量)

##### Active checks related

ServerActive=IP1[:port], IP2[:port], ...(发送到哪台主机,即代理服务器或zabbix-server ip)

Hostname=Unique_HOSTNAME(用来向服务器端表明当前主机的识别名,至关重要)

必须与服务器配置的监控主机的主机名称保持一致;

启动服务:

systemctl start zabbix-agent.service

zabbix的web页面访问:

ip:80/zabbix

端口都不需要改,0代表默认。zabbix server detail里的Name也不需要填

用户名密码默认为:Admin / zabbix

-----------------------------------------------------------------------------------

zabbix 自定义脚本监控的实现:

1.监控oracle的进程数:

zabbix-agent端:

使用脚本获取oracle的进程数

vim /etc/zabbix/bash/oracle_session.sh(权限)

#!/bin/bash

source /home/oracle/.bash_profile#查询使用的数据库的账户/密码

sqlplus -s zibbix/密码 <<EOF

set heading off

set feedback off

set pagesize 0

set verify off

select count(*) from v\$session;

EOF

vim /etc/zabbix/zabbix_agentd.conf

UserParameter=oracle_session[*],sudo /bin/bash /etc/zabbix/bash/oracle_session.sh | /bin/sed  's/[[:space:]]*//g'

#因为取出的数据前边有空格,故sed去掉空格。

vim /etc/sudoers

# Defaults    requiretty

zabbix ALL=(ALL) NOPASSWD: ALL

重启服务:

service zabbix-agent restart

再配置web界面对应的监控项。见下有例子

在zabbix-server的命令行查看数据获取:

zabbix_get  -s agent端ip  -p 监听端口 -k  “监控项对应的key”

zabbix_get  -s  10.100.x.x  -p  10050  -k  "orabbix-sessions"

2.监控日志的交易平均返回时间(步骤同上):

脚本获取agent上日志中的交易平均返回时间

vim /etc/zabbix/bash/channel_ARTime.sh

#!/bin/bash

dir=$1

DAY=`date +'%d'`

TRC=/home/$1/trc/$DAY

FILE=`ls $TRC/$2`

tail -n 1000 $FILE | grep -a connector | tail -n 30 | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%d\n",sum/NR}'

vim /etc/zabbix/zabbix_agentd.conf

UserParameter=muniefsbart[*],sudo /bin/bash /etc/zabbix/bash/channel_ARTimeTime.sh $1 muniefsb_*.trc

UserParameter=tpospay1art[*],sudo /bin/bash /etc/zabbix/bash/channel_ARTime.sh $1 tpospay1_*.trc

UserParameter=tposmsg1art[*],sudo /bin/bash /etc/zabbix/bash/channel_ARTime.sh $1 tposmsg1_*.trc

UserParameter=tposfne1art[*],sudo /bin/bash /etc/zabbix/bash/channel_ARTime.sh $1 tposfne1_*.trc

#以上$1为zabbix-server 的web界面配置监控项的key[]括号中输入值(此处为用户)。 xxx.trc为不同服务对应的不同日志

zabbix的安装部署及自定义监控的实现的更多相关文章

  1. zabbix系列-Grafana4.6.3+Zabbix 的安装部署

    zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: ​ zabb ...

  2. 详解zabbix中文版安装部署

    一.zabbix简介(摘自百度百科) zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软 ...

  3. zabbix server 安装部署

    一:安装zabbix服务端 1.部署准备 命令:iptables -F     #关闭防火墙命令:systemctl stop firewalld    #关闭防火墙 设置解析,自建yum源 命令:c ...

  4. zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽

    一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...

  5. Ubuntu Server 安装部署 Cacti 服务器监控

    本文的英文版本链接是 http://xuri.me/2013/10/20/install-the-cacti-server-monitor-on-ubuntu-server.html Cacti是一套 ...

  6. shell脚本安装部署反向代理 监控进程 计划任务

    1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...

  7. Zabbix 3.4.11版本 自定义监控项

    一.实验思路过程 创建项目.触发器.图形,验证监控效果: Template OS Linux 模板基本涵盖了所有系统层面的监控,包括了我们最关注的 几项:ping.load.cpu 使用率.memor ...

  8. logstash结合zabbix报警安装部署

    cd /usr/share/logstash/ vim Gemfile source "https://ruby.taobao.org/" ##修改成国内镜像站 source &q ...

  9. 安装部署ELK系统监控Azure China的NSG和WAF Log

    ELK是一个开源的产品,其官网是:https://www.elastic.co/ ELK主要保护三个产品: Elasticsearch:是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展.高可 ...

随机推荐

  1. 【高精度&想法题】Count the Even Integers @ICPC2017HongKong/upcexam5563#Java

    时间限制: 1 Sec 内存限制: 128 MB Yang Hui's Triangle is defined as follow. In the first layer, there are two ...

  2. Deepin 15.4 个性化设置

    2017.10.03,开始使用 Deepin 15.4.1 桌面系统 Chrome 版本 60.0.3112.78(正式版本) (64 位) 1.开启 ls 别名: vim .bashrc 去掉以下代 ...

  3. linux 新建用户、用户组 以及为新用户分配权限(转)

    本文转自https://www.cnblogs.com/clicli/p/5943788.html 感谢作者 Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先 ...

  4. 专门为ADO二层升三层的咏南中间件(特种用途)

    专门为ADO二层升三层的咏南中间件(特种用途) 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmai ...

  5. Lazarus 初识

    Lazarus 使用 Free Pascal 的编译器,支持 Object Pascal 语言,与 Delphi 高度兼容,并看做后者的自由软件替代品. Lazarus 下载与安装 我们先去 Laza ...

  6. Android设置屏幕旋转后保存数据

    1.onCreate()方法中最后判断需要保存的状态值 if(savedInstanceState != null){ mCurrentIndex = savedInstanceState.getIn ...

  7. mysql多实例配置下,用脚本启动mysql时,出现Please read "Security" section of the manual to find out how to run mysqld as root!

    [root@localhost 3308]# mysqld stop170414 0:35:28 [Note] --secure-file-priv is set to NULL. Operation ...

  8. RSEG用法和汇编问号的涵义

    RSEG是段选择指令,要想明白它的意思就要了解段的意思.段是程序代码或数据对象的存储单位.程序代码放到代码段,数据对象放到数据段.段分两种,一是绝对段,一是再定位段.绝对段在汇编语言中指定,在用L51 ...

  9. Easyui中 alert 带回调函数的 消息框

    带回调函数的 消息框: $.messager.alert({ title:'消息', msg:'电话号码 只能是数字!', icon: 'info', width: 300, top:200 , // ...

  10. Vue2的独立构建与运行时构建的差别

    其实这个问题在你使用vue-cli构建项目的时候是不会出现的,因为你在创建项目的构建过程中已经让你勾选了,然后会写入webpack.config.js中. 这就在这,会让你选择Vue的构建方式. 如果 ...