Zabbix安装及微信报警

系统及版本: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 <
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

Zabbix安装及微信报警_第1张图片

Zabbix安装及微信报警_第2张图片

全显示OK就可以继续

12、输入mysql授权的用户名和密码

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


Zabbix安装及微信报警_第3张图片
13、填写name选项即可,随便取名字,点击Next
Zabbix安装及微信报警_第4张图片

Zabbix安装及微信报警_第5张图片

Zabbix安装及微信报警_第6张图片
14、Zabbix 默认登录用户名和秘密

用户名:admin
密码:zabbix


Zabbix安装及微信报警_第7张图片
Zabbix安装及微信报警_第8张图片
完成

二、解决zabbix中文乱码

1、更改中文:
Zabbix安装及微信报警_第9张图片
2、解决乱码
Zabbix安装及微信报警_第10张图片

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

Zabbix安装及微信报警_第11张图片

[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)刷新界面,乱码解决

Zabbix安装及微信报警_第12张图片

三、客户端安装

**安装前要关闭防火墙和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/)
Zabbix安装及微信报警_第13张图片

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

2、添加组添加成员
Zabbix安装及微信报警_第14张图片
3、添加一个企业应用
Zabbix安装及微信报警_第15张图片

Zabbix安装及微信报警_第16张图片

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


Zabbix安装及微信报警_第17张图片
4、需要记录的消息

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


Zabbix安装及微信报警_第18张图片

Zabbix安装及微信报警_第19张图片

Zabbix安装及微信报警_第20张图片
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
Zabbix安装及微信报警_第21张图片

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


Zabbix安装及微信报警_第22张图片
8、配置zabbix

1)配置报警媒介


Zabbix安装及微信报警_第23张图片

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

Zabbix安装及微信报警_第24张图片
image.png

2)设置用户


Zabbix安装及微信报警_第25张图片

Zabbix安装及微信报警_第26张图片

之后更新

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


Zabbix安装及微信报警_第27张图片

Zabbix安装及微信报警_第28张图片

添加http server的模板


Zabbix安装及微信报警_第29张图片

4)设置动作
Zabbix安装及微信报警_第30张图片
  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}


    Zabbix安装及微信报警_第31张图片

    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}


    Zabbix安装及微信报警_第32张图片

    5)之后安装httpd 测试
    Zabbix安装及微信报警_第33张图片

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

Zabbix安装及微信报警_第34张图片

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

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


Zabbix安装及微信报警_第35张图片

你可能感兴趣的:(Zabbix安装及微信报警)