码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix

时间:2016-07-05 22:40:31      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:linux   zabbix   

                            技术分享

01-zabbix简介

The Enterprise-class Monitoring Solutionfor Everyone

www.zabbix.com

SLA:Service-Level Agreement:服务等级协议

 

监控解决方案应该具有哪些功能?

数据采集(Datagathering)

         ZabbixAgent

                   Passive/Active方式,内置常用监控项,多平台支持

         SNMP

                   对路由/交换等设备提供SNMP支持

         IPMI

                   支持IPMI协议,常用于监控传感器(机箱温度,风扇转速等)

         JavaGateway

                   原生提供JavaGateway,支持JMX监控(Tomcat,Resin)

         Custom

                   支持高度自定义监控,提供UserParameterZabbixTrapper等方式

告警(Alerting)

         Trigger

                   Zabbix内置丰富的Triggerfunction,非常易于进行复杂的告警触发

         Action

                   故障发生后,可以通过灵活的Action规则进行告警及执行命令,并支持告警升级

         Event

                   故障发生及恢复,触发的Action均会记录,并支持ACK

         Maintenance

                   支持提前定义的维护, 可以配置维护时刻不采集数据或不发送告警

数据存储(Datastorage)

         多数据库支持

                   mysql,oracle,postgresql,sqlite,DB2

         数据存储方式

                   History详细的监控数据

                   Trend历史数据缩减机制,存储每小时的最小值,平均值,最大值

可视化(Visualisation)

         SimpleGraph

                   所有数值类型监控项,均可以直接通过simple graph查看

         Graph

                   可以灵活的将多监控项绘制在同一张图上,并且支持多种图形样式

         Screen

                   可以将多张图,文字等放在同一个screen中,便于集中大屏展示

         Map

                   可以创建更复杂NX的图形(拉全国IDC监控图),便于给BOSS展示

 

 

Enterprise-class

Discovery

         NetworkDiscovery

                   基于定义的规则扫描指定的IP范围,自动发现已有的网络设备

         AutoRegistration

                   允许activeagent进行自动注册

         LowLevel Discovery

                   自动创建Items,Triggers,Graphs

         DistributedMonitoring

                   分布式

         API

 

 

ZABBIX

开发公司:Zabbix SIA

开发语言:C(后端)+PHP(前端)

2001First GPLRelease(V0.1)

官方网站:http://www.zabbix.com

学习手册:http://www.zabbix.com/documentation.php

学习书籍《Mastering Zabbix》《Zabbix1.8 Network Monitoring

Zabbix企业级分布式监控系统》《Zabbix 监控系统深度实践》

 

 

 

02-zabbix server安装

环境:CentOS 6.6  2.6.32-504.el6.x86_64iptable关闭 Selinux关闭

Zabbix版本:2.4.7

Server ip: 192.168.50.93

agent ip: 192.168.50.246

 

目标:

  • 成功安装ZabbixServer

  • 成功安装ZabbixWeb

  • 了解Zabbix Web页面布局

 

 

yum install gcc gcc-c++autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perlmod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpcphp-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-develcurl-devel -y

 

service mysqld start

service httpd start

mysqladmin password rinimei

 

http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.6/zabbix-2.4.6.tar.gz

tar xf zabbix-2.4.6.tar.gz

cd zabbix-2.4.6

 

groupadd zabbix

useradd zabbix -gzabbix

 

mysql>createdatabase zabbix character set utf8;

mysql>grantall on zabbix.* to zabbix@localhost identified by "rinimei";

mysql>flushprivileges;

 

cdzabbix-2.4.7/database/mysql/

mysql -uzabbix-prinimei zabbix < schema.sql

mysql -uzabbix-prinimei zabbix < images.sql

mysql-uroot-prinimei zabbix < data.sql

 

cd zabbix-2.4.6

./configure \

--prefix=/usr/local/zabbix\

--enable-server \

--enable-agent \

--with-mysql \

--with-net-snmp \

--with-libcurl \

make &&make install

 

服务端口定义

vim /etc/services

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

 

修改zabbix server配置文件

vim/usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=rinimei

 

cpzabbix-2.4.6/misc/init.d/fedora/core/zabbix_server /etc/init.d

