Zabbix简单的入门应用

Zabbix:
      是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,非常强大的一款工具。一般zabbix都是选择mysql作为存储数据,所以当zabbix监控的主机越来越多,数据量也会越来越大,这是mysql就会成为瓶颈。

zabbix的版本:

长期维护的版本有2.2和3.0,还有2.0和2.4

zabbix的功能:
          1、数据采集:    可以根据zabbix内置的key,也可以使用自定义的UserParameter

2、实时绘图:    展示采集的结果,由graph和screen

3、告警      :    超出定义的触发器的值就告警,可以通过邮件、短信、QQ、微信的方式通知

4、数据存储:    采集的数据存储在数据库中

5、支持使用模块:

6、网络自动发现: 只要在主机上定义好ip和端口,zabbix通过扫描机制自动添加监控

7、分布式监控:    可以通过代理收集区域内的主机采集信息,然后发送给zabbix,减缓zabbix的压力

zabbix程序的构成:

zabbix_server:服务端守护进程,监听的端口是10050

zabbix_agentd: agent端守护进程,监听的端口是10051

zabbix_proxy:  代理服务器,可选组件

zabbix_get:    命令行工具,手动测试数据采集;

zabbix_sender: 命令行工具,运行于agent端,手动向server端发送数据

zabbix_java_gateway: java网关,只用于监控jvm虚拟机的

一、安装zabbix,以3.0为例:

~]# yum -y install zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-get mariadb-server

编辑配置文件:/etc/zabbix/zabbix_server.conf:

   ListenPort=10051     //监听的端口
   SourceIP=            //服务端IP
   LogType=file         //日志格式,自我独立进行的格式(file)、system(系统记录)
   LogFile=/var/log/zabbix/zabbix_server.log   //日志文件
   LogFileSize=0|1      //日志是否需要滚动
   PidFile=/var/run/zabbix/zabbix_server.pid   
   DBHost=localhost     //数据库服务器地址
   DBName=zabbix        //数据库名称
   DBUser=zabbix        //登录数据库名称
   DBPassword=zabbix    //数据库密码
   DBSocket=/var/lib/mysql/mysql.sock   //指明数据库的sock路径

编辑zabbix-web文件:

vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai    //修改时区

编辑php.ini文件:

vim /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai         //修改时区

授权zabbix登录数据库,并创建zabbix存储的数据库:

> grant all on zabbix.* to ‘zabbix‘@‘localhost‘ identified by ‘zabbix‘;
> create database zabbix charset ‘utf8‘;

zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
~]# gzip -d create.sql.gz
~]# mysql -uzabbix -h127.0.0.1 -p zabbix <create.sql
Enter password:

启动zabbix,web服务:

]# service zabbix-server start
]# service httpd start

根据指示一步步填写信息,最后登录zabbix:

二:配置需要监控的主机:

 ~]# yum -y install zabbix-agent zabbix-sender

编辑配置文件:

~]# vim /etc/zabbix/zabbix_agentd.conf
LogFileSize=1               //日志是否需要滚动
EnableRemoteCommands=1      //是否允许远程命令执行
LogRemoteCommands=1         //记录远程命令的执行日志
Server=172.18.250.77    //被动模式下zabbix的地址,允许哪些zabbix-server来拉取数据
ListenPort=10050            //监听的端口
ListenIP=0.0.0.0            //监听的IP,表示监听任何主机发送的信息
StartAgents=3               //启用多少进程来采集数据
ServerActive=172.18.250.77     //主动模式下zabbix的地址,主机主动发送数据给zabbix-server
Hostname=zabbix.node1       //主机名

启动agent服务:

~]# service zabbix-agent start

三、配置监控主机状态

1、先创建一个host group组

2、创建hosts主机

3、创建监控项,监控目标主机上的80端口:

Store value:

As is: 数据不做任何处理

Delta(simple change):  本次采样数据减去前一次采集数据

Delta(speed per second):   本次采样数据减去前一次采样数据,而后除以采样间隔时长

这样基本上就能监控目标主机上的端口了。

