zoukankan      html  css  js  c++  java
  • zabbix笔记_001

    zabbix介绍

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
    zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
    zabbix由2部分构成,zabbix server与可选组件zabbix agent。
    zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Windows主流平台

    zabbix中文手册

    https://www.zabbix.com/documentation/3.4/zh/manual

    zabbix 基础架构

    zabbix-agent - zabbix server - mysql  <<---zabbix web获取数据库数据展示
    

    zabbix 安装 [zabbix3.4.10]

    zabbix安装包可以在官方,镜像站获取.

    zabbix安装包安装zabbix

    #安装zabbix相关依赖
    yum -y install httpd mariadb-server php php-mysql
    
    #安装zabbix源:
    rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    此时/etc/yum.repos.d/ 会多出一个zabbix源.
    [root@localhost zabbix]# ll /etc/yum.repos.d/
    -rw-r--r--  1 root root  410 Aug 28  2017 zabbix.repo    #这是已经下好的源
    
    
    #下载zabbix相关包
    wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-server-mysql-3.4.10-1.el7.x86_64.rpm
    wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-web-3.4.10-1.el7.noarch.rpm
    wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-get-3.4.10-1.el7.x86_64.rpm
    wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.10-1.el7.x86_64.rpm
    
    #安装软件iksemel (不安装可能会报错)
    #http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/iksemel-1.4-6.sdl7.x86_64.rpm
    yum localinstall -y iksemel-1.4-6.el7.centos.x86_64.rpm
    
    #下载完成后直接批量安装,并且会自动解决依赖关系:
    yum -y localinstall zabbix-*
    
    
    #推荐安装软件:
    yum install -y sysstat htop vmstat nethogs iftop
    

    zabbix数据库创建

    systemctl start mariadb.service
    mysql
     create database zabbix character set utf8 collate utf8_bin;
     grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
     flush privileges;
     exit
     
     导入数据[默认就在zabbix中]:
     cd /usr/share/doc/zabbix-server-mysql-3.4.10
     zcat create.sql.gz | mysql -uroot zabbix
     
     进入数据库检查:
     mysql
     use zabbix;
     show tables;
     
     看到里面有表证明成功
    

    zabbix server配置文件修改:

    [root@localhost zabbix-server-mysql-3.4.10]# egrep -v "#|^$" /etc/zabbix/zabbix_server.conf
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    

    启动zabbix

    检查相关服务: 
    systemctl start httpd zabbix-server zabbix-agent mariadb
    
    systemctl is-active httpd zabbix-server zabbix-agent mariadb   #出现 active 证明成功,没出现就是失败了
    active
    active
    active
    active
    

    web页面初始化

    浏览器访问: http://10.0.0.70/zabbix/
    默认的用户名: Admin
    密码为: zabbix

    报错处理:

    解决方法:

    sed -i -e '/# php_value/s/#//;s/Europe/Riga/Asia/Shanghai/' /etc/httpd/conf.d/zabbix.conf
    systemctl restart  httpd zabbix-server.service 
    重启后时区问题就会被解决
    

    这里是zabbix数据库的账号密码:

    /etc/zabbix/web/zabbix.conf.php
    

    安装完成:

    默认登录账号密码 Admin zabbix

    zabbix改为中文页面显示

    效果:

    解决字体乱码

    yum install -y wqy-microhei-fonts
    cp -a /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
    systemctl restart zabbix-server.service
    

    ZAbbix server is not running:

    监控主机

    监控自己:

    编辑配置文件: egrep -v "#|^$" /etc/zabbix/zabbix_agentd.conf 改为如下:

    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=127.0.0.1      ## 允许谁向我取值
    ServerActive=127.0.0.1
    Hostname=Zabbix server
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    

    监控一台linux-server

    在被监控的linux系统中安装zabbix安装包:
    rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.10-1.el7.x86_64.rpm
    
    配置服务器地址:
    vim /etc/zabbix/zabbix_agentd.conf
    Server=10.0.0.80
    
    #保存退出 重启zabbix-agent
     systemctl restart zabbix-agent.service
     
     #注意,这里的 10.0.0.70 这可以写多个server,这是允许谁可以取数据,可以写多个IP,用  , 逗号 隔开
    

    zabbix服务器添加agent:

    优化告警信息:

    告警信息都是英文,对中国人不友好,所以..改成国人能看懂的吧

    使用python脚本告警

    脚本内容:

    1. 进入zabbix目录 /usr/lib/zabbix/alertscripts  创建 mail.py
    
    2. 将下面代码写入到mail.py中,记得修改邮箱和授权码
    #-------------------------------------------------------------
    #!/usr/bin/python  
    #coding:utf-8  
    import smtplib
    from email.mime.text import MIMEText
    import sys
    mail_user = 'xxx@163.com'   ##你的邮箱
    mail_pass = 'xxxxx'         ##你的邮箱授权码
    
    def send_mail(to_list,subject,content):
        me = "zabbix 监控告警平台"+"<"+mail_user+">"
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = subject
        msg['From'] = me
        msg['to'] = to_list
        try:
            s = smtplib.SMTP("smtp.163.com", 25)
            s.login(mail_user,mail_pass)
            s.sendmail(me,to_list,msg.as_string())
            s.close()
            return True
        except Exception,e:
            print str(e)
            return False
    if __name__ == "__main__":
        send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
    
    #-------------------------------------------------------------
    3. 保存退出,进入zabbix中配置以下脚本参数:
    管理 - 报警媒介类型 :
    
    名称: email
    类型: 脚本
    脚本名称: mail.py 
    脚本参数: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
    勾选: 已启用
    

    zabbix 操作和恢复操作汉化:

    动作-操作 :
    默认标题: 告警信息: {TRIGGER.NAME}
    
    消息内容:
      告警状态:【{TRIGGER.STATUS}】
      告警主机:【{HOST.NAME}】
      主机地址:【{HOST.IP}】
      告警时间:【{EVENT.DATE} {EVENT.TIME}】
      告警等级:【{TRIGGER.SEVERITY}】
      告警名称:【{TRIGGER.NAME}】
      当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
      事件代码:【{EVENT.ID}】
      
    
    动作-恢复操作 :
      默认标题:  故障恢复: {TRIGGER.NAME}
    
    消息内容
      告警状态:【{TRIGGER.STATUS}】
      告警主机:【{HOST.NAME}】
      主机地址:【{HOST.IP}】
      恢复时间:【{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}】
      告警等级:【{TRIGGER.SEVERITY}】
      告警名称:【{TRIGGER.NAME}】
      当前状态:【{ITEM.NAME}:{ITEM.KEY}={ITEM.VALUE}】
      事件代码:【{EVENT.ID}】
    

    shell 脚本告警配置:

    shell脚本发信:
    cd /usr/lib/zabbix/alertscripts
    touch mail.sh
    写入如下内容:
    #----------------------------------
    #!/bin/bash
    export LANG=zh_CN.UTF-8
    FILE=/tmp/mailtmp.txt
    echo "$3" >$FILE 
    dos2unix -k $FILE ###解决了发送的邮件内容变成附件的问题。
    /bin/mail -s "$2" $1 < $FILE
    #------------------------------------
    
    #脚本参数:
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}
    

    测试告警:

    问题表现形式:
    {10.0.0.63:system.users.num.last(,10)}>3
    
    恢复表达式:
    {10.0.0.63:system.users.num.last(,10)}<3
    

    尝试开启多个 xshell窗口 检查告警是否发送:
    最终效果:

    mail.rc邮件告警

    vim /etc/mail.rc
    
    尾部添加:
    set bsdcompat
    set sendcharsets=iso-8859-1,utf-8
    set from=18816997176@163.com    #邮箱
    set smtp=smtp://smtp.163.com
    set smtp-auth-user=18816997176@163.com #账号
    set smtp-auth-password=x83ue244  #授权密码
    set smtp-auth=login
    
    测试发信:
    echo "this is test $(hostname -I)" | mail -s 'chenleilei.net test' 370460370@qq.com
    

    常用软件安装

    yum install -y htop uptime iftop iostat vmstat netstat nethogs
    

    zabbix-get 取值

    在没有配置前,可以通过zabbix-get来取值测试,取值成功即代表配置也没啥问题
    zabbix-get安装: yum install -y zabbix-get
    
    [root@localhost alertscripts]# zabbix_get -s 10.0.0.63 -k 'system.uptime'
    19300
    

    zabbix内置监控项

    通过zabbix内置监控项可以获取绝大多数想要的数据

     zabbix_agentd -p  拿到数据后,使用:
     zabbix_get -s 10.0.0.63 -k "system.uptime"
     
     [root@localhost ~]#  zabbix_get -s 10.0.0.63 -k "system.uptime"
     25906    <----获取到的系统启动时间值.[默认单位:秒]
     
     统计内置监控项:
     [root@localhost ~]# zabbix_agentd -p | grep -o '^.*[[tsdum]|' |wc -l
    76
    

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    leetcode 347. Top K Frequent Elements
    581. Shortest Unsorted Continuous Subarray
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 217. Contains Duplicate、219. Contains Duplicate II、220. Contains Duplicate、287. Find the Duplicate Number 、442. Find All Duplicates in an Array 、448. Find All Numbers Disappeared in an Array
    leetcode 461. Hamming Distance
    leetcode 19. Remove Nth Node From End of List
    leetcode 100. Same Tree、101. Symmetric Tree
    leetcode 171. Excel Sheet Column Number
    leetcode 242. Valid Anagram
    leetcode 326. Power of Three
  • 原文地址:https://www.cnblogs.com/superlinux/p/12582123.html
Copyright © 2011-2022 走看看