chmod +x/etc/init.d/zabbix_server

 

修改启动脚本

vim/etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix

CONFILE=$BASEDIR/etc/zabbix_server.conf

#搜索start,修改启动选项,默认是去/etc下面找配置文件

action$"Starting $BINARY_NAME:"$FULLPATH -c $CONFILE

servicezabbix_server start

 

03-zabbix server安装- Zabbix Web

cp -r frontents/php/var/www/html/zabbix

chown -R apache:root /var/www/html/zabbix

 

访问http://serverip/zabbix,通过页面安装zabbix web端有关date()的错误提示解决方法:

vim /etc/php.ini

data.timezone=Asia/Shanghai

 

post_max_size = 16M

max_excution_time = 300

max_input_time = 300

 

/var/www/html/zabbix/include

cd /usr/share/zabbix/include

vim locales.inc.php +58

/zh_CN

true

 

页面绘图中文显示方框

yum install wqy-microhei-fonts-y

 

cd /etc/alternatives/

ll zabbix-web-font

zabbix-web-font ->/usr/share/fonts/dejavu/DcjaVuSans.ttf

 

rm -f /etc/alternatives/zabbix-web-font

ln -s /usr/share/fonts/wqy-microhei/wqy-microhci.ttc/etc/alternatives/zabbix-web-font

 

 

cd /var/www/html/zabbix/fonts

cp/usr/share/fonts/wqy-microhei/wqy-microhei.ttc .

cp wqy-microhei.ttc.bak DejaVuSans.ttf

/usr/lib/zabbix/alertscripts/51com.sh

/usr/local/zabbix/share/zabbix/alertscripts

 

04-zabbix agent

目标:

  • 安装zabbixagent

  • 完成linux cpu监控

  • 学习使用模板

技术分享

 

wget http://www.zabbix.com/downloads/2.4.6/zabbix_agents_2.4.6.linux2_6.amd64.tar.gz

mkdir /usr/local/zabbix

tar xf zabbix_agents_2.4.6.linux2_6.amd64.tar.gz-C /usr/local/zabbix

 

cd /usr/local/zabbix/etc

vim zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log

Server=         #服务器IP

ServerActime=   #主动模式服务器IP

Hostname=         #设定主机名

 

下载的包里没有脚本,但在服务端zabbix源码包里有

scp misc/init.d/fedora/core/zabbix_agentdip:/etc/init.d

vim /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix

CONFILE=$BASEDIR/etc/zabbix_agentd.conf

action $"Starting $BINARY_NAME:"$FULLPATH -c $CONFILE

servicezabbix_agentd start                                                                                                

 

windows客户端下载:

http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip

zabbix_agentd.exe -c zabbix_agentd.conf –i

 

 

 

#

Yum install zabbix

Yum install zabbix-agent-2.4.6-1.el6.x86_64.rpm

 

chkconfig --add zabbix-agent

chkconfig --level 3 zabbix-agent on

 

 

05-zabbix key&自定义key

 

./zabbix_get -s ip -k net.tcp.service[ssh]

key

net.tcp.service[service,<ip>,<port>]

agent.hostname 返回agent定义的hostname

agent.ping                 检测agent能否ping通,能返回1,不能返回0

agent.version    返回agent版本

net.tcp.listen[port] 检测是否监听端口

net.tcp.port[<ip>,<port>] 检测是否监听端口

net.tcp.service[service,<ip>,<port>]检测是否启动该服务

net.tcp.service.perf[service,<ip>,<port>]检测该服务性能

net.udp.listen[port]检测是否监听该端口UDP

proc.num[<name>,<user>,<state>,<cmdline>]返回进程数量

 

技术分享 技术分享

技术分享 技术分享 技术分享

技术分享 技术分享

技术分享

 

 技术分享

 

技术分享

技术分享

 

自定义key

a.编辑agent配置文件zabbix_agentd.conf

UserParameter=TestMysql,mysql -uzabbix-prinimei -e ‘show status‘ &>/dev/null && echo 1

b.重启zabbix_agentd

service zabbix_angetd restart

c.测试该key

./zabbix_get -s ip -k TestMysql

 

 

nginx需要监控哪些内容?

可用性

进程是否存在?

端口是否监听?

服务是否正常?

