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

[经验分享] zabbix 从0开始学习的步骤

[复制链接]

尚未签到

发表于 2019-1-18 08:03:16 | 显示全部楼层 |阅读模式
  注明:以下学习过程参考了很多文档,如有问题,请留言联系!谢谢
  

  一、系统版本
  CentOS-6.5-x86_64
  

  二、环境
  1、主机名
  1.1 hostname
  1.2 vim /etc/sysconfig/network
  HOSTNAME=
  
  2、网卡
  vim /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=static
  IPADDR=192.168.2.35
  

  3、selinux
  vim /etc/selinux/config
  SELINUX=disabled
  setenforce 0#使配置立即生效
  

  4、时间同步
  ntpdate 0.pool.ntp.org
  
  方法二
  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  vi /etc/ntp/step-tickers
  加入一行:
  pool.ntp.org
  service ntpd start
  
  5、防火墙
  iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  iptables -I INPUT -p tcp --dport 21 -j ACCEPT
  iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
  service iptables save
  或:service iptables  stop 关闭防火墙
  

  二、LAMP环境
  yum  -y groupinstall  "Development Tools"
  
  1、安装Apache
  yum install -y httpd
  vim /etc/httpd/conf/httpd.conf
  ServerName www.domain.com:80去掉注释并把域名改成localhost或本机地址
  service httpd start
  chkconfig httpd on
  

  2、安装PHP与关联
  yum -y install php php-gd php-xml php-bcmath  php-mbstring php-mysql
  

  3、安装Mysql
  yum -y install mysql mysql-server mysql-devel
  service mysqld start
  chkconfig mysqld on
  mysqladmin -u root password '123456'         创建数据库登陆账户和密码
  查看数据库:show databases;
  查看库中的表:show tables FROM zabbix
  

  4、测试
  vim /var/www/html/index.php
  
  

  三、安装zabbix
  1、安装依赖软件包
  yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc libxml2*
  
  2、下载zabbix(可供选择的下载地址)
  http://www.zabbix.com/download.php
  http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/http://jaist.dl.sourceforge.net/project/zabbix/
  

  3、下载,解压zabbix (在官网选择要安装的版本)
  2.4
  wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.0/zabbix-2.4.0.tar.gz
  2.48(汉化)
  http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz
  2.2
  wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz
  
  tar xf zabbix
  cd zabbix
  4、编译
  ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2
  

  注1://--prefix指定zabbix安装目录,--enable-server 支持zabbix服务器,--enable-agent支持zabbix代理,--enable-proxy 支持zabbix代理服务器,--with-mysql 使用MySQL客户端库可以选择指定路径mysql_config,--with-net-snmp 使用net - snmp软件包,择性地指定路径NET- SNMP配置,--with-libcurl 使用curl包
  

  注2:
  报错:error: MySQL library not found
  安装:yum install mariadb-devel
  报错:error: LIBXML2 library not found,
  安装:yum install -y libxml2*
  报错:error: Invalid Net-SNMP directory
  安装:yum install -y net-snmp-devel
  
  5、安装执行
  make&&make install
  

  6、 进入zabbix目录创建用户
  groupadd zabbix                                 创建用户组zabbix
  useradd -g zabbix -m zabbix                    创建用户zabbix属于zabbix组
  chown -R zabbix.zabbix /usr/local/zabbix   改变zabbix安装目录的拥有者和组群
  

  7、创建数据库
  mysql -u root -p
  mysql> create database zabbix character set utf8;
  mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
  授权:本机能访问mysql,root用户下授权
  mysql> flush privileges;    ##刷新系统授权
  mysql>quit;
  

  8、导入数据库
  在解压后的zabbix目录中执行
  mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql
  mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
  mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
  
  10、服务器端配置文件
  vim /usr/local/zabbix/etc/zabbix_server.conf
  DBName=zabbix        数据库名
  DBUser=zabbix        数据库登陆账户
  DBPassword=zabbix    数据登陆密码
  
  11、配置PHP
  vi /etc/php.ini
  max_input_time = 600
  # sed -i 's/max_input_time = 60/max_input_time = 600/g' php.ini
  max_execution_time = 300
  # sed -i 's/max_execution_time = 30/max_execution_time = 300/g' php.ini
  date.timezone = Asia/Shanghai
  post_max_size = 16M
  # sed -i 's/post_max_size = 8M/post_max_size = 16M/g' php.ini
  memory_limit = 128M
  
  service httpd restart
  
  12、启动设置
  1、修改启动参数
  修改启动脚本中的路径/usr/local改成/usr/local/zabbix
  cp misc/init.d/fedora/core/* /etc/init.d/
  sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
  sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
  
  2、启动进程
  echo "/etc/init.d/zabbix_server start" >> /etc/rc.local
  echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local
  /etc/init.d/zabbix_server start
  /etc/init.d/zabbix_agentd start
  ps -ef | grep zabbix   查看进程
  
  3、开放端口
  iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT
  iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT
  service iptables save
  查看端口
  netstat -npl|grep 10050
  netstat -npl|grep 10051
  

  四、页面初始化
  cd zabbix-2.2.5
  cp -R frontends/php/ /var/www/html/zabbix
  打开:
  http://192.168.2.35/zabbix/
  

  

  五、客户机端安装配置
  1、主机名
  1.1 hostname
  1.2 vim /etc/sysconfig/network
  HOSTNAME=
  
  2、依赖环境
  yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc
  
  3、下载与服务器端同版本,步骤相似
  编译:
  ./configure --prefix=/usr/local/zabbix --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
  
  4.1、客户端配置文件
  vim /usr/local/zabbix/etc/zabbix_agentd.conf
  Server=#修改为zabbix服务器端IP
  ServerActive=#修改为zabbix服务器端IP
  Hostname=Zabbix server
  UnsafeUserParameters=1 #启用自定义key
  
  5、防火墙,端口
  iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT
  iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT
  service iptables save
  或:service iptables stop
  
  6、进入zabbix目录创建用户
  groupadd zabbix                                 创建用户组zabbix
  useradd -g zabbix -m zabbix                     创建用户zabbix属于zabbix组
  chown -R zabbix.zabbix /usr/local/zabbix   改变zabbix安装目录的拥有者和组群
  
  7、启动设置
  1、修改启动参数
  修改启动脚本中的路径/usr/local改成/usr/local/zabbix
  cp misc/init.d/fedora/core/* /etc/init.d/
  sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
  
  2、启动进程
  echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local
  /etc/init.d/zabbix_agentd start
  ps -ef | grep zabbix   查看进程
  
  3、开放端口
  iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT
  iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT
  service iptables save
  查看端口
  netstat -npl|grep 10050
  netstat -npl|grep 10051
  
  8、测试与主机的链接(在zabbix-service端)
  /usr/local/zabbix/bin/zabbix_get -s 192.168.190.2 -p 10050 -k "system.uptime"
  注:192.168.190.2 指agentd端IP
  #有数据显示说明通信正常
  
  9、服务重启(如不能正常重启,则使用以下方法)
  查看进程
  ps ax|grep zabbix_agentd
  关闭进程
  ps ax|grep zabbix_agentd|grep -v grep |awk '{print $1}'|xargs kill -9
  启动服务
  /etc/init.d/zabbix_agentd restart
  

  六、控制台使用
  
  1、添加主机(主机组一样的创建方法)
  configuration(配置)---> Hosts(主机)---> Create host(创建主机)
  1.1Host选项
  host name主机IP
  visible name (显示的名字)
  Groups(组)
  New host group (新建组)
  Agent interfaces
  IP address被监控端IP
  
  1.2链接模板
  configuration ---> hosts ---> Name前选择要链接的服务器 ---> 左下角(下拉菜单)选择mass update(go) ---> 模板 ---> 选择模板“Template OS liunx”
  
  2、用户
  创建新登录用户
  管理 ---> 用户 ---> 右上下拉菜单处选择‘用户’ ---> 右上‘创建用户’ ---> 组群(添加超级超级管理员组) --->  添加媒介(比如邮件) ---> 许可权 ---> 保存
  
  注:许可权 指:权限,当前用户对哪些主机有权限,选择”超级管理员“。
  
  3、图表数据
  Monitoring ---> Graphs ---> group / host / Graph
  
  4、item(监控项)
  configuration(配置)---> Hosts(主机)---> (主机) ---> (item) ---> Create item
  重点:key
  Nameitem的名字
  Typeitem类型,采集数据的方式
  keyitem的标识符(标记item的键),唯一,可接受参数
  Type of information采集的数据类型
  Flexible intervals采集数据间隔数据
  New flexible interval   添加采集数据间隔数据
  applicationitem组
  
  5、创建图像
  5.1Graphs
  Configuration  ---> Hosts ---> Graphs ---> Create Graphs
  Name图像名
  Graph type图像类型
  items (add)添加需要加进来的item(监控项)
  
  5.2 Screen
  configuration(配置)---> Screen ---> Create Screen
  
  6、Triggers(触发器)
  6.1表达格式:{:.()}
  server 主机名
  key 主机上关系,相应监控项(item)的key
  function 评估采集到的数据是否在河里范围内时所使用的函数
  parameter函数参数
  举例:
  {192.168.0.104:system.cpu.load[all,avg1].last(0)}>3
  说明:
  主机192.168.0.104上所有CPU的过去1分钟内的平均负载的最后一次取值大于3时将触发状态变换
  
  6.2创建triggers(触发器)
  configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers
  6.2.1Triggers(触发器)
  configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers
  Name (Triggers名)
  Expression(定义条件)
  Severity触发级别
  
  7、action (动作,操作)
  (宏参考文档:https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location)
  7.1定义媒介
  Administration ---> Media types ---> Create media type
  Name:媒介名字(自定义)
  Type:(媒介类型)
  
  7.2 接收人配置
  Administration ---> Users ---> (用户)---> Media ---> add:
  Type: (选择上一步自定义的媒介名)
  send to:(收件邮箱)
  ---> add ---> save
  

  7.3设置Action
  Configration ---> Action ---> Create action
  1.Actions项(发送邮件的格式和内容)
  Name:action的名字
  Default message(信息内容)
  Recovery message(转换成OK时发送信息)
  
  2.Conditions(发送警告的条件)
  Trigge = PROBLEM (触发器)
  
  3.Operation ---> New
  Step (告警级别)
  Operation type(告警方式)
  Send message(发送信息)
  ******Remote command (命令操作)
  Send to User groups(发送到的用户组)
  Send to Users(发送到的用户)
  Send only to (选择调用脚本)
  ---> add ---> save
  
  8、模板
  Configration ---> Templates
  Create Templates (创建模板)
  

  七、web监控
  

  网页状态码获取(正常值为200):
  curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" www.baidu.com
  

  1、首页是否能打开
  创建application
  1.1*********configuration ---> Host ---> Application ---> create application
  
  1.2configuration ---> Host ---> 你的主机 ---> web ---> 右上角Create scenario
  scenario 主要选项:
  Name:监控项的名称
  Application:放到哪个应用中
  Update interval:更新周期,默认60秒
  Agetn:模拟浏览器
  Variables:宏变量(没有可以不填)
  
  steps 主要选项
  name:当前step名称,item key中可以用到
  url:需要检测的网址
  POST:你需要post提交上去的内容(没有可以不填)
  Timeout:超时时间,默认15秒
  Required status codes:响应代码必须包含在里面,多个响应代码用逗号分隔
  正常响应码为:200
  
  
  web监控方案创建后自动添加以下item,可在创建trigger中直接使用
  说明:使用时,Scenario换为真是方案的名称
  
  web.test.in[Scenario,,bps]
  说明:页面(step)的下载速度,默认单位bps
  
  web.test.fail[Scenario]
  说明:出现错误的步骤(步骤指监控的页面):ailed step of scenario "Scenario".
  
  web.test.error[Web1]
  说明:最后一次的错误信息:Last error message of scenario "Scenario".
  
  web.test.in[Scenario,step,bps]
  说明:页面(step)的下载速度(指定相应方案Scenario的相应步骤step)
  
  web.test.rspcode[Scenario,step]
  说明:指定步骤中的页面的响应码,页面正常的响应码为200
  
  web.test.time[Scenario,step,resp]
  说明:指定步骤中的页面的响应时间
  
  2、登陆*********
  scenario 选项:
  Variables:宏变量
  用来定义能登录的账号密码
  user=
  password
  steps 主要选项
  POST:你需要post提交上去的内容,
  例如:使用宏变量:user={user}&password={password}&Sign in
  
  3、验证登录*********
  steps 主要选项:
  Required string :Profile
  
  4、查看结果
  monitorning ---> web---> 筛选出你的主机 ---> 查看“WEB性能监控_FOR_TTLSA”,Status,显示OK 便是正常
  
  5、监控项*********
  web方案监控项当web监控项创建好之后,下面的key会被自动添加好(备注:Scenario为web方案的名称)
  web.test.in[Scenario,,bps] 整个阶段中的下载速度,单位字节/秒
  web.test.rspcode[Scenario,Step] 检索指定阶段的http响应代码
  
  八、自定义邮件报警
  1、linux zabbix-server端配置
  mutt+msmtp下载安装:
  下载MSMTP
  # wget http://down1.chinaunix.net/distfiles/msmtp-1.4.30.tar.bz2
  # tar xvf msmtp-1.4.17.tar.bz2
  # cd msmtp-1.4.17
  # ./configure --prefix=/usr/local/msmtp
  # make
  # make install
  # cd /usr/local/msmtp/
  # mkdir etc #配置文件目录和配置文件都要自己建
  # cd etc
  # vim msmtprc #手动创建配置文件
  # account default
  # host smtp.163.com
  # port 25
  # from xman@163.com #要从哪个邮箱发出
  # auth login #这里如果使用on的话会报 "msmtp: cannot use a secure authentication method"错误
  # tls off
  # user xman@163.com #邮箱用户名
  # password xmanufo  #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性
  # logfile /var/log/mmlog
  保存退出。简单测试一下
  /usr/local/msmtp/bin/msmtp xman@163.com
  随便输入一些内容用ctrl+d结束。然后到邮箱查看
  
  安装MUTT
  yum -y install mutt
  # vim /etc/Muttrc
  # set sendmail="/usr/local/msmtp/bin/msmtp"
  # set use_from=yes
  # set realname="fan******_007@163.com"
  # set editor="vim"
  

  测试一下吧!
  echo "testmail" | mutt -s "测试" ufo@sina.com
  这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名
  

  脚本路径
  cd /usr/local/zabbix/share/zabbix/alertscripts/
  
  编写sendmail脚本:
  #!/bin/bash
  #zabbix use msmtp+mutt sendmail script.
  echo $1;#to email address.
  echo $2;#title.
  echo $3;#content.
  echo "$3" | mutt -s "$2" $1
  

  脚本权限:
  chmod +x sendmail.sh
  
  测试:
  ./sendmail.sh $1 $2 $3
  $1 收邮件地址
  $2 邮件标题
  $3邮件内容
  

  2、控制台配置使用sendmail.sh脚本
  2.1创建媒介
  Administration ---> Media types ---> Create media type
  # Name:媒介名字(自定义)
  # Type :Script(选择脚本Script)
  # Scriptname:sendmail.sh(脚本名)
  
  2.2接收人配置
  Administration ---> Users ---> (用户)---> Media ---> add:
  # Type: (选择上一步自定义的媒介名)
  # send to:(收件邮箱)
  ---> add ---> save
  

  2.3设置Action
  (宏参考文档:https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location)
  Configration ---> Action ---> Create action
  1.Actions项(发送邮件的格式和内容)
  Name:action的名字
  # Default message(信息内容)
  # Recovery message(转换成OK时发送信息)
  
  2.Conditions(发送警告的条件)
  # Trigger value = PROBLEM (触发器)
  
  3.Operation ---> New
  Step (告警级别)
  Operation type(告警方式,选择:Send message(发送信息))
  Send to User groups(发送到的用户组)
  # Send to Users(发送到的用户)
  # Send only to (选择调用脚本)
  # ---> add ---> save
  
  2.4 测试
  
  
  十、测试操作
  1、主机:node1无任何模板和触发器
  用户:admin
  
  2、自定义item
  选定node1对应的items ---> greate item --->
  Name:Network Outbound Rating
  key:net.if.out[eth0]
  store value:Delta(speed per second)
  application:Net
  
  Name:Network Inbound Rating
  key:net.if.in[eth0]
  store value:Delta(speed per second)
  application:Net
  
  Name:CPU Switches
  key:system.cpu.switches
  store value:As is
  application:CPU
  
  Name:CPU Interrupts
  key:system.cpu.intr
  store value:As is
  application:CPU
  
  save 保存
  查看各个item采集的数据图像
  Monitoring  ---> Latestdata ---> Graph
  
  3、可视图
  3.1 自定义Graphs
  图一:Network Outbound Rating
  Network Inbound Rating
  图二:CPU Switches
  CPU Interrupts
  
  3.2 自定义Screen
  
  4、Triggers(触发器)
  configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers
  自定义:Network Inbound Rating 的 Triggers(触发器)
  Expression(定义条件)
  {node1:net.if.in[eth0].last()}>10000
  Severity触发级别
  High
  
  5、设置邮件报警
  当触发Triggers,邮箱便会收到邮件
  
  
  十一:本机测试
  1、创建媒介
  Administration ---> Media types ---> Create media type
  name:localhost_mail(自定义名)
  Type:Email
  SMTP server:localhost
  SMTP helo:localhost
  SMTP email:zabbix@localhost
  
  2、创建收件人媒介配置(测试用admin配置)
  Administration ---> Users ---> (admin)---> Media ---> add:
  # Type: localhost_mail
  # send to:root@localhost
  ---> add ---> save
  
  3、action动作配置
  Configration ---> Action ---> Create action
  1.Actions项(发送邮件的格式和内容)
  Name:action的名字
  # Default message(信息内容)
  # Recovery message(转换成OK时发送信息)
  
  2.Conditions(发送警告的条件)
  # Trigger value = PROBLEM (触发器)
  
  3.Operation ---> New
  Step:1-3(告警级别)
  Operation type:(告警方式,选择:Send message(发送信息))
  # Send to Users:Admin
  # Send only to:localhost_mail
  # ---> add ---> save
  
  

  十二、自定义宏
  官方参考文档:
  https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location
  
  变量可以用于如下地方:
    item 名称
    item key 参数
    触发器名称和描述
    触发器表达式
    其他地方
  
  宏变量优先级:
    主机宏(checked first)
    主机模板定义的宏,如果有多个模板,那么按照模板越靠前那么宏的优先级越高
    全局宏(checked last)
  
  自定义宏
  定义全局宏
  Administration → General → Macros
  
  十三、自定义监控
  客户端配置文件 zabbix_angentd.conf 里面配置 UserParameter=1.
  
  语法如下:
  UserParameter=,
  
  示例:
  1、自定义监控客户端free,(zabbix_angentd端添加)
  vim zabbix-agentd.conf #zabbix-agent配置文件添加
  UserParameter=memory.free,/usr/bin/free | awk '/^Mem/{print $4}'
  重启zabbix_angentd
  
  测试是否定义成功:(在zabbix_server端)
  /usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.free"
  返回了数据,即表示成功
  
  控制台添加items
  key:memory.free
  

  灵活的自定义 key:
  UserParameter=key
  • ,command
      

      示例:
      自定义监控cat /proc/meminfo下的所有项,
  • 指/proc/meminfo下的项目参数
      UserParameter=memory.usage
  • ,/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}'
      

      测试是否定义成功:(在zabbix_server端)
      /usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[Buffers]"
      /usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[MemFree]"
      /usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[MemTotal]"
      

      控制台添加items
      key:memory.usage[Buffers]
      key:memory.usage[MemFree]
      key: memory.usage[MemTotal]
      
      实战:监控nginx(本机IP:192.168.0.106)
      (参考文档:http://www.ttlsa.com/zabbix/zabbix-monitor-nginx-performance/)
      
      nginx status信息
      curl http://127.0.0.1/ngx_status
      
      yum安装nginx:
      rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
      yum -y install nginx
      service nginx start
      
      配置:
      cd /etc/nginx/conf.d/
      vim default.conf
      nginx.status开启方法:
      server{
      ...
      location /status {
      stub_status on;
      access_log off;
      allow 192.168.0.0/16;
      deny all;
      }
      }
      
      nginx -t  检查语法
      
      状态页面各项数据的意义
      active connections - 当前 Nginx 正处理的活动链接数
      serveraccepts handled requests - 总共处理了233851个链接,成功创建233851次握手(证明中间没有失败的),总共处理了687942个请求(平均每场握手处理了2.94个数据请求)
      reading - nginx 读取到客户端的 header 信息数
      writing - nginx 返回给客户端的 header 信息数
      waiting - 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是Nginx已处理完正在等候下一次骑牛指令的驻留链接
      
      nginx压力测试:
      ab -n 1000 -c 100 http://192.168.0.106/status/
      
      vim /usr/local/zabbix/etc/zabbix_agentd.conf
      修改
      UnsafeUserParameters=1
      
      文档末尾:添加以下内容:
      UserParameter=Nginx.active
  • ,/usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/{print $NF}'
      UserParameter=Nginx.reading
  • ,/usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2
      UserParameter=Nginx.writing
  • ,/usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4
      UserParameter=Nginx.waiting
  • ,/usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6
      UserParameter=Nginx.accepted
  • ,/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$1}'
      UserParameter=Nginx.handled
  • ,/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$2}'
      UserParameter=Nginx.requests
  • ,/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$3}'
      说明:
      $1 指主机HOST(IP或域名)
      $2 端口
      
      服务器端测试:
      /usr/local/zabbix/bin/zabbix_get -s 192.168.0.106 -k "Nginx.accepted[192.168.0.106,80]"
      
      控制台(192.168.0.105/zabbix)key
      Nginx.active[192.168.0.106,80]as is
      Nginx.reading[192.168.0.106,80]as is
      Nginx.writing[192.168.0.106,80]as is
      Nginx.waiting[192.168.0.106,80]as is
      Nginx.accepted[192.168.0.106,80]delta
      Nginx.handled[192.168.0.106,80]delta
      Nginx.requests[192.168.0.106,80]delta
      
      网页的http_code:
      UserParameter=web.http_code:curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 192.168.2.35/index.php
      

      第一阶段总结:定义一次完整的监控:
      1、添加主机(主机组)
      2、添加item(内置的简单图形 Monitoring ---> Latest data)
      3、trigger(event:OK ---> Problem,Recovery)
      4、action(发通知 message(通知信息中使用宏)conditond(自定义触发条件),operation(step))
      5、媒介 Administration ---> Media types
      Email
      Script(脚本)
      6、自定义图形
      1、Graphs
      2、screen
      7、map(拓扑图)***********
      8、定义模板
      configuration --->  Templates
      
      十四、自动发现
      1、定义模板
      1、创建定义模板
      configuration --->  Templates ---> creat Template
      必填参数:
      Template name
      Visible name
      Groups
      New group
      
      2、为自定义的模板添加item
      configuration --->  Templates ---> 创建的模板 ---> item ---> create item
      
      3、为创建的item创建trigger
      
      4、为创建的item创建graphs
      
      2、discovery(发现)设置:
      configuration ---> Discovery ---> create Discovery rule(自定义发现规则)
      Name
      Discovery by proxy
      IP range:(IP范围,如:192.168.2.1-100)
      Delay (in sec):(延迟时间)
      Checks (New)
      Check type:zabbix agent (发现规则)
      Port range:10050
      Key:(获取其中监控的一个key作为获取的手段)
      Device uniqueness criteria: IP address
      
      3、action添加主机:(添加主机:定义接口,关联模板)
      configuration ---> Action ---> Event source:(discovery) ---> create action
      1、action
      Name
      2、Conditions(发现条件)
      New condition
      Host IP=
      Discovery rule =
      Discovery status = Discovered
      3、operations(发现后的操作)
      Add host(添加发现的主机)
      Link to templates: Test-Template(为添加的主机连接测试模板)
      
      自动注册
      configuration ---> Action --->Event source:(Auto registration) ---> create action
      
      4、移除主机
      configuration ---> Action ---> Event source:(discovery) ---> create action
      1、action
      Name
      2、Conditions
      Discovery status = "Lost"
      Host IP=
      3、operations(发现后的操作)
      Remove host
      
      

      十五、分布式环境中使用zabbix_proxy
      
      1、依赖环境
      yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc
      
      2、proxy安装配置
      下载,解压zabbix (在官网选择要安装的版本)
      2.4
      wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.0/zabbix-2.4.0.tar.gz
      2.48(汉化)
      http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz
      2.2
      wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz
      
      3、下载与服务器端同版本,步骤相似
      编译:
      ./configure --prefix=/usr/local/zabbix --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl
      注:如需监控proxy端,可安装:--enable-agent
      
      make && make install
      

      4、安装mysql
      yum -y install mysql mysql-server mysql-devel
      service mysqld start
      chkconfig mysqld on
      mysqladmin -u root password '123456'         创建数据库登陆账户和密码
      查看数据库:show databases;
      查看库中的表:show tables FROM zabbix
      

      5、创建数据库
      mysql -u root -p
      mysql> create database zabbix_proxy character set utf8;
      注:创建数据库 zabbix_proxy
      mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
      授权:本机能访问mysql的zabbix_proxy库,root用户下授权
      mysql> grant all on zabbix_proxy.* to zabbix@'192.168.%.%' identified by 'zabbix';
      授权:192.168.网段的用户能访问mysql的zabbix_proxy库,root用户下授权
      注:在其他服务器登录
      mysql -u zabbix -h192.168.%.% -p
      mysql> flush privileges;    ##刷新系统授权
      mysql>quit;
      

      6、导入数据库
      在解压后的zabbix目录中执行
      mysql -uzabbix -pzabbix -hlocalhost zabbix_proxy < database/mysql/schema.sql
      
      7、配置文档
      vim /usr/local/zabbix/etc/zabbix_proxy.conf
      Server=#zabbix-server端IP
      Hostname=#必须和控制台端的Proxy name 保持一直,建议使用IP
      DBHost=localhost#数据库主机
      DBName=zabbix_proxy#数据库名,与前面创建的数据名一定要相同
      DBUser=zabbix#数据库登录用户
      DBPassword=zabbix#数据库密码
      ConfigFrequency=1#默认3600秒,建议修改为短时间
      DataSenderFrequency=10#默认1秒,建议修改为10-30秒
      ProxyOfflineBuffer=1#默认1小时
      

      8、进入zabbix目录创建用户
      groupadd zabbix                                 创建用户组zabbix
      useradd -g zabbix -m zabbix                    创建用户zabbix属于zabbix组
      chown -R zabbix.zabbix /usr/local/zabbix   
      
      9、启动设置******
      /usr/local/zabbix/sbin/zabbix_proxy
      
      查看proxy端是否启动
      ss -tanlp
      
      重启方法:同zabbix-agentd端重启方法
      
      10、需要被proxy监控的host的zabbix_agentd.conf的Server=指向proxy的IP
      
      11、配置zabbix-server控制台端
      11.1、创建proxy
      Administration ---> DM ---> creat proxy
      必填选项:
      Proxy name
      #必须和zabbix_proxy.conf配置文件的Hostname=保持一致
      Proxy mode:Active
      11.2、创建主机
      Configuration ---> Hosts ---> creat host
      必填选项:
      Host name
      Visible name
      Agent interfaces
      Monitored by proxy
      重点:选择创建proxy时的Proxy name
      
      11.3、创建item、trigger或嵌套模板
      

      十六、监控Windows
      1、agents端win版下载(官方下载)
      conf目录存放是agent配置文件 bin文件存放windows下32位和64位安装程序
      示例:
      c:/zabbix
      c:/zabbix/bin/
      c:/zabbix/conf/
      c:/zabbix/logs/
      
      2、配置与安装
      2.1 配置zabbix agent相关配置。
      找到conf下的配置文件 zabbix_agentd.win.conf ,修改以下参数:
      LogFile=c:/zabbix/logs/#日志路径
      Server#zabbix-server端IP
      Hostname#本机名
      ServerActive#zabbix-server端IP
      

      3、启动
      开始  ---> 运行 ---> CMD
      cd c:\zabbix\bin
      zabbix-agentd.exe -c c:\zabbix\conf/zabbix_agentd.win.conf
      安装成Windows服务
      service.msc开始Windows服务控制台--->开启服务
      netstat -an  查看端口是否被监控
      
      4、控制台设置
      添加主机、item、trigger
      

      十七、监控类型
      zabbix agent
      zabbix 自带的客户端程序(被动模式)
      需要注意的是,server 检索数据有超时限制,最大超时时间 30 秒,如果检索数据经常超过 30 秒,那么,不建议你使用主动模式的agent
      
      zabbix agent (active )
      agent主动模式
      
      simple check
      基本的检测,可以检测网络、端口、fping 这些,功能很少并且无需安装客户端。
      
      snmp check
      适用于以下场景:
      客户基于安全考虑,不同意安装agent
      路由器、打印机等无法安装的设备
      

      

      十八、维护模式
      Configuration(配置) → Maintenance(维护)—>点击 Create maintenance period (创建维护周期)
      Maintenance
      Maintenance type 维护类型
      With data collection – 依旧收集数据
      No data collection– 暂停收集数据
      Active since  维护周期开始时间
      Active till  维护结束时间
      
      Periods:维护周期
      
      十九、zabbix命令
      19.1、zabbix_server
      启动zabbix_server端
      zabbix_server -c
       指配置.conf文件路径
      
      19.2、获取agent端的key的数据
      zabbix_get -s --host -p  -k --key
      --host 指客户端主机名或IP
       指监控端口
      --key   指客户端的key
      实例
      ./zabbix-get -s 127.0.0.1 -p 10050 -k "system.hostname"
      
      19.3、zabbix_agentd
      启动zabbix_agentd端
      zabbix_agentd -c
       指配置.conf文件路径
      
      19.4、zabbix_proxy
      启动 zabbix_proxy 端
      zabbix_proxy -c
       指配置.conf文件路径
      
      二十、优化
      1、操作系统优化
      2、数据库优化
      3、数据库分离
      4、数据库引擎
      mysql5.6或更高的版本
      5、其他优化
      减少item获取时间
      减少不必要的监控项
      

      
      
      终章:实战
      zabbix监控
      puppet_master
      mem cached
      mysql (master)
      mysql (slave)
      nginx(mogilefs) amoeba
      mogilefs mogstored
      tomcat
      
      

      

      

      

      

      

      

      

      

      

      

      

      
      
      
      
      
      
      其它:
      zabbix-service端安装配置,页面初始化“简易脚本”
      

      #!/bin/bash
      #
      # 环境
      yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc libxml2*
      # 下载安装
      cd /usr/local/src
      wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz
      tar xf zabbix-2.2.5.tar.gz
      cd zabbix-2.2.5
      ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2
      make && make install
      # 创建用户
      groupadd zabbix
      useradd -g zabbix -m zabbix
      chown -R zabbix.zabbix /usr/local/zabbix
      # 数据库设置
      mysql -u root -p123456 -e "
      create database zabbix character set utf8;
      grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
      flush privileges;
      quit"
      #数据库导入
      mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql
      mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
      mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
      # 修改配置文件:zabbix_server.conf
      cd /usr/local/zabbix/etc/
      sed -i 's/DBUser=root/DBUser=zabbix/g' zabbix_server.conf
      echo DBPassword=zabbix >> zabbix_server.conf
      # 修改php配置文件
      cd /etc/
      sed -i 's/max_input_time = 60/max_input_time = 600/g' php.ini
      sed -i 's/max_execution_time = 30/max_execution_time = 300/g' php.ini
      sed -i 's/post_max_size = 8M/post_max_size = 16M/g' php.ini
      echo 'date.timezone = Asia/Shanghai' >> php.ini
      service httpd restart
      # 启动设置
      cd /usr/local/src/zabbix-2.2.5/
      cp misc/init.d/fedora/core/* /etc/init.d/
      sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
      sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
      echo "/etc/init.d/zabbix_server start" >> /etc/rc.local
      echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local
      /etc/init.d/zabbix_server start
      /etc/init.d/zabbix_agentd start
      cp -R frontends/php/ /var/www/html/zabbix
      

      

      

      

      

      

      

      





  • 运维网声明 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-664575-1-1.html 上篇帖子: zabbix解决中文显示问题 下篇帖子: 【Zabbix】Zabbix对接AD域
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

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

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

    扫描微信二维码查看详情

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


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


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


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



    合作伙伴: 青云cloud

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