一、简介

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

zabbix(LNMP)的企业微信告警的更多相关文章

  1. zabbix企业微信告警配置教程

    前言: zabbix企业微信告警只需要配置一次就可以使用很久了,但是发现再次配置时,总会有遗忘,很麻烦又要去重新熟悉,所以,现在记录一份详细的配置过程,方便日后再次配置. 1.zabbix_serve ...

  2. python3.6-Yelp/elastalert0.2.1-elk7.2.0邮件加企业微信告警

    0.修改时区(前提条件已经安装好elk7.2) rm -f /etc/localtimecp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimetimed ...

  3. elk使用微信ElartAlert企业微信告警,自定义告警内容

    第一种方式 alert: - "elastalert_modules.wechat_qiye_alert.WeChatAlerter" alert_text: " === ...

  4. zabbix3.4.7实现企业微信告警,亲测可用!

    Zabbix 新版微信告警 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...

  5. zabbix 发送邮件到企业微信

    #!/usr/bin/python2.7#_*_coding:utf-8 _*_#auther:拿来用用import requests,sys,jsonimport urllib3urllib3.di ...

  6. alertmanager + federate - Prometheus outside k8s cluster + 总体架构图 对接企业微信告警 + curl alertmanager to send alert

    1.实验的架构 2.k8s 集群外的Prometheus的配置文件 [root@do1cloud03 prometheus]# cat prometheus.yml |egrep -v '#' glo ...

  7. zabbix微信告警实践

    首先你得有个企业号!!!具体操作步骤可以参考http://itnihao.blog.51cto.com/1741976/1733245,里面写的很详细就不重复了. 微信公众号注册并配置完成后,还需要让 ...

  8. Prometheus-Alertmanager告警对接到企业微信

    之前写过将Prometheus的监控告警信息通过Alertmanager推送到钉钉群. 最近转移了阵地,需要将Prometheus监控告警信息推送到企业微信群,经过两天的摸索,以及查了网上的一些资料, ...

  9. AlertManager 之微信告警模板,UTC时间错8个小时的解决办法

    注意事项: alertmanager中的web页面显示的报警时间是UTC时间,错8个小时,企业微信报警模板中已经修改过来了 下面配置可以作为参考: 1.prometheus操作 1.1 配置告警规则, ...

随机推荐

  1. Linux:FTP服务器的搭建

    FTP服务器的简介 系统用户 即系统本机的用户.Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件 系统进行工作.但通常不希望他们通过FTP方式远程访问系统. 虚拟用户 只能采用FT ...

  2. Centos7_防火墙的常用配置(杂记)

    Centos6和Centos7防火墙的区别 使用的工具不一样,Centos6使用的是Iptables而Centos7使用的则是Firewall Iptables,用于过滤数据包,属于网络层防火墙 Fi ...

  3. day95_11_28,selenium定位元素,cookies获取

    一.selenium selenium可以将一些资源定位: # 1.find_element_by_id 根据id找 # 2.find_element_by_link_text 根据链接名字找到控件( ...

  4. shell通配符, 变量, shell作用域

    1. 指定格式输出当前时间: echo `date +%Y%m%d`  # 注意使用反引号, +号后面不要有空格 反引号中的东西会被当做命令来执行, 并输出执行的结果 2. $uid用于判断当前是否是 ...

  5. onload()方法只能在body标签中调用吗?怎么调用多个多个方法?

    第一个问题: onload()方法并非只能在body标签中调用的,还可以在js中用window.onload = function() {函数名};来调用:另外img等标签也支持onload方法. 支 ...

  6. dicom(dcm)文件批量Study Instance UID打包整理工具

    一款可以自动识别原始dicom文件Study Instance UID的工具. 如果你有一堆混乱不堪的dcm文件,这个小工具能帮助你将这些无序的dicom文件按照Study Instance UID压 ...

  7. DirectShow 获取音视频输入设备列表

    开发环境:Win10 + VS2015 本文介绍一个 "获取音频视频输入设备列表" 的示例代码. 效果图 代码下载 代码下载(VC2015):Github - DShow_simp ...

  8. angularjs中ng-class常用写法,三元表达式、评估表达式与对象写法

     壹 ❀ 引 ng-class可以说在angularjs样式开发中使用频率特别高了,这不我想利用ng-class的三元运算符的写法来定义一个样式,结果怎么都想不起来正确写法,恼羞成怒还是整理一遍吧,那 ...

  9. workbook数据相关操作

    访问单个单元格 c = ws['A4'] #返回单元格A4,如果单元格不存在,则会自动创建 ws['A4'] = 4 #为单元格A4赋值为4 d = ws.cell(row=4, column=2, ...

  10. CentOs安装mysql数据库

    1. 下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQ ...