文档章节

Zabbix对服务器资源进行监控及百度告警的整合

swingcoder
 swingcoder
发布于 2015/11/02 15:07
字数 1408
阅读 1623
收藏 5

Zabbix介绍

跟nagios一样是一款开源的服务器资源监控软件。达到企业级对万百上千台服务器、虚拟机、网络设备进行实时监控。

安装

安装环境:Centos 6.5,相关的下载地址在

1.yum安装方式
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-server-mysql zabbix-server zabbix-agent zabbix-web-mysql
#如果需要还可以安装zabbix-proxy
yum install zabbix-proxy-mysql zabbix-proxy
#再安装一些其它组件
wget http://fping.org/dist/fping-3.13.tar.gz
wget https://github.com/meduketto/iksemel/archive/master.zip && mv master.zip iksemel-master.zip
#有需要下载单独安装包的也可以从下面地址下载
http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/
安装介绍文档  
要注意选择相同的版本安装

2.手工下载包的安装方式
#查询依赖包 rpm -qpR zabbix-server-2.4.6-1.el6.x86_64.rpm
rpm -ivh zabbix-2.4.6-1.el6.x86_64.rpm zabbix-agent-2.4.6-1.el6.x86_64.rpm zabbix-web-mysql-2.4.6-1.el6.noarch.rpm  zabbix-web-2.4.6-1.el6.noarch.rpm zabbix-server-mysql-2.4.6-1.el6.x86_64.rpm zabbix-server-2.4.6-1.el6.x86_64.rpm zabbix-sender-2.4.6-1.el6.x86_64.rpm

#注意,安装时如果出现 要安装 database-implement的提示,表示你没有按上述一起同时安装的方法,最少需要
#rpm -ivh  zabbix-server-mysql-2.4.6-1.el6.x86_64.rpm zabbix-server-2.4.6-1.el6.x86_64.rpm

yum install OpenIPMI-libs net-snmp unixODBC python python-devel textinfo
#安装fping
tar xzvf fping-3.13.tar.gz && cd fping-3.13 && ./configure && make && make install
#安装iksemel
unzip iksemel-master.zip && cd iksemel-master && ./autogen.sh && ./configure && make && make install

#安装zabbix
rpm -ivh zabbix-2.4.6-1.el6.x86_64.rpm
3.安装结果,检查安装的各包及路径
rpm -qa|grep zabbix
zabbix-agent-2.4.6-1.el6.x86_64
zabbix-2.4.6-1.el6.x86_64
zabbix-server-mysql-2.4.6-1.el6.x86_64
zabbix-web-2.4.6-1.el6.noarch
zabbix-release-2.4-1.el6.noarch
zabbix-server-2.4.6-1.el6.x86_64
zabbix-web-mysql-2.4.6-1.el6.noarch
#查看配置文件
rpm -ql zabbix-2.4.6

相关从二进制安装的官方文档在

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

在需要收集信息的机器上安装agent,有多少台机器要监控就安装多少台

rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-agent

如果要下载预编译好的二进制包agent 可在这里下载 http://www.zabbix.com/download.php

配置服务端

初始化zabbix数据库

# mysql -uroot -p
>create database zabbix default charset 'utf-8';
>grant all on zabbix.* to zabbix@localhost identified by 'xxx';
# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create
# mysql -uzabbix -p zabbix < schema.sql
# mysql -uzabbix -p zabbix < images.sql
# mysql -uzabbix -p zabbix < data.sql
vi /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBName=zabbix
DBUser=zabbix
DBPassword=xxx
DBUser=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306

启动服务器

service zabbix-server start
#查看服务启动是否正常
tail -f /var/log/zabbix/zabbix_agentd.log

配置agent

vi /etc/zabbix/zabbix_agentd.conf
#注意配置成服务端的ip
Server=127.0.0.1
ListenPort=10050
#注意配置成服务端的ip
ServerActive=127.0.0.1
#注意名称要与服务端一致!
Hostname=[服务端的主机名]
UnsafeUserParameters=1
#如果是限制了zabbix访问数据库,最好以root权限运行
AllowRoot=1

启动agentd

service zabbix-agent start
#查看服务启动是否正常
tail -f /var/log/zabbix/zabbix_agentd.log

添加mysql的配置参数

