美文网首页
Zabbix安装及微信报警

Zabbix安装及微信报警

作者: 橡皮24 | 来源:发表于2018-04-26 23:11 被阅读75次

    系统及版本:Centos7 zabbix3.2.6

    一、安装

    1、关闭防火墙seLinux
    [root@C2 ~]# systemctl stop firewalld.service 
    [root@C2 ~]# systemctl disable firewalld.service
    [root@C2 ~]# setenforce 0
    [root@C2 ~]# vim /etc/selinux/config 
    SELINUX=disabled
    
    2、安装lamp环境
    [root@C2 ~]# yum -y install httpd mariadb-server zlib zlib-devel php php-mysql php-gd php-fpm php-mbstring mcrypt php-mcrypt php53-xml php53-xmlrpc
    
    3、 软连接所依赖的动态库文件
    [root@C2 ~]# ln -s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so
    ##此处/usr/lib64/mysql/libmysqlclient.so.*****后边是版本号。注意自己的版本号
    
    4.修改php-fpm 配置参数(/etc/php-fpm.d/www.conf
    [root@C2 ~]# sed -i 's/;rlimit_files = 1024/rlimit_files = 51200/g' /etc/php-fpm.d/www.conf
    [root@C2 ~]# sed -i 's/^pm.max_children.*/pm.max_children = 300/g' /etc/php-fpm.d/www.conf
    [root@C2 ~]# sed -i 's#^listen =.*#listen = /tmp/php-fpm.socket#g' /etc/php-fpm.d/www.conf
    
    5、启动和配置php.ini文件(做备份)
    [root@C2 ~]# systemctl start php-fpm 
    [root@C2 ~]# cp /etc/php.ini /etc/php.ini.bak
    [root@C2 ~]# sed -i 's/post_max_size \= 8M/post_max_size \= 16M/g' /etc/php.ini
    [root@C2 ~]# sed -i 's/max_execution_time \= 30/max_execution_time \= 300/g' /etc/php.ini
    [root@C2 ~]# sed -i 's/max_input_time \= 60/max_input_time \= 300/g' /etc/php.ini
    [root@C2 ~]# sed -i 's/\;date.timezone \=/date.timezone \= Asia\/Shanghai/g' /etc/php.ini
    
    6、通过yum安装zabbix服务

    (注意yum版本有问题先清除缓存yum clean all)

    [root@C2 ~]# yum clean all
    [root@C2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm  
    
    [root@C2 ~]# yum install zabbix-server-mysql -y     
    [root@C2 ~]# yum install zabbix-web-mysql -y
    [root@C2 ~]# yum install zabbix-agent -y            (客户端,如果不监控自己可以不安装)
    [root@C2 ~]# yum install zabbix-get -y          (获取监控信息)
    
    7、创建数据库及zabbix用户
    [root@C2 ~]# systemctl start mariadb.service
    [root@C2 ~]# systemctl enable mariadb.service
    [root@C2 ~]# mysql
    MariaDB [(none)]> create database zabbix character set utf8;
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
    MariaDB [(none)]> flush privileges;
    MariaDB [(none)]> quit
    
    8、导入zabbix数据库
    [root@C2 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.6/
    [root@C2 zabbix-server-mysql-3.2.6]# zcat create.sql.gz | mysql -uroot zabbix;
    

    注意:安全起见生产环境要给mariadb添加root密码
    mysqladmin -u root password "newpass"

    9、修改http配置
    [root@C2 ~]# 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   (修改时区)
    
    10、修改zabbix配置文件参数
    cat >> /etc/zabbix/zabbix_server.conf <<eof
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    eof
    
    11、启动相关服务和配置开机启动
    [root@C2 ~]# systemctl start zabbix-server.service
    [root@C2 ~]# systemctl start zabbix-agent.service
    [root@C2 ~]# systemctl restart httpd
    [root@C2 ~]# systemctl enable zabbix-server.service
    [root@C2 ~]# systemctl enable zabbix-agent.service 
    [root@C2 ~]# systemctl enable httpd
    
    11、输入http://ip:prot/zabbix 就可以访问zabbix安装页面

    例如:http://192.168.1.125/zabbix



    全显示OK就可以继续
    12、输入mysql授权的用户名和密码

    数据库名称:zabbix
    用户名:zabbix
    密码:zabbix
    点击:Test connection
    端口0:是默认3306


    13、填写name选项即可,随便取名字,点击Next


    14、Zabbix 默认登录用户名和秘密

    用户名:admin
    密码:zabbix


    完成

    二、解决zabbix中文乱码

    1、更改中文:
    2、解决乱码

    (1)找到本地C:[Windows](http://www.ttlsa.com/windows/ "windows")\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下

    [root@C2 ~]# cd /usr/share/zabbix/fonts/
    [root@C2 fonts]# ls
    graphfont.ttf  simkai.ttf
    

    (2)修改zabbix php配置文件

    [root@C2 ~]# vim /usr/share/zabbix/include/defines.inc.php

    define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name

    (3)刷新界面,乱码解决

    三、客户端安装

    **安装前要关闭防火墙和selinux (如果不关闭防火墙请开放10050和10051端口)

    1、配置yum源

    (yum版本有问题先清除缓存yum clean all)

    [root@C3 ~]# yum clean all
    [root@C3 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
    
    2、安装客户端
    [root@C3 ~]# yum install zabbix-agent -y
    
    3、编辑配置文件,修改主机和客户端IP
    [root@C3 ~]# vim /etc/zabbix/zabbix_agentd.conf             ##修改内容如下
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    Server=192.168.1.125            ##zabbix服务器地址
    ServerActive=192.168.1.125:10051   ##zabbix服务器地址和端口号  (默认是10051)
    Hostname=192.168.1.126      ##zabbix客户端IP地址
    UnsafeUserParameters=1
    Timeout=30
    Include=/etc/zabbix/zabbix_agentd.d/
    
    4、启动客户端
    systemctl start zabbix-agent.service
    systemctl enable zabbix-agent.service
    
    5、页面logo修改

    1).路径
    /usr/share/zabbix/img
    2).需要SVG编辑工具修改icon-sprite.svg
    3).更多需求参考配置文件/usr/share/zabbix/styles/*.css

    四、实现企业微信报警

    1、申请企业微信(http://work.weixin.qq.com/

    写企业名
    管理员扫码登录
    登记管理员信息

    2、添加组添加成员
    3、添加一个企业应用

    扫描二维码微信关注:(可以在微信里关注,在个人微信接收消息)


    4、需要记录的消息

    AgentId 1******
    Secret Cy6**************************8KyXqAgA
    CorpID wwb********2e5f60
    部门ID
    用户微信号




    5、修改Zabbix.conf
    [root@C2 ~]# vim /etc/zabbix/zabbix_server.conf 
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    
    6、设置python脚本

    1)安装python的一个模块

    [root@C2 ~]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
    [root@C2 ~]# tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
    [root@C2 ~]# python setup.py build
    [root@C2 ~]# python setup.py install
    

    2)写python脚本

    [root@C2 ~]# cd /usr/lib/zabbix/alertscripts/
    [root@C2 alertscripts]# vim wechat.py
    #!/usr/bin/python
    #_*_coding:utf-8 _*_
    
    
    import urllib,urllib2
    import json
    import sys
    import simplejson
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    
    def gettoken(corpid,corpsecret):
        gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
        print  gettoken_url
        try:
            token_file = urllib2.urlopen(gettoken_url)
        except urllib2.HTTPError as e:
            print e.code
            print e.read().decode("utf8")
            sys.exit()
        token_data = token_file.read().decode('utf-8')
        token_json = json.loads(token_data)
        token_json.keys()
        token = token_json['access_token']
        return token
    
    
    
    def senddata(access_token,user,subject,content):
    
        send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
        send_values = {
            "touser":"1514***92190",    #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
            "toparty":"2",    #企业号中的部门id。
            "msgtype":"text", #消息类型。
            "agentid":"1000002",    #企业号中的应用id。
            "text":{
                "content":subject + '\n' + content
               },
            "safe":"0"
            }
    #    send_data = json.dumps(send_values, ensure_ascii=False)
        send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
        send_request = urllib2.Request(send_url, send_data)
        response = json.loads(urllib2.urlopen(send_request).read())
        print str(response)
    
    
    if __name__ == '__main__':
        user = str(sys.argv[1])     #zabbix传过来的第一个参数
        subject = str(sys.argv[2])  #zabbix传过来的第二个参数
        content = str(sys.argv[3])  #zabbix传过来的第三个参数
    
        corpid = 'ww127b8*******6c86b1'   #CorpID是企业号的标识
        corpsecret = 'v0_nOsn7h85o-4******60oJDgavQcgNfnRX3B0kNMb8'  #corpsecretSecret是管理组凭证密钥
        accesstoken = gettoken(corpid,corpsecret)
        senddata(accesstoken,user,subject,content)
    

    3)修改权限

    [root@C2 alertscripts]# pwd
    /usr/lib/zabbix/alertscripts
    [root@C2 alertscripts]# chmod +x wechat.py && chown zabbix:zabbix wechat.py
    
    7、脚本测试
    [root@C2 alertscripts]# ./wechat.py test-msg test hello
    

    关注个人微信也可以收到报警


    8、配置zabbix

    1)配置报警媒介


    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}
    注意:别写错

    image.png

    2)设置用户




    之后更新

    3)创建主机--》监控项--》触发器




    添加http server的模板



    4)设置动作
    1. hostname: ({HOST.NAME}
    2. Time:{EVENT.DATE} {EVENT.TIME}
    3. level:{TRIGGER.SEVERITY}
    4. message:{TRIGGER.NAME}
    5. event:{ITEM.NAME}:{ITEM.VALUE}
      故障状态:{TRIGGER.STATUS}\n故障机器 IP:{HOST.IP}\n故障时间:{EVENT.DATE}:{EVENT.TIME}\n故障详情: {TRIGGER.NAME}\n故障级别: {TRIGGER.SEVERITY}\n故障 ID: {EVENT.ID}



      1.hostname: ({HOST.NAME}
      2.Time:{EVENT.DATE} {EVENT.TIME}
      3.level:{TRIGGER.SEVERITY}
      4.message:{TRIGGER.NAME}
      5.event:{ITEM.NAME}:{ITEM.VALUE}
      恢复状态:{TRIGGER.STATUS}\n恢复机器 ip:{HOST.IP}\n恢复时间:{EVENT.DATE}:{EVENT.TIME}\n故障详情: {TRIGGER.NAME}\n故障级别: {TRIGGER.SEVERITY}\n故障 ID: {EVENT.ID}



      5)之后安装httpd 测试

    注意事项:
    1、添加主机的时候后边的可用性如果是红色的,可以点击,之后就可以复制报错信息进行查看。有的时候可用性可能会不亮,可以添加个net-in监控项看看是否可以亮,如果不亮证明客户端配置有问题。

    2、 不论配置服务端还是配置客户端都要关闭selinux,不然监控的时候可用性会是红色的,而且会报很多奇怪的错误。

    3、 添加主机的时候一定要注意(主机名一定要对应客户端配置文件的Hostname。不然不能通信)


    相关文章

      网友评论

          本文标题:Zabbix安装及微信报警

          本文链接:https://www.haomeiwen.com/subject/wsrvlftx.html