zoukankan      html  css  js  c++  java
  • zabbix5.0

    1:什么是监控?

    监控: 生活中的监控, 事后追责

    linux监控: 事后追责,实时监控,事前预警,性能分析

    2:常见的linux监控命令

    cpu: top uptime vmstat

    mem free

    disk df du

    进程 ps pstree

    网络 iftop nethogs

    查看日志

    3:使用shell脚本来监控服务器

    #!/bin/bash
    avai_mem=`free -m|awk '/Mem/{print $NF}'`
    if [ $avai_mem -lt 1000 ];then
       #mail
    fi
    
    

    4: zabbix的基础服务架构

    5: zabbix生产环境安装

    选版本

    安装依赖

    #安装php72w和nginx
    cd /etc/yum.repos.d/
    rm -fr local.repo 
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    wget http://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    yum localinstall webtatic-release.rpm -y
    yum install php72w-fpm php72w-cli nginx -y
    #安装php依赖
    yum install php72w-mysqli php72w-bcmath php72w-gd php72w-mbstring  php72w-xml php72w-ldap -y
    
    
    #配置nginx和php
    vim  /etc/php-fpm.d/www.conf
    [root@monitor ~]# grep -Ev "^$|;" /etc/php-fpm.d/www.conf 
    [www]
    user = nginx
    group = nginx
    listen = 127.0.0.1:9000
    
    [root@monitor ~]# grep -Ev "^$|;"  /etc/php.ini 
    [PHP]
    max_execution_time = 300
    max_input_time = 300
    post_max_size = 16M
    [Date]
    date.timezone = Asia/Shanghai
    
    #nginx配置文件
    [root@monitor ~]# grep -Ev "^$|#"  /etc/nginx/nginx.conf
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            location / {
                root   /data/zbx/html;
                index  index.php index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    	location ~ .php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /data/zbx/html$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }
    
    
    #准备zabbix-web的源代码
    wget  https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.5.tar.gz
    tar xf zabbix-5.0.5.tar.gz
    cd zabbix-5.0.5/
    cp -a ui/* /html/
    chown -R nginx:nginx /html/
    mkdir /var/lib/php/session
    chown -R nginx:nginx /var/lib/php/session
    
    #安装数据库
    yum install mariadb-server.x86_64 -y
    systemctl start mariadb.service 
    systemctl enable mariadb.service
    mysql_secure_installation 
    mysql
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
    Query OK, 1 row affected (0.00 sec)
    MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    
    #安装zabbix-server
    rpm -ivh  https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    yum install zabbix-server-mysql -y
    zcat /usr/share/doc/zabbix-server-mysql-5.0.5/create.sql.gz|mysql -uzabbix -p123456  zabbix
    #配置zabbix-server
    [root@monitor zabbix]# grep -Ev "^$|#" zabbix_server.conf 
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBName=zabbix
    DBUser=zabbix
    DBPassword=123456
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    StatsAllowedIP=127.0.0.1
    #启动zabbix-server
    systemctl start zabbix-server.service
    systemctl enable zabbix-server.service
    #继续zabbix-web安装
    

    6∶监控一台服务器主机

    rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.5-1.el7.x86_64.rpm
    vim /etc/zabbix/zabbix_agent2.conf
    Server=10.0.0.71
    systemctl start zabbix-agent2.service 
    systemctl enable zabbix-agent2.service
    

    zabbix-web

    配置--主机--创建主机(右上角)

    输入主机名称--群组--客户端ip地址--模板--关联Template OS Linux by Zabbix agent

    7∶自定义监控项

    #agent端配置
    vim /etc/zabbix/zabbix_agent2.d/zbx_nginx.conf
    UserParameter=nginx_alive,ps -ef|grep -v grep|grep -c nginx
    systemctl restart zabbix-agent2.service
    
    #zabbix-server测试
    zabbix_get -s 10.0.0.8 -k nginx_alive
    

    zabbix-web

    配置--主机--10.0.0.8--监控项--创建监控项

    8∶自定义触发器

    配置--主机--10.0.0.8--触发器--创建触发器

    #触发器表达式
    #最新值
    {主机名称:key值.last()}=0
    #平均值
    {主机名称:key值.avg(5m)}=0
    #count计数
    {主机名称:key值.count(1m,10)}=0
    #diff对比
    {主机名称:key值.diff(1m,10)}=0
    

    9:自定义报警

    邮件报警

    1:自定义发件人

    管理--报警媒介类型--Email

    收件人配置

    配置动作

    3:启动发消息的动作

    配置---动作--启动动作

    微信报警

    1:申请企业微信

    2:准备微信报警脚本

    vim  weixin.py
    #企业id
    corpid='wxd074861951c67ba6'
    #应用的秘钥
    appsecret='QtraZrI936DZ0jZ3aSWTZ2CsAePgZUn_5jZhgudChtI'
    #应用的编号
    agentid=1
    yum install python2-pip -y
    pip install requests
    python weixin.py t296917342  '口令'  '今晚打老虎'
    
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #author: bgx
    #date: 2018
    #comment: zabbix接入微信报警脚本
    
    import requests
    import sys
    import os
    import json
    import logging
    
    logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                    datefmt = '%a, %d %b %Y %H:%M:%S',
                    filename = os.path.join('/tmp','weixin.log'),
                    filemode = 'a')
    
    
    corpid='**********'
    appsecret='********************'
    agentid=1
    #获取accesstoken
    token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
    req=requests.get(token_url)
    accesstoken=req.json()['access_token']
    
    #发送消息
    msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
    
    touser=sys.argv[1]
    subject=sys.argv[2]
    #toparty='3|4|5|6'
    message=sys.argv[2] + "
    
    " +sys.argv[3]
    
    params={
            "touser": touser,
    #       "toparty": toparty,
            "msgtype": "text",
            "agentid": agentid,
            "text": {
                    "content": message
            },
            "safe":0
    }
    
    req=requests.post(msgsend_url, data=json.dumps(params))
    
    logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
    

    3:新增报警媒介,添加发件人

    mv weixin.py /usr/lib/zabbix/alertscripts/
    
    #注意添加脚本参数
    #{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE} 
    

    4:添加收件人

    5:测试报警

    10:自定义图形和grafana出图

    #安装grafana
    wget https://mirror.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.3.1-1.x86_64.rpm
    yum localinstall grafana-7.3.1-1.x86_64.rpm -y
    systemctl start grafana-server.service 
    systemctl enable grafana-server.service
    netstat -lntup
    #granfa的概念
    插件 
    数据源
    dashboard
    

    11∶自定义监控模板

    #监控tcp的11种状态
    ESTABLISHED
    SYN_SENT
    SYN_RECV
    FIN_WAIT1
    FIN_WAIT2
    TIME_WAIT
    CLOSE
    CLOSE_WAIT
    LAST_ACK
    LISTEN
    CLOSING
    

    12:zabbix监控角度总结

    zabbix 4.0监控nginx
    1:导入模板,测试下模板的兼容性
    2:把模板取值的配置文件和脚本,放在对应的位置
    3:zabbix-get测试取值
    4:给主机链接模板
    

    13: web网站的可用性监测

    https://www.cnblogs.com/michael2018/p/13994045.html

    #实现 curl 模拟登陆 报警
    

    14:使用percona插件监控mysql

    15: snmp监控window和Linux

    16: zabbix自动发现和自动注册(主动)

    自动发现
    #自动发现:自动化添加监控主机
    1.配置扫描网段范围  例如:192.168.0.100-200
    2.配置扫描动作
    3.被监控的主机需要安装配置启动agent
    

    配置自动发现规则,注意配置IP地址范围,zabbix客户端去探测 system.uname进行判断添加

    配置动作:注意规则

    
    条件:接收到的值 包含 Linux 
         自动发现状态 等于 上
         服务类型 等于 Zabbix 客户端 #必须安装agent
         ```
    
    ![](https://img2020.cnblogs.com/blog/1275194/202011/1275194-20201116162502943-1911199108.png)
    
    ![](https://img2020.cnblogs.com/blog/1275194/202011/1275194-20201116162527995-625611389.png)
    
    ![](https://img2020.cnblogs.com/blog/1275194/202011/1275194-20201116162543211-714300103.png)
    
    安装被监控主机,配置被监控主机
    
    ```bash
    rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.5-1.el7.x86_64.rpm
    vim /etc/zabbix/zabbix_agent2.conf
    Server=10.0.0.71  #配置zabbix-server主机IP地址
    systemctl start zabbix-agent2.service 
    systemctl enable zabbix-agent2.service
    
    自动注册(主动模式)
    #主动注册注意配置被监控端配置
    Server=允许取值的IP地址
    ServerActive= 主动找server IP地址
    Hostname= 被监控主机的主机名或者直接填写IP地址
    HostMetadata= web|DB|cache  根据主机用途作为标识,例如有web主机链接Nginx模板,db链接数据库(mysql)模板
    
    自动注册的规则server端,配置自动注册的规则。
    HostMetadata=
    

    配置操作


    17: zabbix-agent主动和被动的区别

    18: zabbix版本升级

    19: zabbix分布式监控proxy


    #安装zabbix
    wget https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    rpm -ivh zabbix-release-5.0-1.el7.noarch.rpm 
    cd /etc/yum.repos.d/
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    mysql_secure_installation 
    mysql
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
    Query OK, 1 row affected (0.00 sec)
    MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    #被监控主机
    rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.5-1.el7.x86_64.rpm
    vim /etc/zabbix/zabbix_agent2.conf
    Server=10.0.0.71  #配置zabbix-server主机IP地址
    systemctl start zabbix-agent2.service 
    systemctl enable zabbix-agent2.service
    
    
    

    20: zabbix监控jvm原理

    21: zabbix低级自动发现

    22: zabbix性能优化

    23: zabbix api

  • 相关阅读:
    利用Bootstrap快速搭建个人响应式主页(附演示+源码)
    Socket实现仿QQ聊天(可部署于广域网)附源码(2)-服务器搭建
    Socket实现仿QQ聊天(可部署于广域网)附源码(1)-简介
    开拓思维,如何用编程思想进行三维建模(2)
    开拓思维,如何用编程思想进行三维建模(1)
    浅谈Winform事件的实现以及模拟其事件的实现(附实现源码)
    Winform实现Shp-栅格图形文件的读取与显示(外加shp转WKB格式存入oracle)附源码
    本地MVC项目发布到IIS服务器
    Asp.net mvc4 安装报错处理方法(x80070005 拒绝访)
    MySql 主从复制及主主复制
  • 原文地址:https://www.cnblogs.com/michael2018/p/13959867.html
Copyright © 2011-2022 走看看