性能指标

当前连接数?

每秒钟处理多少连接?

每秒钟处理多少请求?

当前读写连接有多少?

 

zabbix_get -s 10.0.0.8 -k proc.num[nginx]

 

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,80]

 

 

技术分享

 

wgethttp://raw.githubusercontent.com/pengyao/zabbix-1/master/scripts/zabbix_nginx_check.sh

 

./zabbix_nginx_check.sh active_connections

 

cd zabbix_agentd

vim nginx.conf

UserParameter=custom.nginx.status[*],/etc/zabbix/scripts/zabbix_nginx_check.sh$1

 

 

nginx进程数

zabbix_get -s 10.0.0.8 -k proc.num[nginx]

proc.num[nginx]

 

nginx服务状态

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,]

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,80]

net.tcp.service[http,,80]

 

nginx当前连接数

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[active_connections]

custom.nginx.status[active_connections]

 

nginx每秒处理的连接数

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[handled_connections]

custom.nginx.status[handled_connections]

store value Delta(speed per second)

 

nginx每秒处理的请求数

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[handled_requests]

custom.nginx.status[handled_requests]

store value Delta(speed per second)

 

 

触发器

                             

avg平均值

{ip:vm.memory.size[pused].avg(60)}>80       #60s内平均值大于80

last最后收到的值

{ip:vm.memory.size[pused].last(0)}>90        #最后收到的值大于90

{ip:vm.memory.size[pused].last(#6)}>90      #最后收到的第6个值大于90

{ip:vm.memory.size[pused].last(0,60)}>90    #60s前收到的值大于90

nodata没有收到数据

{ip:vm.memory.size[pused].nodata(60)}=1    #60s内没收到值为真

sum求和

{ip:vm.memory.size[pused].sum(60)}>100    #60s内收到的值的和大于100为真

{ip:vm.memory.size[pused].sum(#4)}>100    #最后4个值大于100为真

min最小值

{ip:vm.memory.size[pused].min(300)}>100k  #5分钟内流入流量最小大于100K为真

count计数

{ip:vm.memory.size[pused].count(1800,0)>5  #三分钟内收到0的数量大于5为真

06-zabbix Maintenance&用户控制

目标:

了解Maintenance应用场景及用法

熟悉Zabbix Web用户权限控制

 

Maintenance

用于满足预知的维护计划,不再发送告警的需求

当前Maintenance作用于Host/Group,不能作用于Trigger

 

zabbix web用户权限控制

用户类型:

Zabbix User:允许访问Monitoring,只能读取Usergroup中指定的主机状态信息

Zabbix Admin:允许访问MonitoringConfiguration,只能获取及配置User中制定的主机

Zabbix Super Admin:能够访问配置一切

 

限制访问制定的Group状态:User Group Only

 

 

07-zabbix 分布式部署

目标:

了解Zabbix Proxy适用场景

部署并配置Zabbix分布式监控

 

技术分享

 

Zabbix Proxy常用于:

Zabbix无法直接连接对应的节点或远程中心Server网络不可靠时完成远程监控

当监控大量设备时,使用Proxy可以降低Server负载

构建易于维护的分布式监控

 

安装zabbix proxy

yum install zabbix-proxy zabbix-proxy-mysql-y

yum install mysql-server -y

vim /etc/my.cnf

default-character-set= utf8                                                                                            

mysql>create database zabbix_proxy;

mysql>grant all on zabbix_proxy.* tozabbix_proxy@localhost identified by "zabbix_proxy";

mysql -uzabbix_proxy -hlocalhost-pzabbix_proxy zabbix_proxy </usr/share/doc/zabbix-proxy-mysql-2.2.9/create/schema.sql

 

 

vim /etc/zabbix/zabbix_proxy.conf

Server=

Hostname=

DBName=

DBUser=

DBPassword=

 

service zabbix-proxy restart

more /var/log/zabbix/zabbix_proxy.log

 

Administration-DM-create proxy

 

 

 

 


本文出自 “龚小逸” 博客,请务必保留此出处http://gongxiaoyi.blog.51cto.com/7325139/1796084

zabbix

标签:linux   zabbix   

原文地址:http://gongxiaoyi.blog.51cto.com/7325139/1796084

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!