Zabbix简单的入门应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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主机:

技术分享

技术分享

技术分享

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

技术分享

技术分享

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

以上是关于Zabbix简单的入门应用的主要内容,如果未能解决你的问题,请参考以下文章

30分钟zabbix入门——最简单有效的zabbix快速学习法

Zabbix从入门到应用

各位大神,我想问一下zabbix监控,主要用到了啥技术,求解答,在线等急,谢谢各位

五子棋游戏(简单易懂,入门都能学)

推荐net开发cad入门阅读代码片段

Linux老司机带你学Zabbix从入门到精通(万字长文)