Zabbix 监控配置及实战

Zabbix监控简介

  1. 概述 Zabbix 是一个高度集成的网络监控解决方案,可以提供 企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用。
  2. 工作模式 Zabbix 通过 C/S 模式采集数据。通过 B/S 模式在 web 端展示和配置。
  3. 监控原理 1.被监控端:主机通过安装agent方式进行采集本机的数据,网络设备通过SNMP协议方式采集数据 2.监控服务端:通过收集agent和SNMP所采集到的数据,并将数据写在数据库服务器里,最终通过php+apache(nginx)在web前端显示出来。
  4. Zabbix功能 1.具备常见的商业软件所具备的功能,例如:本机的私有数据(CPU,内存,硬盘使用情况),本机的公有数据(http服务,ftp服务,数据库服务等) 2.支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现) 3.支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本) 4.支持分布式,能集中展示、管理分布式的监控点 5.扩展性强,server 提供通用接口(api 功能)可以自己开发完善各类监控(根据相关接口编写程序实现) 6.编写插件容易,可以自定义监控项,报警级别的设置。 7.数据收集 8.具备实时将监控项绘图的功能

部署LNMP平台

之所以部署LNMP平台,是因为Zabbix服务是php脚本开发。并且需要将收集到的数据保存在数据库里,和将收集到的数据实时的展示在web前端上。因此,我们全部使用源码包构建LNMP平台。

  • 安装Nginx
[root@cc ~]# yum -y install openssl-devel pcre-devel gcc gcc-c++ make //安装依赖包 [root@cc ~]# useradd nginx  //创建进程属主 [root@cc ~]# tar -xf nginx-1.10.1.tar.gz  //解包    [root@cc ~]# cd nginx-1.10.1 [root@cc ~]# ./configure --user=nginx --prefix=/usr/local/nginx  --group=nginx --with-http_ssl_module    //配置 [root@cc ~]# make && make install    //编译和安装 [root@cc ~]# /usr/local/nginx/sbin/nginx  //启动服务 [root@cc ~]# echo "www.dcc.com" > /usr/local/nginx/html/index.html     //配置网站主页 [root@cc ~]# curl http://192.168.4.50  www.dcc.com 

  • 安装MySQL

[root@cc ~]# tar -xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz  //解包 [root@cc ~]# cd mysql-5.6.30-linux-glibc2.5-x86_64/ [root@cc ~]# useradd mysql [root@cc ~]# mv mysql-5.6.30-linux-glibc2.5-x86_64 /usr/local/mysql  [root@cc ~]# yum -y install perl-Data-Dumper.x86_64   //安装依赖包 [root@cc ~]# cd /usr/local/mysql/scripts [root@cc ~]# ./mysql_install_db --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data --user=mysql       //装包 [root@cc ~]# chown -R mysql:mysql /usr/local/mysql/  //赋予进程属主权限 [root@cc ~]# ln -s /usr/local/mysql/bin /usr/sbin [root@cc ~]# echo  "export  PATH=/usr/local/mysql/bin:$PATH" >>  /etc/profile [root@cc ~]# source /etc/profile [root@cc ~]# cd /usr/local/mysql/support-files/ [root@cc ~]# cp mysql.server /etc/init.d/mysql [root@cc ~]# chmod +x /etc/init.d/mysql [root@cc ~]# cp /usr/local/mysql/support-files/my.cnf.default  /etc/my.cnf [root@cc ~]# /etc/init.d/mysql start [root@cc ~]# mysql -uroot  create database zabbixdb;     //创建存放监控系统信息的数据库  grant all on zabbix.* to cc@'localhost' identified by '123456';  //授权登陆创建数据库的用户

  • 安装PHP

[root@cc ~]# yum -y install php-gd.x86_64 freetype* libjpeg-devel libxml2-devel libpng-devel [root@cc ~]# tar -xf php-5.6.22.tar.gz  [root@cc ~]# cd php-5.6.22 [root@cc ~]# ./configure --prefix=/usr/local/php5/ --enable-fpm --enable-mbstring --enable-bcmath --enable-sockets --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --with-gettext --with-jpeg-dir --with-freetype-dir     //配置 [root@cc ~]# make && make install       //编译和安装 [root@cc ~]# cp  php.ini-production /usr/local/php5/etc/php.ini [root@cc ~]# vim /usr/local/php5/etc/php.ini     //修改php.ini  date.timezone = Asia/Shanghai  max_execution_time = 300  post_max_size = 32M  max_input_time = 300  memory_limit = 128M  always_populate_raw_post_data = -1  [root@cc ~]# cd /usr/local/php5/etc/  [root@cc ~]# cp php-fpm.conf.default php-fpm.conf   //生成php-fpm主配置文件  [root@cc ~]# /etc/init.d/php-fpm start      //启动服务 

  • 安装Zabbix