4、定义触发器,只要检测到端口为0就发送警告,并发送告警邮件

可以点Monitoring的Dashboard,查看告警信息:

设置发送告警信息到邮箱:

1、先创建一个用户组和用户:

定义发送媒介:

定义zabbix用户给系统用户发邮件:

查看系统是否收到报警邮件:

~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 [email protected]  Fri May 20 19:37  23/1047  "PROBLEM: zabbix.node.port"
& 1
Message  1:

5、对于多个监控项可以整合到一个图形当中,比如监控网卡流量:

定义网卡的进口流量和出口流量,点击Hosts中的node1主机中的Graphs,创建图像

添加完后查看图形界面:

如果有多个主机监控了流量的话可以聚合在一个页面,方便查看:

四、配置模板,直接让主机套用模板,而不用一个个添加监控项:

模板可以直接用系统自带的,也可以自定义一个模板:

生成一个模板后,之后只要添加各种监控项,触发器,和应用集等,添加完后直接套用在主机上即可:

五、配置宏定义 (macro,预设的文本替换模式)

两种:

内置   {MACRO}  调用不需要加$

自定义 {$MACRO} 调用和定义都需要加$

级别:

全局

模板

主机

优先级:  主机 --> 模板 -->全局

定义端口全局宏:

定义一个模板宏:

定义一个主机宏:

直接修改node1的监听端口的值:

查看是否生效:

六:配置key

key也分内建和自定义,有时候系统没有的key只能自己定义,自定义的key是在agent端实现:

语法格式:

UserParameter=<key>,<command>

~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=menory.info,awk ‘/^MemFree/{print $2}‘ /proc/meminfo 
UserParameter=memory.usage[*],awk ‘/^$1/{print $$2}‘ /proc/meminfo    //传递参数

重启zabbix-agent服务:

~]# service zabbix-agent restart
~]# zabbix_get -s 172.18.250.75 -p 10050 -k "memory.info"    //在zabbix-server端测试
693772
~]# zabbix_get -s 172.18.250.75 -p 10050 -k "memory.usage[MemTotal]"
1012352

测试key能否在主机上应用:

七:配置zabbix的分布式监控:

当zabbix-server监控的主机太多时,每个item都需要server端去建立tcp连接,这时server会扛不住,所以可以根据布置分布式代理来建立item连接,然后收集数据,并一起发给server端。

~]# yum -y install zabbix-proxy-mysql mariadb-server

授权zabbix登录数据库,并创建proxy存储的数据库:

> grant all on proxy.* to ‘proxy‘@‘localhost‘ identified by ‘proxy‘;
> create database proy charset ‘utf8‘;

zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.2/
~]# gzip -d scheam.sql.gz
~]# mysql -uproxy -h127.0.0.1 -p proxy <create.sql
Enter password:

授权zabbix登录数据库,并创建zabbix存储的数据库:

> grant all on zabbix.* to ‘zabbix‘@‘localhost‘ identified by ‘zabbix‘;
> create database zabbix charset ‘utf8‘;

zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
~]# gzip -d create.sql.gz
~]# mysql -uzabbix -h127.0.0.1 -p zabbix <create.sql
Enter password:

编辑配置文件:

]# vim /etc/zabbix/zabbix_proxy.conf
Server=172.18.250.77             //指向server端
Hostname=proxy.zabbix
LogFileSize=1
DBName=proxy
DBUser=proxy
DBPassword=proxy
DBSocket=/var/lib/mysql/mysql.sock

编辑proxy管理区域内的agent主机:

]# vim /etc/zabbix/zabbix_agent.conf
LogFileSize=1               //日志是否需要滚动
EnableRemoteCommands=1      //是否允许远程命令执行
LogRemoteCommands=1         //记录远程命令的执行日志
Server=172.18.250.78    //被动模式下zabbix的地址,允许哪些zabbix-proxy来拉取数据
ListenPort=10050            //监听的端口
ListenIP=0.0.0.0            //监听的IP,表示监听任何主机发送的信息
StartAgents=3               //启用多少进程来采集数据
ServerActive=172.18.250.78     //主动模式下zabbix的地址,主机主动发送数据给zabbix-proxy
Hostname=node1.proxy

