• zabbix监控超详细搭建过程


    监控及zabbix

     

    目录:

    1       监控分类... 1

    1.1        硬件监控... 1

    1.2        系统监控... 2

    1.3        网络监控... 3

    1.4        应用(业务)监控... 3

    2       安装zabbix. 3

    2.1        安装zabbix服务端... 3

    2.2        安装zibbix客户端... 9

    2.3        添加zabbix主机组和主机... 9

    2.4        创建用户和组... 11

    2.5        添加项目及触发器... 13

    2.6        设置报警... 16

    2.7        自定义模板... 19

    2.8        web监控... 20

    2.9        分布式监控、客户端主动模式... 21

    2.9.1         客户端被动模式... 21

    2.9.2         客户端主动模式... 21

    2.9.3         zabbix分布式... 22

    2.10          自动化监控... 23

    2.10.1       zabbix-agent自动注册(使用proxy)... 23

    2.10.2       主机探索(不使用proxy,被动模式)... 24

    2.10.3       使用zabbix-api 25

    2.11      更改中文字体防止乱码... 28

     

    1         监控分类

    1.1    硬件监控

    1、机房巡检。检查服务器各种状态。

    2、通过远程控制卡监控。ipmi是一种标注。

    ipmi获取不到硬盘状态,比如硬盘坏了,硬盘可以用MegaCli工具。

    ipmi简介:http://www.ibm.com/developerworks/cn/linux/l-ipmi/

    yum install OpenIPMI ipmitool -y
    [root@centos67 ~]# /etc/init.d/ipmi start

    1.2    系统监控

    1、了解监控对象

    2、知道性能的基准线。

    cpu监控

    cpu调度器

    上下文切换

    运行队列

    cpu使用率

    [root@c67-7 ~]# cat /proc/cpuinfo 
    
    [root@c67-7 ~]# lscpu
    
    [root@c67-7 ~]# uptime  #一般情况小于等于3就是正常
    
    [root@c67-7 ~]# rpm -qa |grep sysstat
    
    sysstat-9.0.4-27.el6.x86_64
    
    [root@c67-7 ~]# vmstat 1
    
    [root@c67-7 ~]# mpstat 1
    
    Linux 2.6.32-573.el6.x86_64 (c67-7)     2015年10月24日  _x86_64_        (1 CPU)
    
    11时24分37秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
    
    11时24分38秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    
    11时24分39秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    
    用户态(程序运行) 内核态(系统调用,如vi打开文件) 正常比例是70%:30%

    计算类的服务吃cpu,数据库占IO

       

                                         

    内存

    [root@c67-7 ~]# free -m
    
                 total       used       free     shared    buffers     cached
    
    Mem:           992        580        411          0         46        441
    
    -/+ buffers/cache:         92        900
    
    Swap:         1023          0       1023
    
    buffer:写入缓冲区
    
    cache:读出缓存区

    硬盘

    [root@c67-7 ~]# yum install iotop  -y
    
    iotop

    网络io

    [root@c67-7 ~]# yum install iftop -y
    
    iftop
    
    nmon可以监控以上所有东西。

    1.3    网络监控

    第三方监控宝等。

    使用smokeping监控网络状态,如下图:

     

    1.4    应用(业务)监控

    使用pwiki监控业务状态

    apache监控:通过mod_status模块

    http://www.t086.com/code/apache2.2/mod/mod_status.html

    nginx监控:类似于apache

    memcached监控 使用nc获取状态

    redis监控

    2 安装zabbix

    2.1    安装zabbix服务端

    官方文档参考

    https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

    1、安装zabbix-release

    [root@linux-node1 ~]# mkdir -p /home/lxy/tools
    
    [root@linux-node1 ~]# cd /home/lxy/tools/
    
    [root@linux-node1 tools]# wget -q http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
    
     [root@linux-node1 tools]# rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
    
    warning: zabbix-release-2.4-1.el6.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
    
    Preparing...                ########################################### [100%]
    
       1:zabbix-release         ########################################### [100%]
    
    [root@linux-node1 tools]# rpm -ql zabbix-release
    
    /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    
    /etc/yum.repos.d/zabbix.repo
    
    /usr/share/doc/zabbix-release-2.4
    
    /usr/share/doc/zabbix-release-2.4/GPL
    
    [root@linux-node1 tools]# ll /etc/yum.repos.d/zabbix.repo
    
    -rw-r--r-- 1 root root 401 9月  11 2014 /etc/yum.repos.d/zabbix.repo
    View Code

    2.开始安装zabbix

    1)保留yum安装的rpm包
    
    [root@linux-node1 tools]# sed -i 's#keepcache=1#keepcache=0#g' /etc/yum.conf
    
    [root@linux-node1 tools]# grep keepcache /etc/yum.conf
    
    keepcache=0
    
    2)开始安装zabbix
    
    yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相关
    
    yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web界面环境
    
    yum -y install zabbix-agent #<== ZABBIX客户端
    
    yum -y install mysql-server mysql #<==MySQL客户端与服务端
    View Code

    3、配置zabbix服务相关

    1)配置mysql
    
    [root@linux-node1 tools]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
    
    [root@linux-node1 tools]# vim /etc/my.cnf
    
    在[mysqld](第26行)标签下增加如下三行后保存
    
    [mysqld]
    
    character-set-server = utf8
    init-connect = 'SET NAMES utf8'
    collation-server = utf8_general_ci
    
    [root@linux-node1 tools]# /etc/init.d/mysqld start
    
    2)初始化数据库环境
    
    创建数据库
    
    mysql> create database zabbix character set utf8 collate utf8_bin;
    
    Query OK, 1 row affected (0.00 sec)
    
    授权数据库
    
    mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
    
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    
    导入表结构
    
    [root@linux-node1 tools]# cd /usr/share/doc/zabbix-server-mysql-2.4.6/create/
    
    [root@linux-node1 create]#  mysql -u root -p zabbix < schema.sql
    
    [root@linux-node1 create]# mysql -u root -p zabbix < images.sql
    
    [root@linux-node1 create]#  mysql -u root -p zabbix < data.sql
    
    [root@linux-node1 create]# mysqladmin -uroot password 123456
    
    3)设置apache时区
    
    sed -i 's## php_value date.timezone Europe/Riga#php_value date.timezone Asia/Shanghai#g' /etc/httpd/conf.d/zabbix.conf
    
    grep Shanghai /etc/httpd/conf.d/zabbix.conf
    
        php_value date.timezone Asia/Shanghai
    
    4)更改zabbix server配置
    
    [root@linux-node1 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak
    
    [root@linux-node1 ~]# sed -i 's@# DBPassword=@DBPassword=zabbix@g' /etc/zabbix/zabbix_server.conf
    
    [root@linux-node1 ~]# sed -i 's@# DBHost=localhost@DBHost=localhost@g' /etc/zabbix/zabbix_server.conf
    
    -------------------------------------------------
    
    vim /etc/zabbix/zabbix_server.conf
    
    LogFile=/var/log/zabbix/zabbix_server.log
    
    DBHost=localhost
    
    DBName=zabbix
    
    DBUser=zabbix
    
    DBPassword=zabbix
    
    5)启动相关服务
    
    [root@linux-node1 ~]# /etc/init.d/zabbix-server start
    
    Starting Zabbix server:                                    [确定]
    
    [root@linux-node1 ~]# /etc/init.d/httpd start
    
    正在启动 httpd:                                           [确定]
    
    [root@linux-node1 ~]# lsof -i:10051|wc -l
    
    55
    
    [root@linux-node1 ~]# lsof -i:80|wc -l    
    
    1

    0

     

    4、web界面安装

     

     

     

    上面的图形操作就是创建了一个配置文件,然后如果写错就可以去配置文件改

    登录Admin/zabbix

    进入后改密码

     

     

    2.2    安装zibbix客户端

    服务端也安装

    rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm yum install zabbix-agent -y

    vim /etc/zabbix/zabbix_agentd.conf

    81 Server= 10.0.0.7 (服务端ip)

     

    grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf   

    PidFile=/var/run/zabbix/zabbix_agentd.pid

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

    LogFileSize=0

    Server= 10.0.0.7  (服务端ip)

    ServerActive=127.0.0.1  (服务端ip)

    Hostname=Zabbix server

     

    /etc/init.d/zabbix-agentd start

    2.3    添加zabbix主机组和主机

    添加组

     

     

    添加主机

     

     

    2.4    创建用户和组

    zabbix报警是针对用户和用户组的。

    创建用户(不要急着存档)

     

     

    报警媒介先不填,因为默认的媒介不好用,需要手动添加,一会添加。

     

     

    添加完,可以使用新用户登录

    2.5    添加项目及触发器

    1、客户端添加一个检查用户的key,格式为key,命令

    grep UserParameter /etc/zabbix/zabbix_agentd.conf

    UserParameter=login-user,uptime | awk -F ' ' '{print $4}'

    /etc/init.d/zabbix-agent restart

    2、主机通过zabbix-get检查

     yum install zabbix-get -y

    zabbix-get  -s 客户主机  -k  命令

    [root@linux-node1 ~]# zabbix_get -s 10.0.0.8 -k login-user

    login-user  获取登录用户的列表

    3、web界面添加

    主机界面选定主机,然后点击项目,点创建项目

     

     

    4、添加触发器

     

     

    此处点添加,然后选择主机

     

     

     

    5、创建图形

     

    2.6    设置报警

    1、设置动作

     

     

     

    自定义报警类型

    [root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf

    435 AlertScriptsPath=/usr/lib/zabbix/alertscripts   ##<<设置自定义脚本的路径

    [root@linux-node1 alertscripts]# /etc/init.d/zabbix-server restart

    之后写相应脚本

    脚本要支持三个参数

    $1:用户的介质,如邮箱,手机号等

    $2:标题

    $3:内容

    [root@linux-node1 alertscripts]# cat login.sh        

    #!/bin/bash

    MAIL_TITEL=$2

    MAIL_CON=$3

    echo "$MAIL_CON"|/bin/mail -s "$MAIL_TITEL" $1

    echo "$1 $2 $3">>/tmp/login_zabbix.txt

    添加媒介类型

    在动作中设置

     

    为用户配置示警媒介

     

    2.7    自定义模板

    创建模板----模板中创建应用集----创建监控项-创建触发器-画图等都搞进模板。

    最后主机添加模板

    注意点,使用老师的模板脚本,另外添加多个类似模板点克隆再改

    [root@lb-node2 zabbix]# cat zabbix_agentd.conf.d/zabbix-linux-plugin.conf 
    UserParameter=linux_status[*],/etc/zabbix/zabbix_linux_plugin.sh "$1" "$2" "$3"  #写在/etc/zabbix/zabbix_agentd.conf中

     

     

    2.8    web监控

    web监控是针对主机的,别忘了触发器

     

     

     

     

    2.9    分布式监控、客户端主动模式

    2.9.1            客户端被动模式

    grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf   

    PidFile=/var/run/zabbix/zabbix_agentd.pid

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

    LogFileSize=0

    StartAgents=3

    Server= 10.0.0.7

    ServerActive=127.0.0.1

    Hostname=Zabbix server

    2.9.2            客户端主动模式

    [root@linux-node2 ~]# grep  '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    StartAgents=0
    ServerActive=10.0.0.7
    Hostname=linux-node2.example.com
    Include=/etc/zabbix/zabbix_agentd.d/

    [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart

    服务端克隆模板,把模板里项目全选,批量更新,项目类型改为主动方式

     

    然后主机添加项目即可。

    #克隆linux OS模板,注意更改连接,连接也是克隆的。

    2.9.3            zabbix分布式

    使用内网yum源

    echo '192.168.0.200 mirrors.aliyun.com repo.zabbix.com' >>/etc/hosts

    客户端安装zabbix-proxy

    [root@linux-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mysql-server

    配置分布式

    [root@linux-node2 ~]# rpm -ql zabbix-agent

    /etc/init.d/zabbix-agent

    /etc/logrotate.d/zabbix-agent

    /etc/zabbix/zabbix_agentd.conf

    /etc/zabbix/zabbix_agentd.d

    /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

    /usr/sbin/zabbix_agent

    /usr/sbin/zabbix_agentd

    /usr/share/doc/zabbix-agent-2.4.6

    /usr/share/doc/zabbix-agent-2.4.6/userparameter_examples.conf

    /usr/share/doc/zabbix-agent-2.4.6/zabbix_agent.conf

    /usr/share/man/man8/zabbix_agentd.8.gz

    [root@linux-node2 ~]# rpm -ql zabbix-proxy-mysql

    /usr/sbin/zabbix_proxy_mysql

    /usr/share/doc/zabbix-proxy-mysql-2.4.6

    /usr/share/doc/zabbix-proxy-mysql-2.4.6/create

    /usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql

    数据库配置

    [root@linux-node2 ~]# /etc/init.d/mysql start

    mysql> create database zabbix_proxy character set utf8;

    Query OK, 1 row affected (0.00 sec)

     

    mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';

    Query OK, 0 rows affected (0.00 sec)

     

    mysql> use zabbix_proxy

    Database changed

    mysql> source /usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql;

    Query OK, 0 rows affected (0.02 sec)

    配置文件配置

    [root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf

    ProxyMode=0   #0主动,1被动

    Server=10.0.0.7   #主动模式设置

    Hostname=proxy-node1  #必须改

    LogFile=/var/log/zabbix/zabbix_proxy.log

    LogFileSize=0

    PidFile=/var/run/zabbix/zabbix_proxy.pid

    DBName=zabbix_proxy

    DBUser=zabbix

    DBPassword=zabbix

    DBSocket=/var/lib/mysql/mysql.sock

    ExternalScripts=/usr/lib/zabbix/externalscripts

    [root@linux-node2 ~]# /etc/init.d/zabbix-proxy start

    Starting Zabbix proxy:                                     [确定]

    [root@linux-node2 ~]# lsof -i:10051

    配置界面,管理-分布式(代理)-创建代理-

    之后添加主机(选上代理即可),要监控的机器agent配置文件ip改成代理的ip

    服务多重启几次,先stop再start

    2.10              自动化监控

    2.10.1        zabbix-agent自动注册(使用proxy)

    HostMetadataItem=system.uname

    [root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

    PidFile=/var/run/zabbix/zabbix_agentd.pid

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

    LogFileSize=0

    StartAgents=0

    ServerActive=10.0.0.8  #这里用了代理的ip

    Hostname=linux-node2.example.com

    HostMetadataItem=system.uname

    Include=/etc/zabbix/zabbix_agentd.d/

    配置-动作-事件源选择自动注册-创建动作

     

    2.10.2        主机探索(不使用proxy,被动模式)

     

    组态-探索--使用默认的就行,如下,

     

    之后创建动作,事件源选探索,上面那个是自动注册

    然后剩下同上了

    2.10.3        使用zabbix-api

    https://www.zabbix.com/documentation/2.4/manual/api/reference

    [root@linux-node1 ~]# /usr/share/zabbix/api_jsonrpc.php

    获取验证

    [root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

    {

        "jsonrpc": "2.0",

        "method": "user.login",

        "params": {

            "user": "Admin",

            "password": "123456"

        },

        "id": 1

    }' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

    ---------上面为输入--下面为输出-----

    {

        "id": 1,

        "jsonrpc": "2.0",

        "result": "6981d2f7663ac35b553ce7e4477f7f29"

    }

    -------

    请求api,获取监控主机,带上SessionID

    [root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

    {

        "jsonrpc": "2.0",

        "method": "host.get",

        "params": {

            "output": ["hostid"]

        },

        "auth": "6981d2f7663ac35b553ce7e4477f7f29",

        "id": 2

    }' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

    ------上面为输入,下面为输出----------

    {

        "id": 2,

        "jsonrpc": "2.0",

        "result": [

            {

                "hostid": "10084"

            },

            {

                "hostid": "10115"

            }

        ]

    }

     

    剩下看官网吧,官网提供各种方法。

    https://www.zabbix.com/documentation/2.4/manual/api/reference/host/get

    例子:创建主机,执行下面直接添加。

    curl -s -X POST -H 'Content-Type:application/json' -d '

    {

        "jsonrpc": "2.0",

        "method": "host.create",

        "params": {

            "host": "Linux server",

            "interfaces": [

                {

                    "type": 1,

                    "main": 1,

                    "useip": 1,

                    "ip": "10.0.0.8",

                    "dns": "",

                    "port": "10050"

                }

            ],

            "groups": [

                {

                    "groupid": "2"

                }

            ],

            "templates": [

                {

                    "templateid": "10001"

                }

            ],

        },

        "auth": "9d670026e562405100a1a073231e7658",

        "id": 1

    }' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

    2.11              更改中文字体防止乱码

    讲自己电脑的字体微软雅黑上传到linix上

    [root@lvs1 fonts]# pwd   ##2.2版本

    /var/www/html/fonts

    [root@lvs1 fonts]# mv DejaVuSans.ttf DejaVuSans1.ttf

    [root@lvs1 fonts]# mv  msyh.ttf DejaVuSans.ttf

    [root@lvs1 fonts]# ll

    总用量 21988

    -rw-r--r-- 1 apache apache   741536 4月  22 15:56 DejaVuSans1.ttf

    -rw-r--r-- 1 root   root   21767952 6月  11 2009 DejaVuSans.ttf

    [root@lvs1 fonts]# chown apache.apache DejaVuSans.ttf

    或者直接更改系统的

    /usr/share/fonts/dejavu/DejaVuSans.ttf

    另外不同版本zabbix字体位置不一样,名字也不一样,下面是本文档的版本

    [root@linux-node1 dejavu]# find / -type d -name "fonts"

    /var/www/html/fonts

    /etc/fonts

    /usr/share/zabbix/fonts

    /usr/share/fonts

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    error: Microsoft Visual C++ 14.0 is required.
    pip安装其他包报错
    MapReduce
    机器学习算法使用
    结巴分词使用实例
    大数据——hbase
    机房收费系统系列一:运行时错误‘-2147217843(80040e4d)’;用户‘sa’登陆失败
    耿建玲视频总结
    学生信息管理系统系列三:验收时的改进
    学生信息管理系统系列二:常见问题
  • 原文地址:https://www.cnblogs.com/liang-wei/p/5848923.html
Copyright © 2020-2023  润新知