zabbix

前言

需提前安装好 mysql、nginx(httpd)、php 服务(php 建议 yum 直接安装,编译安装容易缺失 jpeg,freetype 支持)

下载链接

Zabbix Cloud Images and Appliances

环境

1,卸载系统自带 openjdk

#rpm  -qa | grep java

2,配置 java 环境(java gateway)

#tar  xzvf  jdk-8u231-linux-x64.tar.gz
#mv  jdk1.8.0_231  /usr/local/java
#vim  /etc/profile.d/java.sh
    export    JAVA_HOME=/usr/local/java
    export    PATH=$JAVA_HOME/bin:$PATH

#source  /etc/profile.d/java.sh

依赖

#yum  install  libevent-devel  -y  --downloadonly  --downloaddir=/home/hdlh/packages/zabbix-rpm/
#rpm  -ivh  zabbix-rpm/*.rpm  --force  --nodeps

解压

#tar  xzvf  zabbix-4.4.7.tar.gz  -C  /tools/

编译安装

#./configure  --prefix=/tools/zabbix-4  --enable-server  --enable-agent  --enable-java  --with-libcurl  --with-mysql=/tools/mysql-8.0.18/bin/mysql_config

		--with-mysql=/tools/mysql-8.0.18/bin/mysql_config(#如果是yum安装的mysql只需要  --with-mysql,不用补全路径)

#make  &&  make  install

配置文件

server

/tools/zabbix-4/etc/zabbix_server.conf

#egrep  -v  '^#'  /tools/zabbix-4/etc/zabbix_server.conf
		ListenPort=10051
		LogFile=/tools/zabbix-4/logs/zabbix_server.log
		LogFileSize=1
		DebugLevel=3
		PidFile=/tools/zabbix-4/zabbix_server.pid
		DBHost=localhost
		DBName=zabbix
		DBUser=zabbix
		DBPassword=zabbix
		DBSocket=/tools/mysql-8.0.18/tmp/mysql.sock
		DBPort=3306
		JavaGateway=localhost
		JavaGatewayPort=10052
		StartJavaPollers=5
		Timeout=30
		LogSlowQueries=3000
		StatsAllowedIP=127.0.0.1

agent

/tools/zabbix-4/etc/zabbix_agentd.conf

#egrep  -v  '^#'  /tools/zabbix-4/etc/zabbix_agentd.conf
		PidFile=/tools/zabbix-4/zabbix_agentd.pid
		LogFile=/tools/zabbix-4/logs/zabbix_agentd.log
		LogFileSize=500
		Server=127.0.0.1
		ListenPort=10050
		StartAgents=1
		ServerActive=127.0.0.1
		Hostname=Zabbix server								###agent.Hostname必须与 web 界面主机名称一致
		BufferSend = 10
		BufferSize = 150
		MaxLinesPerSecond = 100
		Timeout=30
		Include=/tools/zabbix-4/etc/zabbix_agentd.conf.d/*.conf
		UnsafeUserParameters=1

用户权限

#mkdir  /tools/zabbix-4/logs
#useradd  zabbix  -s  /sbin/nologin
#chown  -R  zabbix.zabbix  /tools/zabbix-4

数据导入

1,创建数据库以及用户

    mysql> create  database  zabbix  character set utf8 collate utf8_bin;
            (important,设置 zabbix 数据库类型,)
    mysql> create  user  'zabbix'@'localhost'  identified  with  mysql_native_password  by  'zabbix';
    mysql> grant  all  privileges  on  zabbix.*  to  'zabbix'@'localhost';
    mysql> flush  privileges;

2,数据导入

数据文件在 源码包(zabbix-4.4.7/) database/mysql/ 目录下

/tools/zabbix-4.4.7/database/mysql

    mysql>use  zabbix;
    mysql>source  schema.sql;
    mysql>source  images.sql;
    mysql>source  data.sql;

zabbix-web

#mkdir  /tools/nginx/html/zabbix
#/bin/cp  -rf  /tools/zabbix-4.4.7/frontends/php/*  /tools/nginx/html/zabbix/
#chown  -R  nginx.nginx  /tools/{nginx,php7}
#chmod  -R  777  /tools/nginx/html/zabbix

nginx+php配置修改

php.ini

	#cp  /tools/php7/etc/php-fpm.d/www.conf.default  /tools/php7/etc/php-fpm.d/www.conf
	#cp  /tools/php7/etc/php-fpm.conf.default  /tools/php7/etc/php-fpm.conf
	#cp  -a  /tools/php-7.4.5/php.ini-production /tools/php7/etc/php.ini
	#vim  /tools/php7/etc/php.ini
		max_execution_time = 300
		memory_limit = 128M
		post_max_size = 16M
		upload_max_filesize = 2M
		max_input_time = 300
		date.timezone = Asia/Shanghai
		mysqli.default_socket = /tools/mysql-8.0.18/tmp/mysql.sock
				# index.php 测试页面
						<?php
						phpinfo();
						?>

nginx.conf

		#------ zabbix 配置------
		location / {
				root   html;
				index  index.html index.htm index.php;
		}
											### html/zabbix 根据实际目录配置(一定要是具体路径)
		location ~ \.php$ {
				root           html;
				fastcgi_pass   127.0.0.1:9000;
				fastcgi_index  index.php;
				fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
				include        fastcgi_params;
		}
		#------ zabbix 配置------

配置zabbix环境变量

#vim  /etc/profile.d/zabbix.sh
	export  ZABBIX_HOME=/tools/zabbix-4
	export  PATH=$ZABBIX_HOME/sbin:$ZABBIX_HOME/bin:$ZABBIX_HOME/lib:$PATH
#chmod  +x  /etc/profile.d/zabbix.sh
#source  /etc/profile.d/zabbix.sh

启动

启动

#./zabbix_server

批量杀掉 zabbix 进程

#ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9

启动报错

1,报错 :./zabbix_server: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory

#ln  -s /tools/mysql-8.0.18/lib/libmysqlclient.so.21  /usr/lib64/

2,报错 :./zabbix_server: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

#ln  -s /tools/mysql-8.0.18/lib/libssl.so.1.1  /usr/lib64/

3,报错 :./zabbix_server: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

#ln  -s /tools/mysql-8.0.18/lib/libcrypto.so.1.1  /usr/lib64/

自定义配置

图形中文乱码问题

1,从Windows(控制面板-字体)中复制下黑体常规字体

2,zabbix-server 查找字体路径位置

#find / -name "fonts"

        /tools/nginx/html/zabbix/assets/fonts

3,字符集(替换)

#ll  /tools/nginx/html/zabbix/assets/fonts/DejaVuSans.ttf
#mv  /tools/nginx/html/zabbix/assets/fonts/DejaVuSans.ttf  /tools/nginx/html/zabbix/assets/fonts/DejaVuSans.ttf_bak
#mv  simhei.ttf  /tools/nginx/html/zabbix/assets/fonts/

4,修改系统配置,支持中文

/tools/nginx/html/zabbix/include/defines.inc.php

#vim  /tools/nginx/html/zabbix/include/defines.inc.php
	define('ZBX_GRAPH_FONT_NAME',           'simhei'); // font file name
			simhei				------			字体名(不用后缀ttf)

完整数值显示(不转换 K)

通过自定义数值单位

/tools/nginx/html/zabbix/include/func.inc.php

#vim  /tools/nginx/html/zabbix/include/func.inc.php
        $blackList = ['%', 'ms', 'rpm', 'RPM', '位'];
                位                ------            新增一个单位

zabbix_agent

linux

环境准备

1,卸载系统自带 openjdk

#rpm  -qa | grep java    
#rpm  -e  --nodeps  xxxxxx.openjdk.rpm

2,配置 java 环境(java gateway)

#tar  xzvf  jdk-8u231-linux-x64.tar.gz
#mv  jdk1.8.0_231  /usr/local/java
#vim  /etc/profile.d/java.sh
    export    JAVA_HOME=/usr/local/java
    export    PATH=$JAVA_HOME/bin:$PATH

#source  /etc/profile.d/java.sh

3,安装相关依赖

#yum  install  libevent-devel  -y  --downloadonly  --downloaddir=/home/hdlh/packages/zabbix-rpm/
#rpm  -ivh  zabbix-rpm/*.rpm  --force  --nodeps
解压
#tar  xzvf  zabbix-4.4.7.tar.gz  -C  /tools/
编译安装
#./configure  --prefix=/tools/zabbix-4  --enable-agent  --enable-java  --with-libcurl  
#make  &&  make  install
配置文件

/tools/zabbix-4/etc/zabbix_agentd.conf

#egrep  -v  '^#'  /tools/zabbix-4/etc/zabbix_agentd.conf
        PidFile=/tools/zabbix-4/zabbix_agentd.pid
        LogFile=/tools/zabbix-4/logs/zabbix_agentd.log
        LogFileSize=500
        Server=192.168.2.187
        ListenPort=10050
        StartAgents=1
        ServerActive=192.168.2.187
        Hostname=cssp                ###agent.Hostname必须与 web 界面主机名称一致
        #HostnameItem=system.hostname            ###自动获取本机hostname
        #HostMetadata=Linux                        ###适用于自动注册,区分windows\Linux
        BufferSend = 10
        BufferSize = 150
        MaxLinesPerSecond = 100
        Timeout=30
        Include=/tools/zabbix-4/etc/zabbix_agentd.conf.d/*.conf
        UnsafeUserParameters=1
目录,用户以及权限
#mkdir  /tools/zabbix-4/logs
#useradd  zabbix  -s  /sbin/nologin
#chown  -R  zabbix.zabbix  /tools/zabbix-4
#visudo
    zabbix    ALL=(ALL)    NOPASSWD:ALL
配置 zabbix 环境变量
#vim  /etc/profile.d/zabbix.sh
    export  ZABBIX_HOME=/tools/zabbix-4
    export  PATH=$ZABBIX_HOME/sbin:$ZABBIX_HOME/bin:$ZABBIX_HOME/lib:$PATH
#chmod  +x  /etc/profile.d/zabbix.sh
#source  /etc/profile.d/zabbix.sh
启动
/tools/zabbix-4/sbin/zabbix_agentd

windows

安装包

zabbix_agent-4.4.7-windows-amd64.zip

配置文件

        LogFile=c:\zabbix\logs\zabbix_agentd.log
        LogFileSize=500
        Server=192.168.2.187
        ListenPort=10050
        StartAgents=1
        ServerActive=192.168.2.187
        Hostname=windows--psm                ###agent.Hostname必须与 web 界面主机名称一致
        #HostnameItem=system.hostname            ###自动获取本机hostname
        #HostMetadata=Linux                        ###适用于自动注册,区分windows\Linux
        BufferSend = 10
        BufferSize = 150
        MaxLinesPerSecond = 100
        Timeout=30
        Include=c:\zabbix\zabbix_agentd.conf.d\*.conf
        UnsafeUserParameters=1

安装

cmd(管理员)
zabbix_agentd.exe  -i  -c  zabbix_agentd.conf        ------            安装 zabbix_agentd

zabbix_agentd.exe  -s  -c  zabbix_agentd.conf        ------            启动 zabbix_agentd

1,shell

#!/bin/bash
#date:2020-05-13
#user:Xu

#the shell id for zabbix-agent.services-discovery


COMMAND=$1                      #第一个传参实现函数的调用
SERVICE=$2                      #第二个传参对应相关服务关键词变量

case $COMMAND in
  (pid)
	#PID=$(sudo netstat  -tanp|grep ${SERVICE}|grep LISTEN|awk '{print $NF}'|awk -F'/' '{print $1}')
	PID=$(sudo ps  -ef|grep  ${SERVICE}|grep  -v  grep|grep  -v  services-discovery|awk '{print  $2}')
	echo  ${PID}
	;;
  (port)
	#PORT=$(sudo netstat  -tanp|grep ${SERVICE}|grep LISTEN|awk '{print $4}'|awk -F':' '{print $NF}')
	PID=$(sudo ps  -ef|grep  ${SERVICE}|grep  -v  grep|grep  -v  services-discovery|awk '{print  $2}')
	PORT=$(sudo netstat  -tanp|grep  ${PID}|grep  LISTEN|awk  '{print $4}'|awk  -F":" '{print $NF}')
	echo  ${PORT}
	;;
  (tcp_connect)
	PID=$(sudo ps  -ef|grep  ${SERVICE}|grep  -v  grep|grep  -v  services-discovery|awk '{print  $2}')
	PORT=$(sudo netstat  -tanp|grep  ${PID}|grep  LISTEN|awk  '{print $4}'|awk  -F":" '{print $NF}')
	TCP_Connect=$(sudo netstat  -tanp|grep ${PORT}|grep ESTABLISHED|wc -l)
	echo  ${TCP_Connect}
	;;
  (*)
	echo "Error command"
	;;
esac

2, 微信告警

#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#date:2018-12-29

import requests,sys,json
import urllib3
#urllib3.disable_warnings()

reload(sys)
sys.setdefaultencoding('utf-8')

def GetToken(Corpid,Secret):                            #  获取企业微信tokent
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid":Corpid,
        "corpsecret":Secret
    }
    r = requests.get(url=Url,params=Data,verify=False)
    Token = r.json()['access_token']
    return Token

def SendMessage(Token,User,Agentid,Subject,Content):    # 发送信息
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token    #消息发送接口
    Data = {
        "touser": User,                                 # 企业微信用户个人帐号ID
        #"toparty": Partyid                             # 企业微信部门ID,群发使用
        "msgtype": "text",                              # 发送信息文本类型
        "agentid": Agentid,                             # 企业微信应用ID
        "text": {                                       # 定义信息输出格式
            "content": Subject + '\n' +  Content
        },
        "safe": "0"
    }
    r = requests.post(url=Url,data=json.dumps(Data),verify=False)
    return r.text


if __name__ == '__main__':
    User = sys.argv[1]                                   # 脚本接收的第一个参数=用户个人ID 
    Subject = sys.argv[2]                                # 脚本接收的第二个参数=信息主题
    ls2 = sys.argv[3:]                                   # 脚本接收的第三个参数=信息内容
    Content = "'\n'".join(ls2)
    Corpid = "wwaf578248356e122e"                        # 企业微信企业ID
    Secret = "iv4gycJsj2B5UB4SxZ4TE7zHg-AqrmeqLF1JED-JMoc" # 企业微信应用认证密钥
    Agentid = "1000002"                                  # 企业微信应用ID
    #Partyid = "2"                                       # 企业微信部门ID 

    Token = GetToken(Corpid, Secret)
    Status = SendMessage(Token,User,Agentid,Subject,Content)
    print Status

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值