zabbix的安装部署及自定义监控的实现
此篇感谢我的小师傅。
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的安装部署及自定义监控的实现的更多相关文章
- zabbix系列-Grafana4.6.3+Zabbix 的安装部署
zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: zabb ...
- 详解zabbix中文版安装部署
一.zabbix简介(摘自百度百科) zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软 ...
- zabbix server 安装部署
一:安装zabbix服务端 1.部署准备 命令:iptables -F #关闭防火墙命令:systemctl stop firewalld #关闭防火墙 设置解析,自建yum源 命令:c ...
- zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽
一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...
- Ubuntu Server 安装部署 Cacti 服务器监控
本文的英文版本链接是 http://xuri.me/2013/10/20/install-the-cacti-server-monitor-on-ubuntu-server.html Cacti是一套 ...
- shell脚本安装部署反向代理 监控进程 计划任务
1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...
- Zabbix 3.4.11版本 自定义监控项
一.实验思路过程 创建项目.触发器.图形,验证监控效果: Template OS Linux 模板基本涵盖了所有系统层面的监控,包括了我们最关注的 几项:ping.load.cpu 使用率.memor ...
- logstash结合zabbix报警安装部署
cd /usr/share/logstash/ vim Gemfile source "https://ruby.taobao.org/" ##修改成国内镜像站 source &q ...
- 安装部署ELK系统监控Azure China的NSG和WAF Log
ELK是一个开源的产品,其官网是:https://www.elastic.co/ ELK主要保护三个产品: Elasticsearch:是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展.高可 ...
随机推荐
- Column 'u_id' in field list is ambiguous
- Spring Aop 修改目标方法参数和返回值
一.新建注解 @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Document ...
- Ubuntu安装最新版nodejs
今天在学习以太坊时,需要用到nodejs,因为使用的是ubuntu 16.04 LTS,一直安装的是老版本的nodejs,官方给方法用不成,折腾了半天,什么软链.手动编译,总觉得不很靠谱(linux水 ...
- ElasticSearch 评分排序
背景 通过脚本改变评分 背景 近期有一个需求,需要对优惠券可用商品列表加个排序,只针对面值类的券不包括折扣券. 需求是这样的,假设有一张面值券 50 块钱,可用商品列表 A 100.B 40.C 10 ...
- [Vuex] Perform Async Updates using Vuex Actions with TypeScript
Mutations perform synchronous modifications to the state, but when it comes to make an asynchronous ...
- 构建分布式Tensorflow模型系列:CVR预估之ESMM
https://zhuanlan.zhihu.com/p/42214716 本文是“基于Tensorflow高阶API构建大规模分布式深度学习模型系列”的第五篇,旨在通过一个完整的案例巩固一下前面几篇 ...
- CentOS安装Navicat
首先,下载文件navicat120_mysql_cs_x64.tar.gz,然后用命令 tar -zxvf 解压.解压以后,进入解压目录,运行start_navicat,就可以运行了. 运行以后,可能 ...
- CentOS 7.4nginx配置SSL
一.在/etc/nginx/conf.d目录下创建虚拟主机配置文件 server { listen 80; server_name www.xx.com xx.com; return 301 http ...
- BizTalk Map 累积连接字符串
更多内容请查看:BizTalk动手实验系列目录 BizTalk 开发系列 BizTalk 培训/项目开发/技术支持请联系:Email:cbcye ...
- 2018铁三测评题write以及一些想送给你们的话
一..前言 此文献给实验室的萌新们,以及刚刚接触CTF的同学们,希望能对你们的成长起到一些帮助. 二.关于CTF 可能你已经接触过CTF或者对它有所了解,这里我再简单介绍一下. 1.什么是CTF? C ...