mkdir /var/lib/zabbix
echo "[client]" >> /var/lib/zabbix/.my.cnf
echo "user=root" >> /var/lib/zabbix/.my.cnf
echo "password=xxx" >> /var/lib/zabbix/.my.cnf
#另外注意检查/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#是否为默认形式,特别是mysql.status[*]命令,最后的awk '{print $$2}'注意有两个$符号!!

配置web

我使用的是nginx+php-fpm+mysql

#vi /etc/nginx/conf.d/zabbix.conf 
server {
    listen       80;
    server_name YOUR_SERVER_NAME;
    root   /usr/share/zabbix;
    location / {
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_read_timeout 1300;
        }
}
#service nginx restart

注意zabbix web的数据库连续在2.4版本时是配置在

/etc/zabbix/web/zabbix.conf.php
#下面这个文件是辅助的配置,上面的文件没找到时使用
/usr/share/zabbix/conf/zabbix.conf.php


使用实践

使用浏览器访问 http://YOUR_SERVER_NAME/

更多自定义key相关的用法请参考官方网站

https://www.zabbix.com/documentation/2.4/manual/config/items/userparameters

添加自定义事件

#cat /etc/zabbix/zabbix_agentd.d/userparameter_zg.conf 
UserParameter=check_process_alive[*],ps aux|grep -v grep|grep $1|wc -l
#service zabbix-agent restart
#要过几分钟在管理网站才生效

在管理网站添加Item和trigger,如下图


trigger表达式语法说明 https://www.zabbix.com/documentation/3.0/manual/config/triggers/expression


与百度告警的整合

首页在百度告警注册帐号 http://gaojing.baidu.com/

详细的整合流程参考 http://help.gaojing.baidu.com/help/?p=345

注意几个细节:

1、下面这一步添加media type时,Name项要用英文名称,中文名称在zabbix上处理上可能有问题;

2、baidu_gaojing.sh 此文件在服务器上属主要是zabbix的运行用户,一般是zabbix,不能是root;

3、baidu_gaojing.sh 此文件会输入日志,注意日志目录对zabbix要可写;

整合完成后,在zabbix触发消息,百度告警后台可以查看得到通知,根据你在百度告警配置的升级策略,将会通过电话、短信、微信等方式通知相关人员。效果如下图:


总结

zabbix功能非常强大,监控规则也非常灵活,亦可以自定义监控程序扩展其功能,非常适应复杂多变的应用场景,其自身带了多套模板,如果服务器资源,mysql模板,网络带宽模板等等,已经足够应付大都场景了,还有更多更强大的功能有待自已去发现。

通过与百度告警服务的整合,可以实现免费的微信报警功能,方便实用!

参考

Zabbix Installation from packages

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

百度告警与zabbix的整合

http://help.gaojing.baidu.com/help/?p=345

<作者 朱淦 350050183@qq.com 2015.11.6>

© 著作权归作者所有

共有 人打赏支持
swingcoder
粉丝 33
博文 319
码字总数 72800
作品 0
广州
技术主管
私信 提问
开源还是商用?十大云运维监控工具横评

随着云计算和互联网的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务(如支付、登录、导航等),IT系统架构越来越复杂。快速迭代的产品需求和良好的用户体验,需要IT运维管理者...

oschina
2015/10/29
34.6K
14
开源还是商用?十大云运维监控工具测评告诉你答案

随着云计算和互联网的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务(如支付、登录、导航等),IT系统架构越来越复杂。本文对业内主流的开源运维监控系统和商业运维监控系统进...

tantexian
2016/07/18
97
0
ZABBIX实现原理及架构详解

zabbix是完全开源的工具,整合了cacti和nagios等特性。 zabbix功能很强大,如何理解zabbix的功能,我们可以和cacti、nagios的功能对比一下: cacti是一款数据采集,数据存储,外加web界面展示...

dengaosky
2017/09/09
0
0
Zabbix全方位告警接入-电话/微信/短信都支持

百度告警平台地址: http://gaojing.baidu.com 联系我们: 邮箱:gaojing@baidu.com 电话:13924600771 QQ群:183806029 对于使用zabbix的用户,要接入百度告警非常简单,只需要按以下四步骤...

百度告警
2016/01/13
3.2K
21
zabbix接入百度告警详细攻略

第一章:百度告警端配置 首先需要申请百度告警账号,使用以下链接注册百度告警账号: http://gaojing.baidu.com/#/register 输入邮箱后,点击验证注册码,所注册的邮箱会收到一封来自百度告警...

acail
2017/05/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
39分钟前
0
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
55分钟前
2
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部