您的位置:首页 > 运维架构 > Linux

zabbix

2016-07-05 20:53 489 查看


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
支持高度自定义监控,提供UserParameter及ZabbixTrapper等方式
告警(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(前端)
2001年First 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:允许访问Monitoring及Configuration,只能获取及配置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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux zabbix