Zabbix监控搭建

Posted outsrkem

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix监控搭建相关的知识,希望对你有一定的参考价值。

Xabbix概述

zabbix     是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 )

zabbix由 2 部分构成,zabbix server与可选组件zabbix agent

进程构成

zabbix 安装完成后会产生 5 个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,zabbix_java_gateway是可选,这个需要另外安装

zabbix_agentd:客户端守护进程,此进程收集客户端数据,例如 cpu负载、内存、硬盘使用情况等

zabbix_get:zabbix 工具,单独使用的命令,通常用于排错

zabbix_sender:zabbix工具,用于发送数据给 server 或者 proxy ,在脚本完成之后使用 sender 主动将数据提交

zabbix_server:zabbix 服务端守护进程,所有的数据都是被提交或主动提交到  zabbix_server 端

zabbix_proxy:zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里

zabbix_java_gateway:zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy

 


硬件需求

Zabbix搭建,使用CentOS 7搭建

一、初始化系统设置

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

二、安装 LAMP环境

# cd /etc/yum.repos.d/

# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

# yum clean all && yum makecache               //清空缓存并建立元数据

# yum -y install mariadb mariadb-server httpd php php-mysql

# systemctl enable httpd && systemctl restart httpd                  //添加开机自启并重启服务

# systemctl enable mariadb && systemctl restart mariadb             //添加开机自启并重启服务  

# mysql_secure_installation        //初始化数据库,全部回答“y”

# systemctl is-enabled mariadb  //查询是否开机自启

三、安装 Zabbix 程序,以下需联网安装,光盘yum源没有安装包。

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

# yum -y install zabbix-server-mysql zabbix-web-mysql  zabbix-agent

配置初始数据库:

# mysql -u root -p

    > CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

    > grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘; 

    > exit

导入数据库

# cd /usr/share/doc/zabbix-server-mysql-3.2.11 

# zcat create.sql.gz | mysql -uroot -p zabbix          导入数据库

启动 Zabbix 服务

# vim /etc/zabbix/zabbix_server.conf

          DBHost=localhost

          DBName=zabbix

          DBUser=zabbix

          DBPassword=zabbix

# systemctl enable zabbix-server && systemctl start zabbix-server

编辑 zabbix 前端 php 配置

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

  php_value max_execution_time 300

  php_value memory_limit 128M

  php_value post_max_size 16M

  php_value upload_max_filesize 2M

  php_value max_input_time 300

  php_value always_populate_raw_post_data -1

  php_value date.timezone Asia/Shanghai

 

调整时间同步

# yum -y install ntpdate 

# ntpdate cn.pool.ntp.org

重启 Apache 服务生效

# systemctl restart httpd

四、修改中文乱码问题

       Win+R    >     fonts       >     拷贝中文字体改名为 msyh.ttf      >       

       将字体拷贝到该目录下  /usr/share/zabbix/fonts

       vim /usr/share/zabbix/include/defines.inc.php

              修改 zabbix php 页面配置,将‘graphfont‘ 修改为 msyh

                     define(‘ZBX_GRAPH_FONT_NAME‘, ‘msyh‘);

五、添加客户端

linux配置

       导入安装包(CentOS 7)zabbix-agent-3.2.1-1.el7.x86_64.rpm

             (CentOS 6)zabbix-agent-3.2.6-1.el6.x86_64.rpm

# yum –y install zabbix-agent-3.2.1-1.el7.x86_64.rpm

# vim /etc/zabbix/zabbix_agentd.conf

      LogFile=/tmp/zabbix_agentd.log

      Server=10.10.10.11              //zabbix服务器ip

      ServerActive=10.10.10.11       //zabbix服务器ip

      Hostname=10.10.10.11           //自己的ip

# systemctl enable zabbix-agent && systemctl restart zabbix-agent  //CentOS-7

# chkconfig zabbix-agent on && service zabbix-agent start          //CentOS-6.8

windows端配置,将bin和conf目录放在C:zabbix中

修改C:zabbixconfzabbix_agentd.conf配置文件下面三项

      LogFile=/tmp/zabbix_agentd.log

      Server=10.10.10.11              //zabbix服务器ip

      ServerActive=10.10.10.11      // zabbix服务器ip

      Hostname=10.10.10.111          //自己的ip