启动服务:

]# service zabbix-proxy start    //proxy服务
]# service zabbix-agent start    //监控的agent主机

创建代理主机:

创建监控的agent主机:

创建个监控项,看是否能正常监控:

如果还需要监控其他主机或者监控项,只需添加模板就行。

时间: 2024-10-07 16:55:36

Zabbix简单的入门应用的相关文章

开源TinyXML 最简单的入门教程

TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件. 该项目属于开源项目,在sourceforge上边的链接是:http://sourceforge.net/projects/tinyxml/ 当前最新版本是2.6.2 先看一下源码文档的结构: Docs是帮助文档,里边有非常多的使用说明,仅仅截一张图看一下: 具体根据需要再看 我们使用的是它的库,可以是静态的也可以是动态库,我就用静态库了,将这里边的几个头文件和源文件一起创建一个工

Android中关于JNI 的学习(零)简单的例子,简单地入门

Android中JNI的作用,就是让Java能够去调用由C/C++实现的代码,为了实现这个功能,需要用到Anrdoid提供的NDK工具包,在这里不讲如何配置了,好麻烦,配置了好久... 本质上,Java去调用C/C++的代码其实就是去调用C/C++提供的方法,所以,第一步,我们要创建一个类,并且定义一个Native方法,如下: JniTest类: public class JniTest { public native String getTestString(); } 可以看到,在这个方法的前

java htmlparser 简单使用入门

请尊重本人的工作成果,转载请留言,并说明转载地址,谢谢.地址如下: http://blog.csdn.net/fukainankai/article/details/27710883 前几节中,我们利用GDI+在窗口中绘制了各种各样的图形.图像,这一节,我们将会将这些图像保存成简单图像.所谓简单图像,指的是bmp/jpg/png等图像或者单帧的gif图像.保存成多帧的gif图像稍微复杂一点,本节中暂时不做说明.保存成动态的tiff文件也比较简单,但这里也不做说明,下次有机会和gif一起介绍. 另

Mybatis简单的入门之增删改查

一般的步骤如下 1.添加Mybatis所需要的包,和连接数据库所需的包 2.配置mybatis-config.xml文件 3.配置与pojo对应的映射文件 mybatis-config,xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:/

简单Python入门技巧

简单Python入门技巧 Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库.需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现. Python

git简单使用入门总结

之前老早就听说过git,但是一直就没怎么去了解,之前在公司里头都是用的svn版本控制工具,然后上个月换到了新公司之后,团队里使用的是git工具,然后就专门花了点时间去了解了一番,当然期间也确实碰到了不少问题,从入职到到今天应该有快一个半月了,然后下面就是我将这一个半月以来针对git的理解使用后整理出来的一个简单入门总结. 一.安装git 我的电脑是win7系统,然后从git官网下载msysgit安装包(http://msysgit.github.io/),安装流程和一般的windows软件的安装

zabbix简单检测

zabbix简单检测常用于远程无客户端(Agent-less)进行的检测,这个功能很好用,可以不需要安装zabbix agent 并进行一些简单的监控,zabbix使用外部程序fping来执行ICMP pings. 这个软件包不是zabbix发行版的一部分,必须另行安装.如果这个软件包没有安装,权限不正确或者路径跟zabbix server配置文件("FpingLocation"参数)中的设置不符,ICMP pings(icmpping, icmppingloss,icmppingse

Python简单爬虫入门二

接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们BeautifulSoup的基本结构如下 #!/usr/bin/env python # -*-coding:utf-8 -*- from bs4 import BeautifulSoup import requests headers = { 'User-Agent':'Mozilla/5.0 (Win

ZABBIX 监控 从入门到精通 视频教程

ZABBIX  监控 从入门到精通 视频教程, 相当不错的视频教程. 有需要的同学 请加QQ:1143815700 ,发个红包意思下就行哈.