• Zabbix监控搭建


    Zabbix概述

           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是可选,这个需要另外安装
    <1> zabbix_agentd
           客户端守护进程,此进程收集客户端数据,例如 cpu负载、内存、硬盘使用情况等
    <2> zabbix_get
           zabbix工具,单独使用的命令,通常用于排错
    <3> zabbix_sender
           zabbix工具,用于发送数据给 server 或者 proxy ,在脚本完成之后使用 sender 主动将数据提交
    <4> zabbix_server
           zabbix 服务端守护进程,所有的数据都是被提交或主动提交到 zabbix_server 端
    <5> zabbix_proxy
           zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里
    <6> zabbix_java_gateway
           zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy

    硬件需求

    Name Platform CPU/Mem Databases Monitored host
    Small Ubuntu linux PII 350Mhz 256Mb SQLite 20
    Medium Ubuntu linux 64 bit AMD Athlon 3200+ 2GB MySQL InnoDB 500
    Large Ubuntu linux 64 bit Intel Dual Core 6400 4GB RAID10 MySQL InnoDB or PostgreSQL >1000
    very RedHat Enterprise Intel Xeon 2xCPU 8GB Fast RAID10 MySQL InnoDB or PostgreSQL >10000

    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 zabbix@localhost 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
    # systemctl restart httpd //重启 Apache 服务生效
    

    四、修改中文乱码问题

    Win+R	>	fonts	>	拷贝中文字体改名为 msyh.ttf	>	
    将字体拷贝到该目录下 /usr/share/zabbix/fonts
    [root@localhost ~]# 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	//开启服务
    

    六、浏览器端配置

    登录zabbix http://ip/zabbix
    用户名 Admin 密码: zabbix
    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

    [root@localhost ~]# 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、 链接钉钉报警
      a、添加钉钉机器人,复制出机器码
      b 、Zabbix 配置文件中查找”Alert”查看告警脚本存放路径:
    [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    

    c、进入配置中路径创建配置文件:

    [root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
    [root@localhost 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
    }
    }'
    

    d、修改权限

    [root@localhost alertscripts]# chown zabbix.zabbix token.sh
    [root@localhost alertscripts]# chmod +x token.sh
    

    e、配置浏览器端
    管理 | 报警媒介类型 | 创建媒介类型····
    配置 | 动作 | 事件源[触发器] 创建动作 ·····
    管理 | 用户 | admin | 报警媒介 | 添加 | 收件人填电话 | 填加


    作者:Outsrkem
    出处:https://www.cnblogs.com/outsrkem/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    如何快速转载CSDN及博客园中的博客
    Ubuntu18.04连不网 报"有线连接未托管"
    Ubuntu18.04的网络配置
    vim基本操作
    Git更新远程仓库代码到本地(转)
    POJ 3253 Fence Repair
    POJ 2503 Babelfish
    POJ 2002 Squares
    POJ 1840 Eqs
    POJ 3274 Gold Balanced Lineup
  • 原文地址:https://www.cnblogs.com/outsrkem/p/10851255.html
Copyright © 2020-2023  润新知