c:zabbixinwin64zabbix_agentd.exe -c c:zabbixconfzabbix_agentd.win.conf -i   //将进程添加到服务管理

c: zabbixinwin64zabbix_agentd.exe -c c:zabbixconfzabbix_agentd.win.conf -s     //开启服务

浏览器端配置

1. 添加监控主机

配置 | 主机 | 创建主机 | 模板 | 选择模板 | 添加模板 | 添加主机

       添加模板时,一般默认必须选择以下2项

                                   Template ICMP Ping

                                   Template OS Linux

2. 配置监控 nginx 并发量脚本(自定义脚本)

一、编译安装Nginx,开启 Nginx status 状态信息

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

# make && make install

添加监控模块

# vim /usr/local/nginx/conf/nginx.conf

      location /xabbix {

      stub_status on;

      }

二、Zabbix 客户端配置

       1、编写客户机端脚本 nginx_stats.sh

# vim /etc/zabbix/zabbix_agentd.d/nginx_stats.sh

#!/bin/bash

# Description:zabbix监控nginx性能以及进程状态

# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

HOST="127.0.0.1"

PORT="80"

# 检测nginx进程是否存在

function ping {

  /sbin/pidof nginx | wc -l

}

# 检测nginx性能

function active {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep ‘Active‘ | awk ‘{print $NF}‘  

}

function reading {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep ‘Reading‘ | awk ‘{print $2}‘

}

function writing {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep ‘Writing‘ | awk ‘{print $4}‘

}

function waiting {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep ‘Waiting‘ | awk ‘{print $6}‘

}

function accepts {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk ‘{print $1}‘

}

function handled {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk ‘{print $2}‘

}

function requests {

/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk ‘{print $3}‘

}

# 执行function

$1

 

2、在客户机将自定义的UserParameter加入配置文件,然后重启agentd

将脚本存在该目录下 : /etc/zabbix/zabbix_agentd.d,修改UserParameter的值

       # vim /etc/zabbix/zabbix_agentd.conf

                    UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_stats.sh $1

       # killall zabbix_agentd

       # /etc/init.d/zabbix-agent restart

3、在服务器使用zabbix_get获取数据

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-get-3.2.11-1.el7.x86_64.rpm

       # zabbix_get -s 10.10.10.11 -k ‘nginx.status[accepts]‘

       # zabbix_get -s 10.10.10.11 -k ‘nginx.status[ping]‘

4、浏览器配置Nginx 服务器并添加 Nginx 监控模板

浏览器操作

       1. 配置 | 模板 | 导入 | 选择文件 | 导入

       2. 配置 | 主机 | 创建主机 | 模板 | 选择模板 | 添加模板 | 添加主机

       添加模板时,一般默认必须选择以下2项

                                   Template ICMP Ping

                                   Template OS Linux

                                   Template App NGINX  选择刚才导入的模板

 

3. 链接钉钉报警

1.添加钉钉机器人,复制出机器码

2. Zabbix 配置文件中查找”Alert”查看告警脚本存放路径:

       [[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

              AlertScriptsPath=/usr/lib/zabbix/alertscripts

3.进入配置中路径创建配置文件:

       [[email protected] ~]# cd /usr/lib/zabbix/alertscripts/

       [[email protected] alertscripts]# vim token.sh

 

#!/bin/bash

to=$1

subject=$2

text=$3

curl ‘****钉钉机器码填在此处*******‘

-H ‘Content-Type: application/json‘

-d ‘

{"msgtype": "text",

  "text": {

      "content": "‘"$text"‘"

  },

  "at":{

      "atMobiles": [ "‘"$1"‘" ],

      "isAtAll": false

  }

}‘

 

4. 修改权限

       [[email protected] alertscripts]# chown zabbix.zabbix token.sh

       [[email protected] alertscripts]# chmod +x token.sh

5. 配置浏览器端

       管理 | 报警媒介类型  | 创建媒介类型····

       配置 | 动作 | 事件源[触发器] 创建动作 ·····

       管理 | 用户 | admin | 报警媒介 | 添加 | 收件人填电话 | 填加

 


以上是关于Zabbix监控搭建的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix监控系统,最细搭建详解

不得不学的Zabbix监控系统,最细搭建详解

zabbix监控的搭建

Linux监控平台——搭建zabbix监控平台

zabbix监控搭建

zabbix监控搭建