设为首页 收藏本站
查看: 1144|回复: 0

[经验分享] 运维监控利器Zabbix-lyq314

[复制链接]

尚未签到

发表于 2019-1-18 13:19:22 | 显示全部楼层 |阅读模式
运维监控利器Zabbix
1 zabbix综述
1.1什么是zabbix
  zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
  zabbix由2部分构成,zabbix server与可选组件zabbix agent。
  zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
  zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,FreeBSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。
  zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
  另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
1.2 zabbix主要特点和功能

2 Zabbix的安装和配置
2.1 安装Zabbix
1.安装必要的软件和库
  安装mysql的头文件及库文件、net-snmp、curl、gcc、make
  1
  2
  3
  4
  5
  yum install mysql-devel.x86_64
  yum install net-snmp.x86_64  net-snmp-devel.x86_64 net-snmp-utils.x86_64
  yum install curl.x86_64 curl-devel.x86_64
  yum install gcc.x86_64 libgcc.i386  libgcc.x86_64
  yum install make
2.编译安装zabbix
  从zabbix的官网下载源代码,进行解压缩(略)
  编译安装zabbix,注意:连同agent一起编译
  1
  2
  #./configure -prefix=/app/zabbix  --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp  --with-libcurl
  创建zabbix用户
  1
  useradd -d /home/zabbix -p zabbix zabbix
  进入 zabbix 解压缩后的目录,创建 zabbix 数据库
  1
  4
  5
  6
  7
  8
  mysql -uroot -pXXXX
  create database zabbix;
  quit;
  cat create/schema/mysql.sql | mysql -uroot  -pXXXX zabbix
  cat create/data/data.sql | mysql -uroot  -pXXXX zabbix
  cat create/data/images_mysql.sql | mysql  -uroot -pXXXX zabbix
  修改/etc/services,加入以下行
  1
  2
  3
  7
  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 的配置文件
  创建配置文件目录,并将源代码中的配置文件模板拷贝到新创建的配置文件目录中。
  1
  2
  mkdir /etc/zabbix
  cp misc/conf/* /etc/zabbix
  根据自己的实际情况修改zabbix_server.conf、zabbix_agentd.conf、zabbix_agent、zabbix_trapper.conf,如数据库的用户名和密码等:
  1
  2
  DBUser=root
  DBPassword=XXXX
  由于 zabbix 使用 fping 替代了ping 作为 icmp 的工具,所以要安装 fping
  可以从 http://fping.sourceforge.net/ 上下载 fping 的源代码,解压编译安装。
  进入 fping 解压后的源代码目录
  1
  2
  ./configure
  make install
  修改/etc/zabbix/zabbix_server.conf
  1
  FpingLocation=/usr/local/sbin/fping
  拷贝zabbix服务器的frontendphp 程序到 http server 的主目录下
  1
  cp -r frontend/php/* /var/www/html
3.配置zabbix server
  启动进程
  1
  2
  /app/zabbix/sbin/zabbix_server
  /app/zabbix/sbin/zabbix_agentd
  注:客户端在部署时,除了zabbix的编译安装和创建zabbix用户之外、只要修改/etc/zabbix/zabbix_agentd.conf里对应的server相关信息即可,如下所示:
  1
  2
  3
  4
  #Server=127.0.0.1
  Server=XXX.XXX.XXX.XXX
  #Hostname=Zabbix server
  Hostname=XXX
  使用浏览器登陆到 zabbix server
  http:///index.php,会出现如下配置服务器界面

  一路 next 进入配置检查页面,会发现PHP max execution 和PHP Timezone 两项检查失败,如下:

  修改 /etc/php.ini ,修改以下两项后,重启httpd
  1
  2
  max_execution_time = 300
  date.timezone = Asia/shanghai
  然后在页面上点击 retry ,检查成功
  next 进入下一页面,检查 mysql 连接

  填写 mysql 连接参数,TestConnection ,成功
  一路 next,出现如下页面

  点击 save configuration file ,将文件上传至/var/www/html/conf/zabbix.conf.php,点击 retry ,即可成功。
  之后,一路 next ,进入登陆页面

  使用浏览器登陆到 zabbix server,别忘了修改C:\Windows\System32\drivers\etc下的hosts文件
  1
  XXX.XXX.XXX.XXX     XXXXXXXXXX
3 Zabbix相关监控设置
3.1 报警触发器设置
  当监控项中的触发器达到你设置的报警值之后,需要执行操作来发送邮件等动作。具体设置:
  1:打开zabbix的系统配置---操作---- 选择事件源为触发器------create action:

3.2 Zabbix中常用的key介绍
  Zabbix的key可以理解为zabbix的命令,执行这个key可以得到相应的结果。
  1:监控端口:net.tcp.port[3306]
  /usr/local/zabbix/bin/ -s[IP] -knet.tcp.port[3306] 返回1为此IP的端口3306存在,0为不存在
  2:监控进程:proc.num[mysqld]
  /usr/local/zabbix/bin/zabbix_get –s[IP] -kproc.num[mysqld] 返为此ip中mysqld的进程数量
  /usr/local/zabbix/bin/zabbix_get –s[IP] -kproc.num[] 返回值为此IP中所有的进程数量
  3:查看CPU核数:system.cpu.num 返回值为服务器CPU的核数
  4:查看系统的系统启动时间和当前时间:system.boottime、system.localtime返回值为系统启动时间和当前时间,为时间戳格式
  5:查看系统的简单信息:system.uname返回值为对应IP的系统信息,类似于linux系统的uname -a命令
  6:查看windowns系统当前网卡的进出流量:
  net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样
  /usr/local/zabbix/bin/zabbix_get –s[IP] -knet.if.in[IP,bytes] 返回值为该IP的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量;同理可得出口流量。
  7:查看系统内存大小:vm.memory.size[total],返回值单位bytes
  8:查看文件的大小: vfs.file.size[file]
  如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
  9:查看文件是否存在:vfs.file.exists[file]
  文件如果存在返回0,不存在返回1
  10:查看文件的MD5:vfs.file.md5sum[file]
  查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)
  11:自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可
  以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,我比较亲睐自定义key,写个脚本、或者在/etc/zabbix/zabbix_agentd.conf里写一段自定义key来返回,得到自己想要的监控结果。
  zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。要启用
  自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:
  UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
  free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言
3.3 创建监控模板和监控项
  其实在zabbix服务器端安装完成之后,就有许多自带的监控模板,基本上可以满足大众化的监控需求,不过其中有许多是没有必要的监控项或是自己不感兴趣的,比较冗余,所以要做好监控的话,还是自定义模板和监控项,这个监控模板可以修改zabbix系统自带的,也可以自己创建。以下为自己创建监控模板。
1.创建监控模板:
  打开zabbix的系统配置---模板----create template:
  填写模板名字和模板所在组保存即可。

2.创建监控项:
  打开zabbix的系统配置---模板---选择对应模板中的监控项---createitem:

3.创建监控项的触发器:
  打开zabbix的系统配置---模板---选择对应模板中的触发器---create trigger:

4.添加主机并应用模板
  添加主机有两种方法,一个是手动添加,一个是通过zabbix的自动发现来自动添加主机。
  1)手动添加主机
  做完以上的设置,添加主机就是很简单的事情了。打开zabbix的系统配置---主机—createhost:

  2)通过自动发现自动添加主机:
  打开zabbix的系统配置---自动发现—create discovery rule:

  添加完主机如下图,可用性为绿色是正常,红色为不可监控(主要是网络不通或是没有安装zabbix客户端),灰色为正在检测zabbix的状态:

2.4 FAQ/Q&A
  在CentOS系统中,安装zabbix进行configure时会遇到以下4个主要问题:
  1) configure error: MySQL library notfound,the problem is not installed mysql-devel
  #yum install mysql-devel
  2) configure error: Jabber library notfound, the problem is not installed jabber lib
  #wgethttp://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
  #tar zxvf iksemel-1.4.tar.gz
  #cd iksemel-1.4
  #configure
  #make
  #make install
  之后指定jabber目录,#./configure --with-jabber=/usr/local/XXXX……
  3) configure error: Not found curlLibrary
  #yum install curl-devel
  4) configure error : Not found NET-SNMPlibrary
  #yum install net-snmp-devel


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664848-1-1.html 上篇帖子: 图文超详解zabbix的安装以及设置邮件报警 下篇帖子: Zabbix 3.2 报警关联邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表