zoukankan      html  css  js  c++  java
  • 搭建zabbix监控系统

    zabbix安装过程

    (图片太多不好粘贴,本文省略,主要是以后自己查起来方便,偷个懒呢)

    mysql

    PHP

    nginx

    zabbix-server

    zabbix-agent

    安装zabbix之前需要准备基本环境,需要安装mysqlnginxphp,详细安装见一下链接

    mysql安装:https://www.cnblogs.com/Christine-ting/p/10697708.html

    nginx安装:https://www.cnblogs.com/Christine-ting/p/10697726.html

    PHP安装:https://www.cnblogs.com/Christine-ting/p/11328071.html

    安装mysql:

    https://www.cnblogs.com/Christine-ting/p/10697708.html

    创建zabbix数据库,和用户,并执行导入zabbix数据文件

    1、进入数据库,创建用户

    create database zabbix character set utf8;

    GRANT all  privileges ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix..321com';

    flush privileges;

    2、导入数据文件

    use zabbix;

    source /opt/zabbix-4.2.5/database/mysql/schema.sql;

    source /opt/zabbix-4.2.5/database/mysql/images.sql;

    source /opt/zabbix-4.2.5/database/mysql/data.sql;

    安装PHP:

    https://www.cnblogs.com/Christine-ting/p/11328071.html

    修改监听方式为端口监听

    安装nginx:

    https://www.cnblogs.com/Christine-ting/p/10697726.html

    1、安装

    2、创建zabbix的访问根目录,并将zabbixPHP文件拷贝到此目录

    mkdir /data/zabbix/zabbix -p

    cp /opt/zabbix-4.2.5/frontends/php/* /data/zabbix/zabbix/ -rp

    3、配置关于zabbixnginx配置文件

    zabbix.conf

    server

      {

            listen 80;

            index index.html index.htm index.php;

            root /data/zabbix;

            location ~ ^(.+.php)(.*)$ {

                       fastcgi_split_path_info ^(.+.php)(.*)$;

                        include fastcgi.conf;

                       fastcgi_pass  127.0.0.1:9000;

                       #fastcgi_pass   /tmp/php-cgi.sock;

                       fastcgi_index index.php;

                       fastcgi_param  PATH_INFO          $fastcgi_path_info;

               }

            location /nginx_status

                    {

                            stub_status on;access_log off;

                    }

            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

                    {

                            expires 30d;

                    }

            location ~ .*.(js|css)?$

                    {

                            expires 12h;

                    }

            access_log /opt/logs/zabbixaccess.log;

      }

    3

    安装zabbix:

    1、下载安装包,上传到opt目录下,下载地址:https://www.zabbix.com/download_sources

    2、解压安装包:cd /opt && tar -zcvf zabbix-4.2.5.tar.gz

    3、创建用户:

    groupadd --system zabbix

    useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System"zabbix

    4、zabbix创建家目录

    mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix

    chown zabbix:zabbix /usr/lib/zabbix

    5、安装依赖包:yum install mysql-devel net-snmp-devel curl curl-devel libevent-devel

    6、执行编译,编译完成后会在/usr/lib/zabbix/下生成文件目录

    cd  zabbix-4.2.5 && ./configure   --prefix=/usr/lib/zabbix/  --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

    make install

    7、zabbix相关命令创建软连接

    ln -s /usr/lib/zabbix/sbin/zabbix_server /usr/bin/#zabbixserver启动命令

    ln -s /usr/lib/zabbix/sbin/zabbix_agentd /usr/bin/#zabbixagent启动命令

    ln -s /usr/lib/zabbix/bin/zabbix_get /usr/bin/ #获取agent状态的命令

    8、编辑zabbix_server.conf文件,修改一下字段

    vim /usr/lib/zabbix/etc/zabbix_server.conf

    ListenPort=10051#server监听的端口

    LogFile=/tmp/zabbix_server.log

    DBHost=localhost#数据库的IP

    DBName=zabbix#数据库名字

    DBUser=zabbix#数据库用户名

    DBPassword=zabbix..321com#数据库用户密码

    DBSocket=/tmp/mysql.sock#数据库的sock文件位置

    DBPort=3306#数据库端口

    ListenIP=0.0.0.0server监听的IP范围

    Timeout=4

    AlertScriptsPath=/usr/lib/zabbix/alertscripts#server执行脚本的位置,如微信报警脚本等

    LogSlowQueries=3000

    9、修改zabbix_agentd.conf文件,修改以下字段

    LogFile=/tmp/zabbix_agentd.log

    Server=127.0.0.1#zabbix-serverIP地址

    ServerActive=127.0.0.1#zabbix-serverIP:端口,在本机上不用加端口

    Hostname=10.128.0.48#agent本机IP

    10、启动zabbix-serverzabbix-agent进程

    在浏览器中打开zabbix

    1、打开浏览器http://ip/zabbix,如下图,点击下一步

    2、检查前期要求,后面都是OK状态,如果存在不满足的选项,需要想办法解决掉

    3、配置mysql连接,需要填写数据库地址、端口、库名、用户名、密码等

    4、填写zabbix-server的地址、端口和server名字,填写完成之后会自动创建zabbix-server的相关配置文件并写库

    5、初始化zabbix完成后,会提示登录,如下图,如果直接登录,是以guest的身份登录,我们要点击Go to dashboard,之后会出现登录界面,默认用户是Admin,密码是zabbix

    6、登录完成后会进入到主页面,如下图,我们首先要设置zabbix的语言环境、修改管理员的默认密码、禁止guest用户登录,点击右上角的人形按钮

    7、点击Admin设置语言环境和修改密码,修改,也可以新建管理用户

    8、修改密码或者新建用户之后,退出重新登录,如下图

    9、安装被监控主机agent

    为被监控主机安装zabbix-agent,最好与zabbix版本一致

    在被监控主机执行以下脚本

    function Check (){

        Agentd=/usr/local/zabbix/sbin/zabbix_agentd

        if test -e $Agentd && "$Agentd" -V2 | grep 4.2 > /dev/null

    then

        echo "Zabbix_agentd 4.2 has been already installed. Exit" && exit

        else

        test -f zabbix_agentd_install.sh && rm -f zabbix_agentd_install.sh

        test -f /usr/local/zabbix/sbin/zabbix_agentd && rm -rf /usr/local/zabbix/sbin/zabbix_agentd

        test -f /etc/init.d/zabbix_agentd && rm -f /etc/init.d/zabbix_agentd

        fi

    }

    #配置相关

    function Config(){

        Server=$1

        IP="`ifconfig | grep -o 'inet [0-9.]*' | grep -o '[0-9.]*$' | grep -e '^192.' -e '^10.' -e '^172.'`"   #内网IP获取

    #IP="`curl ip.6655.com/ip.aspx`"    #公网IP获取

        mkdir -p /usr/local/zabbix/sbin/

        mkdir -p /usr/local/zabbix/etc/

        mkdir -p /var/log/zabbix/ && touch /var/log/zabbix/zabbix_agentd.log

        chown zabbix:zabbix /var/log/zabbix/zabbix_agentd.log && chmod 755 /var/log/zabbix/zabbix_agentd.log

        cd /usr/local/zabbix/sbin/

    cat > /usr/local/zabbix/etc/zabbix_agentd.conf <<EOF

    Server=${Server}

    Hostname=${IP}

    ServerActive=${Server}:10051

    LogFile=/var/log/zabbix/zabbix_agentd.log

    LogFileSize=10

    BufferSize=1024

    EOF

    }

    function Install(){

        yum install -y gcc pcre*

        wget http://35.198.217.74:8088/09/mc/drum/zabbix-4.2.3.tar.gz

    tar zxvf zabbix-4.2.3.tar.gz && cd zabbix-4.2.3

        ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install

        echo 'zabbix-agent 10050/tcp # Zabbix Agent'>>/etc/services

        echo 'zabbix-agent 10050/udp # Zabbix Agent'>>/etc/services

        cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

        sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd

        chkconfig --add zabbix_agentd

        chkconfig zabbix_agentd on

        chmod +x /etc/init.d/zabbix_agentd

        chmod +x /usr/local/zabbix/sbin/zabbix_agentd

        groupadd zabbix

        useradd -g zabbix zabbix -s /bin/false

        Config $1

        service zabbix_agentd start && chkconfig zabbix_agentd on

        rm -rf ~/zabbix-4.2.0 && rm -rf ~/zabbix-4.2.0.tar.gz

        echo ---------------------Result---------------------------------

        netstat -ntlp | grep zabbix_agentd && echo -e "33[33minstall Succeed.33[0m" || echo -e "33[31minstall Failed.33[0m"

    }

    if [ -z $1 ]

    then

        Server="10.148.0.99"  ###zabbix-serverIP地址,一定要记得改,不改的话在执行脚本的时候,需要带上zabbix-serverIP

    else

        Server=$1

    fi

    #main

    Check

    Install $Server

    如果需要批量安装zabbix-agent,可以执行以下脚本

    ips="10.148.0.11   ##agentIP

    10.148.0.12

    10.148.0.13

    10.148.0.14

    10.148.0.15

    "

    for i in $ips

    do

    echo $i

    scp addagent.sh $i:/home/apple && echo $i scp successed! ##将安装agent的脚本拷贝到主机

    ssh $i "sudo sh /home/apple/addagent.sh"  ##远程执行脚本

    #ssh $i "ps -ef | grep zabbix | grep -v grep"  ##安装完成后可以检查是否安装成功

    echo

    done

    10、添加被监控主机agent

    在监控页面点击配置主机创建主机,如图

    为主机设置组和模版

    主机名称是agentIP地址

    可见的名称填写容易记忆的别名,选择群组,便于管理,可以在现有的群组中选择,也可以新建群组。根据不同需求添加不同监控模版,一般选择Templat OS Linux

    agent代理程序IP地址填写agentIP

    设置之后点击添加

    11、自定义监控模版

    主要针对监控特定的程序,当程序异常可以发出报警

    创建模版,填上模版名称,群组可以根据自己需要选择,也可以在创建模版之前自己创建群组。

    点击监控项,再自定义监控项

    编辑监控键值,我这里是定义监控端口,当检测到端口不通会发出报警,之后更新保存,之后在主机监控中就可以选择这个模版对服务器进行监控

    12、添加微信报警

    在管理中选择报警媒介类型,选择创建媒体类型

    自定义微信报警,制定脚本名称,这个脚本应该存放在zabbix-server上指定的路径,该路径在zabbix-server文件中有配置:AlertScriptsPath=/usr/lib/zabbix/alertscripts,该微信脚本weixin.sh内容如下(之前需要申请企业微信账号):

    #SCRIPT_NAME:  weixin.sh

    #DESCRIPTION:  send message from weixin for zabbix monitor

    #!/bin/bash

    CropID='wwe1f9cb0XXXXXXd4df'    # 我的企业的CorpID

    Secret='NR2h-W3tZd2TOHXXXXXZ-QSjz2RzVk9_jTC0ikpeg4'    # 创建应用时的Secret

    #获取access_token

    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"

    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}')

    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

    function body () {

       local int AppId=1000002   #应用的id

       local UserId=$1           #发送的用户位于$1字符串

       local PartyId=1           # 通讯录中部门的ID

       local Meg=$(echo "$@" | cut -d" " -f3-)

       echo """{

        "touser" : "$UserId",

        "toparty" : "$PartyId",

        "msgtype" : "text",

        "agentid" : "$AppId",

        "text" : {

            "content" : "$Meg"}

    }"""

    }

    /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

    配置好微信报警脚本后还需要设置动作,才会将微信报警关联起来。

    新建动作

    设置操作

    标题:{TRIGGER.STATUS}:{TRIGGER.NAME}

    消息内容:

    报警主机: {HOST.NAME}

    主机IP: {HOST.IP}

    状态:{TRIGGER.STATUS}

    报警时间: {EVENT.DATE} {EVENT.TIME}

    报警等级: {TRIGGER.SEVERITY}

    报警信息: {TRIGGER.NAME}

    问题详情: {ITEM.NAME}:{ITEM.VALUE}

    事件ID: {EVENT.ID}

    设置恢复操作

    标题:Resolved: {TRIGGER.NAME}

    消息内容:

    主机:{HOST.NAME}

    地址:{HOST.IP}

    状态:{TRIGGER.STATUS}

    时间:{EVENT.DATE} {EVENT.RECOVERY.TIME}

    级别: {TRIGGER.SEVERITY}

    内容: {TRIGGER.NAME}:{ITEM.VALUE}

    事件ID: {EVENT.ID}

    操作(动作恢复操作都需要设置):选择发送用户群组、用户、发送方式,添加更新保存

  • 相关阅读:
    php No input file specified 错误提示
    yii 隐藏index.php
    phpstudy 配置 sqlserver
    xdebug3 配置信息
    composer 更新
    mysql 命令行 导入大型文件
    使用 DBExportDoc V1.0 For MySQL 导出数据库表结构说明文档
    聚合数据接口调用实例
    servlet
    JDBC
  • 原文地址:https://www.cnblogs.com/Christine-ting/p/11646912.html
Copyright © 2011-2022 走看看