[root@cc ~]# useradd zabbix                   //添加用户            [root@cc ~]# tar -xf zabbix-3.2.3.tar.gz     //解包 [root@cc ~]# cd zabbix-3.2.3/ [root@cc ~]#  ./configure  --prefix=/usr/local/zabbix   --enable-server  --enable-agent  --with-mysql=/usr/local/mysql/bin/mysql_config                             //配置 [root@cc ~]# make && make install             //编译和安装 [root@cc ~]# cp -r frontends/php/  /usr/local/nginx/html/zabbix  //生成监控服务器根目录 [root@cc ~]# cd database/mysql/ [root@cc ~]# mysql -ucc -p123456 zabbixdb < schema.sql   //导入监控服务器材存储监控数据的表 [root@cc ~]# mysql -ucc -p123456 zabbixdb < images.sql [root@cc ~]# mysql -ucc -p123456 zabbixdb < data.sql [root@cc ~]# chown -R nobody:nobody /usr/local/nginx/html/zabbix/ [root@cc ~]# http://192.168.4.100/zabbix/index.php    //客户端访问 

  • 登陆面板需要配置的信息,帐号默认admin,密码:zabbix

/usr/local/nginx/html/zabbix/conf/zabbix.conf.php
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbixdb';
$DB['USER'] = 'cc';
$DB['PASSWORD'] = '123456';
$ZBX_SERVER = '192.168.4.50';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbixo';

  • 客户端访问如下:
  1. 配置,启动监控服务
[root@cc ~]#  cd zabbix-3.2.3/misc/init.d/fedora/core/ [root@cc ~]# cp * /etc/init.d/ [root@cc ~]# chmod +x /etc/init.d/zabbix_* [root@cc ~]# vim /etc/init.d/zabbix_server      BASEDIR=/usr/local/zabbix [root@cc ~]# vim /etc/init.d/zabbix_agentd      BASEDIR=/usr/local/zabbix [root@cc ~]# vim /usr/local/zabbix/etc/zabbix_server.conf 87 DBName=zabbixdb      103 DBUser=cc      111 DBPassword=123456 [root@cc ~]# /etc/init.d/zabbix_server   start  [root@cc ~]#     netstat  -utnlap  | grep :10051 [root@cc ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf 91 Server=127.0.0.1 132 ServerActive=127.0.0.1:10051 [root@cc ~]# /etc/init.d/zabbix_agentd   start  [root@cc ~]# netstat  -utnlap  | grep :10050 

监控实战

  1. 使用已有模版监控本机(Host 是 Zabbix 监控的基本载体,所有的监控项都是基于 host 的。) 步骤如下: 1.通过 Configuration->Hosts->Create Host 来创建监控设备 如图:

2.按提示填入 Name、Groups、IP ,其他选项默认即可。在Link Templates 处选择一个模板。save 即可成功添加设备。

3.在 Configuration->Hosts 中会出现监控的主机。 4.重启监控服务端的服务/etc/init,d/zabbix_server restart 。查看ZBX是否加亮。加亮则可查看监控状态。 结果如图:

绘图界面如下:

  1. 监控远端主机并且自定义监控项目 ip:192.168.4.66 监控项:系统用户数 : wc -l /etc/passwd 1.安装zabbix——agentd包,启动服务

[root@cc ~]# tar -xf zabbix-3.2.1.tar.gz [root@cc ~]# cd zabbix-3.2.1 [root@cc ~]# yum -y install gcc gcc-c++ make [root@cc ~]# useradd zabbix [root@cc ~]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install [root@cc ~]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ [root@cc ~]# chmod +x /etc/init.d/zabbix_agentd  [root@cc ~]# vim /etc/zabbix/zabbix_agentd.conf    //修改配置      Server=127.0.0.1, 192.168.4.40      //更改服务器ip      ServerActive=192.168.4.40:10051    //更改监控服务器ip      UnsafeUserParameters=1        //去掉注释 [root@cc ~]# vim /etc/init.d/zabbix_agentd      //修改脚本zabbix根目录      BASEDIR=/usr/local/zabbix [root@cc ~]# /etc/init.d/zabbix_agentd restart    //启动客户端服务,端口为10050 

2 被监控主机创建自定义监控命令

自定义的key文件一般存储在/etc/zabbix/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,来读取该目录下的所有文件 。

[root@cc ~]# vim /etc/zabbix/zabbix_agentd.conf     Include=/etc/zabbix/zabbix_agentd.conf.d/  [root@cc ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d [root@cc ~]# vim get_users.conf      UserParameter=get_user,wc -l /etc/passwd | awk '{print $1}'  //获取4.66主机的用户数命令 [root@cc ~]# /etc/init.d/zabbix_agentd restart  [root@cc ~]# zabbix_get -s 127.0.0.1 -k get_user   //测试命令是否创建正确 

