zabbix(LNMP)的企业微信告警

一、简介

       KVM+虚拟机的基于LNMP平台zabbix3.0的监控系统。能通过企业微信实现服务器状态的告警功能!

二、环境

      服务器:DELL 710  32G   RIDA 5

      系统:Linux 3.10.0-862.el7.x86_64

      基于KVM的虚拟机      系统:Linux 3.10.0-862.el7.x86_64

                                         内存:6G

                                         硬盘:80G

                                          设置: SELINUX=disabled     iptables -F -Z

三、准备LNMP平台

      3.1   yum install nginx -y

        配置一台虚拟主机并新建好相应目录及测试页(index.php);

       ~]# vim /etc/nginx/conf.d/vhost.conf

server {

listen 80;

server_name www.testzabbix.com;
root /Centos/web;
# index index.html index.php index.htm;

location ~ \.php$ {
root /Centos/web;
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
fastcgi_pass 192.168.1.186:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Centos/web/$fastcgi_script_name;
include fastcgi_params;
}
}

systemctl enable nginx

systemctl start nginx

 

3.2 yum install mariadb-server 

      vim /etc/my.cnf.d/server.cnf

    [mysqld]

    skip_name_resolve = ON
    innodb_file_per_table = ON

 初始化数据库

    zabbix数据库的授权:

create database zabbix character  set utf8;

use zabbix; 

grant all on zabbix.* to 'zabuser'@'192.168.1.%' identified by 'tica123';
grant all on zabbix.* to 'zabuser'@'localhost' identified by 'tica123';

 

 systemctl enable mariadb

 systemctl start mariadb

 3.3 yum install php-fpm  php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml -y  

cp /usr/share/doc/php-fpm-5.4.16/php-fpm.conf.default /etc/php-fpm.d/www.conf
vim /etc/php-fpm.d/www.conf
listen = 192.168.1.186:9000
listen.allowed_clients = 192.168.1.186
user = nginx
group = nginx
pm.status_path = /status
ping.path = /ping
ping.response = pong

新建session会话目录并改nginx的属主及属组

mkdir /var/lib/php/session
setfacl -m u:nginx:rwx session

systemctl start php-fpm
systemctl enable php-fpm

--------------------------------------------------------------------------------------------LNMP平台完成。

测试

 

 四、zabbix安装及配置

    4.1 安装源

            rpm -i https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

            yum install zabbix-server-mysql zabbix-web-mysql -y

      初始化数据库:

            zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      复制目录及修改相关目录权限:

           cp  -rp  /usr/share/zabbix    /Centos/web

           chmod -R 755 /Centos/web/zabbix

           chown -R zabbix:zabbix   /Centos/web/zabbix

           chown -R nginx:nginx  /etc/zabbix

           chmod -R 755 /etc/zabbix

           chown  -R zabbix:zabbix  /usr/lib/zabbix/

           chmod  -R 755  /usr/lib/zabbix/

      主配置文件:

       ]# vim /etc/zabbix/zabbix_server.conf

       DBName=zabbix

       DBUser=zabuser

       DBPassword=tica123

       ListenIP=192.168.1.186

 systemctl enable zabbix-server

 systemctl start zabbix-server

查看所有服务的端口有没有起来:

 

 4.2能过web安装zabbix后续

    

 

下一步,检查下面系统检测出的不符合项,按要求修改相应配置文件即可,我这是已经修改好的。

 

 

 

 

 

 

 -----------------------------------------------------------------------------------------------------------安装完成

 登陆的初始用户及密码:

    用户:admin

    密码:zabbix

 

 

 报下以图片错语解决方法

  原因是zabbix不能解析 localhost

   可以在host 文件里做好对应 localhost 的解析

也可改安装时的配置文件:

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

 

 

 -------------------------------------------------------------------------------------中间添加主机略过

 5. 配置企业微信告警

 5.1 申请一个企业号

    网址:  https://work.weixin.qq.com/   

   1. 注册完后登陆后如创建一个应用。

    

 

     2.  如下图查看自己建应用(红框里是后面要用到的):

  

 

 3.在通讯录中新建并邀请人员加入(告警信息接收人):

 

4.配置微信接口信息

     微信企业号接口调试工具传送门:http://qydev.weixin.qq.com/debug

     

5.corpid 

   

 

6.corpsecret

 

7.测试连接

  

 

 

 

 

以上微信上配置完成

 5.2 zabbix 主机配置

      1.新建一个Item(cpu使用率)

      

 

 2.配置发信的媒介

    

 

 3.新建一个zabbix用户用来发信息 

 

 

 

动作选项参数:英语版

Host:{$HOSTNAME}

Status:{TRIGGER.STATUS}
Date/Time:{EVENT.DATE} {EVENT.TIME}
IP:{IPADDRESS}
Infor:{ITEM.NAME}:{ITEM.VALUE}%
Host:{$HOSTNAME}
Event:{TRIGGER.NAME}

注意:要想支持中文 (注意新建数据库时要指定字符集为utf8)

 4.接下来配置动作

    

 

 

 5.bash shell脚本(参考网上同行的)

    cd  /usr/lib/zabbix/alertscripts

      vim    Email-weixin.sh

  

#!/bin/bash

CropID='xxxxxxxxxxxxxxxxxxx
Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')

#echo $Gtoken

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


function body() {
local int AppID=1000002
local UserID=$1
local PartyID=2
local Msg=$(echo "$@" | cut -d" " -f3-)"\n"

printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "'"text"\"",\n"
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}

#body $1 $2 $3

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

    6. 测试

备注:

监控windows主机,把监控资源导出来命令

typeperf -qx  d:\FileName.txt

 

posted @ 2018-09-13 19:27  冬日的温暖  阅读(354)  评论(0编辑  收藏  举报