3.设置Zabbix监控控制台 1添加模版 通过Configuration-->Template-->Create template创建模板

2.创建应用 点击模板后面的Application链接 3.创建项目 选择Create items创建项目 4.给项目设置名称及对应的自定义key 5.将模板链接到被监控主机 6.如图:

  1. 启用报警功能 3.1.设置邮件信息及触发动作 创建Media:Administration-->Users找到Admin账户; 通过Add按钮创建新的Media; 创建Media时需要设置Media的类型,选择Email类型,则在Send to后填写接收报警邮件的收件人邮箱; Media创建完成后,继续设置该Media设置SMTP邮件服务器信息; 3.2.创建Action(动作) 通过Configuration-->Actions-->Create action创建动作 创建动作后,为发送邮件报警的行为设置报警邮件的标题、内容等信息 设置动作的触发条件 3.3.创建触发器 通过Configuration-->Templates找到之前创建的模板,点击模板后面的Triggers来创建触发器 3.4 配置触发器 监控项目选择之前创建的项目:count_line_passwd_item,触发器条件是账户数量大于N是触发动作,N的值设置为45; 触发器规则设置完成后,激活该触发器即可; 3.5测试效果 如图:监控4.66主机用户数绘图如下:

监控主页如图:

  1. 测试报警功能 [root@cc ~]# wc -l /etc/passwd 47 [root@cc ~]# su - zabbix [zabbix@cc ~]# mail 收取邮件的结果测试如下:

邮件内容如下: Message 8: From root@localhost.localdomain Fri May 19 20:43:53 2017 Return-Path: root@localhost.localdomain X-Original-To: zabbix@localhost Delivered-To: zabbix@localhost.localdomain From: root@localhost.localdomain To: zabbix@localhost.localdomain Date: Fri, 19 May 2017 20:43:53 +0800 Subject: more_users Content-Type: text/plain; charset="UTF-8" Status: RO The current users is more than your configure.&

Zabbix 监控总结

1.防火墙默认区域设置为trusted 2.selinux 设置为 disabled 3.源码安装包时指定进程的属主,属组。 4./usr/local/nginx/html/zabbix 目录必须使得nginx 的属主和属组具有访问权限,否则页面没有权限,显示403 forbidden 5.所有需要安装的依赖包必须安装。重点不要忘记 freetype 包。 6.创建自定义监控项时,必须修改zabbix_agentd.conf 来读取自定义的监控命令文件。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coder修行路

让你用sublime写出最完美的python代码--windows环境

 至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病 但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到...

5516
来自专栏AndroidTv

教你一步步发布一个开源库到 JCenter

这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而已,而是尽可能讲清楚,为什么需要有这个步骤,让大伙知其然的同时还知其所以然,那么掌握就会更深...

34414
来自专栏前端架构

Tomcat部署Web应用方法总结

静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。

742
来自专栏小狼的世界

Linux系统管理员应该知道的journalctl知识

通过--since和--until选项,可以过滤任意时间限制,显示指定条件之前、之后或之间的日志。

1086
来自专栏Danny的专栏

Navicat备份远程Oracle数据库到本地

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

712
来自专栏开源项目

免费个人博客搭建教程(详细-图文)--Hexo+OSChina

使用工具介绍 码云 Pages:码云 Pages 是一个免费的静态网页托管服务,您可以使用码云 Pages 托管博客、项目官网等静态网页。这样就不用购买服务器和...

42412
来自专栏bboysoul

ghost博客部署

ghost是基于nodejs构建的开源博客平台 网上有很多部署ghost博客的文章,包括ghost中文网,部署的方法很多,但是我觉得最方便的就是用ghost_...

732
来自专栏木子昭的博客

搬瓦工&极路由(ssh,scp最佳实战案例)

关于搬瓦工 ? 搬瓦工 最近往搬瓦工主机部署项目,而搬瓦工的默认登录端口号并非22号(我的是28208) 正确登录方式(以28208端口为例) ssh...

2986
来自专栏知识分享

11-开发板接入小五物联实现远程控制(Wi-Fi模块,远程升级自己的程序)

https://www.cnblogs.com/yangfengwu/p/9411134.html

421
来自专栏coding...

Jenkins + Android 自动化打包 发布到蒲公英写在前面准备工作新建任务签名配置一些报错

最先想到的方案当然就是跟iOS一样使用fastlane,查了下相关资料发现fastlane有点重iOS轻Android,于是放弃。找到代替方案,直接使用grad...

501

扫码关注云+社区