zoukankan      html  css  js  c++  java
  • zabbix3.2.3安装部署

    安装nginx

    [root@xuegod64 ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel   //zlib:给Nginx提供gzip模块,需要的支持;OPenssl提供SSL功能;PCRE,地址重写

    [root@xuegod64 ~# tar xvf nginx-1.10.2.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.10.2

    [root@xuegod64 nginx-1.10.2]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module

    [root@xuegod64 nginx-1.10.2]# make && make install ;cd

    [root@xuegod64 ~]# useradd -u 8001 -M -s /sbin/nologin nginx

    [root@xuegod64 ~]# vim /usr/local/nginx/conf/nginx.conf

    #user nobody;

    user nginx nginx; #此行添加

    …… #下面这段内容,需要去掉注释,然后修改script_filename

    location ~ .php$ {

    root html;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;

    include fastcgi_params;

    }

    [root@xuegod64 ~]# /usr/local/nginx/sbin/nginx

    [root@xuegod64 ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

    [root@xuegod64 ~]# setenforce 0

    [root@xuegod64 ~]# service iptables stop

    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

    iptables: Flushing firewall rules:                         [  OK  ]

    iptables: Unloading modules:                               [  OK  ]

    [root@xuegod64 ~]# chkconfig iptables off

    安装mysql

    [root@xuegod64 ~]# yum remove -y mysql mysql-devel mysql-server

    [root@xuegod64 ~]# tar xvf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26

    [root@xuegod64 mysql-5.6.26]# useradd -u 8003 -M -s /sbin/nologin mysql

    [root@xuegod64 mysql-5.6.26]# yum install -y cmake

    [root@xuegod64 mysql-5.6.26]# yum -y install ncurses-devel

    [root@xuegod64 mysql-5.6.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql

    [root@xuegod64 mysql-5.6.26]# make -j 4 ; make install

    [root@xuegod64 mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/

    [root@xuegod64 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

    [root@xuegod64 mysql-5.6.26]# cp /usr/local/mysql/support-

    files/mysql.server /etc/init.d/

    [root@xuegod64 mysql-5.6.26]# cd ; vim /etc/init.d/mysql.server

    basedir=/usr/local/mysql

    datadir=/usr/local/mysql/data

    [root@xuegod64 ~]# chkconfig mysql.server on

    [root@xuegod64 ~]# /usr/local/mysql/scripts/mysql_install_db

    --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql

    --datadir=/usr/local/mysql/data --user=mysql

    [root@xuegod64 tmp]# ln -s /tmp/mysql.sock /var/lib/mysql/

    [root@xuegod64 tmp]# service mysql.server restart

     ERROR! MySQL server PID file could not be found!

    Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/xuegod64.com.pid).

    解决方法:

    [root@xuegod64 ~]# mv /etc/my.cnf /etc/my.cnf.backup

    [root@xuegod64 ~]# service mysql.server restart

     ERROR! MySQL server PID file could not be found!

    Starting MySQL. SUCCESS!

    [root@xuegod64 ~]# /usr/local/mysql/bin/mysql_secure_installation

    安装PHP

    [root@xuegod64 ~]#  tar xvf libmcrypt-2.5.8.tar.gz -C /usr/local/src/ ;

    cd /usr/local/src/libmcrypt-2.5.8/

    [root@xuegod64 libmcrypt-2.5.8]# ./configure

    --prefix=/usr/local/libmcrypt

    [root@xuegod64 libmcrypt-2.5.8]# make ; make install ; cd

    [root@xuegod64 ~]# tar xvf php-5.6.13.tar.bz2 -C /usr/local/src/ ;cd /usr/local/src/php-5.6.13/

    [root@xuegod64 php-5.6.13]# yum install -y php-pear libjpeg-devel libxml2 libxml2-devel curl curl-devel libpng-devel freetype-devel

    [root@xuegod64 php-5.6.13]# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf

    [root@xuegod64 php-5.6.13]# echo "/usr/local/libmcrypt/lib" >> /etc/ld.so.conf

    [root@xuegod64 php-5.6.13]# ldconfig

    [root@xuegod64 php-5.6.13]# echo "ldconfig" >> /etc/rc.local

    [root@xuegod64 php-5.6.13]# ./configure --prefix=/usr/local/php -with-config-file-path=/usr/local/php

    --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir

    --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath

    --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm

    --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets

    --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/libmcrypt --with-gettext

    [root@xuegod64 php-5.6.13]# make && make install

    [root@xuegod64 php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

    [root@xuegod64 php-5.6.13]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

    [root@xuegod64 php-5.6.13]# cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    [root@xuegod64 php-5.6.13]# chmod +x /etc/init.d/php-fpm ; cd

    [root@xuegod64 ~]# chkconfig --add php-fpm

    [root@xuegod64 ~]# chkconfig php-fpm on

    [root@xuegod64 ~]# echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

    [root@xuegod64 ~]# service php-fpm start

    Starting php-fpm  done

    安装zabbix

    Zabbix需要数据库的支持,而却Zabbix已经自带了数据库结构,images数据库和表数据等相关内容

    创建Zabbix使用数据库

    [root@xuegod64 ~]# mysql -uroot -p

    mysql> create database zabbix;

    mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

    mysql> flush privileges;

    mysql> exit

    [root@xuegod64 ~]# tar xvf zabbix-3.2.3.tar.gz -C /usr/local/src/ ;cd /usr/local/src/zabbix-3.2.3

    [root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

    [root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

    [root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

    如果在做分布式的环境中,Proxy服务器只需要一个数据库schema,代理者agent不需要数据库!Server必须三个数据库同时拥有

    Zabbix同时支持很多类型数据库

    编译安装zabbix

    [root@xuegod64 zabbix-3.2.3]# yum install -y net-snmp-devel     

    //net-snmp-config依赖

    [root@xuegod64 zabbix-3.2.3]# /usr/sbin/ntpdate ntp1.aliyun.com  

    //同步系统时间

    [root@xuegod64 zabbix-3.2.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent

    --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

    [root@xuegod64 zabbix-3.2.3]# make install ; cd

    [root@xuegod64 ~]# ls /usr/local/zabbix/

    bin  etc  lib  sbin  share

    [root@xuegod64 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

    DBHost=localhost #默认注释掉了,直接取消注释即可

    DBName=zabbix #数据库用户,我们授权的用户也是zabbix

    DBUser=zabbix #默认是root,我们授权的用户是zabbix

    DBPassword=zabbix #密码我们授权的也是zabbix

    监控Zabbix Server本身

    监控本身,意思是本身作为服务器之外,自己也做自己的客户端,也要使用agentd这个代理者

    配置文件中,有agentd和agent两个配置文件,前者是守护进程,后者依赖xinetd

    [root@xuegod64 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

    Server=127.0.0.1 #默认监控服务器自己,这三行不用改

    ServerActive=127.0.0.1

    Hostname=Zabbix server

    UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本

    其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被动后者是主动。也就是说前者允许127.0.0.1这个ip来我这取数据。而serverActive的127.0.0.1的意思是,客户端主动提交数据给他。

    启动服务

    [root@xuegod64 ~]# useradd -u 8005 -M -s /sbin/nologin zabbix

    //如果zabbix用户不存在,将以root运行,新建之后,如果zabbix存在,那么久直接可以用zabbix运行

    [root@xuegod64 ~]# /usr/local/zabbix/sbin/zabbix_server  //直接运行

    [root@xuegod64 ~]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local   //开机启动

    [root@xuegod64 ~]# netstat -antup | grep zabbix 

    tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      94837/zabbix_server

    bix_server

    [root@xuegod64 ~]# vim /etc/services

    zabbix-agent 10050/tcp       # Zabbix Agent

    zabbix-agent 10050/udp      # Zabbix Agent

    zabbix-trapper 10051/tcp     # Zabbix Trapper

    zabbix-trapper 10051/udp    # Zabbix Trapper

    通过启动脚本启动zabbix

    Zabbix默认有部分启动脚本,如果你自己也可以通过脚本的方式来实现,可以使用他的模板来实现

    脚本在源码目录的misc/init.d/下面(使用fedora下面的core即可,也可以使用fedroa core5的脚本均可)

    [root@xuegod64 ~]# cd /usr/local/src/zabbix-3.2.3/misc/init.d/

    [root@xuegod64 init.d]# cp fedora/core/zabbix_server /etc/init.d/

    [root@xuegod64 init.d]# cp fedora/core/zabbix_agentd /etc/init.d/

    [root@xuegod64 init.d]# vim /etc/init.d/zabbix_server

    BASEDIR=/usr/local/zabbix  #找到此行,并修改

    [root@xuegod64 init.d]# vim /etc/init.d/zabbix_agentd

    BASEDIR=/usr/local/zabbix  #找到此行,并修改

    [root@xuegod64 ~]# chkconfig --add zabbix_agentd

    [root@xuegod64 ~]# chkconfig zabbix_agentd on

    [root@xuegod64 ~]# chkconfig --add zabbix_server

    [root@xuegod64 ~]# chkconfig zabbix_server on

    [root@xuegod64 ~]# service zabbix_agentd start

    [root@xuegod64 ~]# service zabbix_server start

    编辑php页面控制文件

    默认配置文件没有写入到我们的Nagix的配置文件中,也就是不能加载到我们的zabbix页面目录

    [root@xuegod64 ~]# rm –rf /usr/local/nginx/html/*

    [root@xuegod64 ~]# cp -r /usr/local/src/zabbix-3.2.3/frontends/php/* /usr/local/nginx/html/

    [root@xuegod64 ~]# vim /usr/local/nginx/conf/nginx.conf

    location / {

    root html;

    index index.php index.html index.htm; #找到此行内容,添加index.php

    }

    重启服务

    [root@xuegod64 ~]# /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

    Gracefully shutting down php-fpm . done

    Starting php-fpm  done

    打开网页安装zabbix

    浏览器输入:http:// 192.168.134.131 如图,下一步Next

    [root@xuegod64 nginx]# vim /usr/local/php/php.ini

    post_max_size = 16M

    max_execution_time = 300

    max_input_time = 300

    date.timezone = Asia/Shanghai

    always_populate_raw_post_data = -1

    [root@xuegod64 nginx]# /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

    下一步,

    输入账户密码,下一步

    下一步,

    下一步,

    将下载的文件拷贝到/usr/local/nginx/html/conf/目录下

    点击Finish,完成安装!

    登陆Zabbix并配置

    登陆之后我们修改语言

    默认用户名和密码分别问admin,zabbix

    点击右上角,,Profile,然后选择语言

    已变成中文,如果所示,可到我们当前监控的本机(默认没有启动,点击后面红色的停用,则启用)

    导入中文字体字符集,文中的乱码问题就解决了

    [root@xuegod64 ~]# mv simkai.ttf /usr/local/nginx/html/fonts/

    [root@xuegod64 ~]# cd /usr/local/nginx/html/fonts/

    [root@xuegod64 fonts]# mv DejaVuSans.ttf /root/

    [root@xuegod64 fonts]# mv simkai.ttf DejaVuSans.ttf

    监控xuegod63网站服务器apache服务

    (http://showerlee.blog.51cto.com/2047005/1206875/)

    首先在本机下载模板:

    https://github.com/rdvn/zabbix-templates/archive/master.zip

    该zip包有apache、memcache、redis、varnish模板,我们解压后使用其中的apache模板

    安装agent

    [root@xuegod63 ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI

    [root@xuegod63 ~]# useradd -u 8002 -M -s /sbin/nologin zabbix

    [root@xuegod63 zabbix-3.2.3]# tar -zxvf zabbix-3.2.3.tar.gz -C /usr/local/src/ ; cd /usr/local/src/zabbix-3.2.3

    [root@xuegod63 zabbix-3.2.3]# ./configure --prefix=/usr/local/zabbix --enable-agent

    [root@xuegod63 zabbix-3.2.3]# make install ;cd

    [root@xuegod63 ~]# grep "chkconfig" /usr/local/src/zabbix-3.2.3/ -R --color

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_agentd:# chkconfig: - 90 10

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_agentd:# description:  Starts and stops Zabbix Agent using chkconfig

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_server:# chkconfig: - 90 10

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_server:# description:  Starts and stops Zabbix Server using chkconfig

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd:# chkconfig: - 95 5

    /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_server:# chkconfig: - 95 5

    [root@xuegod63 ~]# cp /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d

    [root@xuegod63 ~]# vim /etc/init.d/zabbix_agentd   

    //上一步生成了启动脚本,然后现在编辑脚本

    ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" #修改此行

    [root@xuegod63 ~]# chkconfig --add zabbix_agentd

    [root@xuegod63 ~]# chkconfig zabbix_agentd on

    [root@xuegod63 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

    //客户端操作

    Server=192.168.134.131 #zabbix server地址,可以多个,用,隔开

    ServerActive=192.168.134.131  #主动检查的意思,主动检查手机的数据的数据发送给Zabbix Server

    Hostname=xuegod64.cn

    UnsafeUserParameters=1

    启动服务

    [root@xuegod63 ~]# /etc/init.d/zabbix_agentd restart

    Stopping Zabbix Agent:                                     [FAILED]

    Starting Zabbix Agent:                                     [  OK  ]

    [root@xuegod63 ~]# netstat -antup | grep zabbix

    tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      8708/zabbix_agentd 

    打开apache的server-status:

    [root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf

    末行添加如下内容:

    ---------------------

    ExtendedStatus On

    <location /server-status>

       SetHandler server-status

       Order Allow,Deny

       Allow from all

    </location>

    保存后重启httpd服务

    [root@xuegod63 ~]# service httpd restart

    Stopping httpd:                                            [  OK  ]

    Starting httpd:                                            [  OK  ]

    zabbix配置:

    将下载下来的zip包内apache目录下的apache_status.sh上传到系统/usr/local/bin/下,并赋予

    执行权限

    [root@xuegod63 ~]# mv apache_status.sh /usr/local/bin/

    [root@xuegod63 ~]# cd /usr/local/bin/

    [root@xuegod63 bin]# chmod +x apache_status.sh

    修改zabbix_agentd.conf配置:

    [root@xuegod63 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

    末行添加如下内容:

    -------------

    UserParameter=apache[*],/usr/local/bin/apache_status.sh $1

    -------------  

    重启zabbix服务

    [root@xuegod63 ~]# pkill zabbix

    [root@xuegod63 ~]# /etc/init.d/zabbix_agentd start

    访问zabbix web后台导入模板

    访问zabbix-配置-模板,点击右上角的汇入

    访问zabbix-配置-模板,查看模板:

    创建apache服务器主机

    添加后,添加apache模板

    输入http://192.168.134.130多刷新几次就有数据了

    邮件报警

    sendEmail配置zabbix邮件报警

    1、下载sendEmail:

    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

    2、配置sendEmail:

     

    # yum -y install perl-Net-SSLeay perl-IO-Socket-SSL        # 安装组件

    # tar xf sendEmail-v1.56.tar.gz -C /usr/local/src/ ; cd /usr/src/sendEmail-v1.56/

    # cp -a sendEmail /usr/local/bin/

     

    3、测试命令行发送邮件:

    /usr/local/bin/sendEmail –f 5879555@163.com -t 549795534@qq.com -s smtp.163.com -u "test sendEmail" -o message-content-type=

    html -o message-charset=utf8 -xu 5879555@163.com -xp wdc123(此为163邮箱授权密码而非登陆密码) -m "hahaha"

    Aug 19 11:23:37 localhost sendEmail[17493]: Email was sent successfully!         # 发送成功返回此信息提示。

    4、发送邮件脚本:(/usr/local/zabbix/alertscripts/mail.sh   在/usr/local/zabbix/目录下新建alertscripts,并在zabbix_server.conf配置文件AlertScriptsPath定义/usr/local/zabbix/alertscripts/路径)

    #!/bin/bash

    export LANG=zh_CN.UTF8

    to=$1

    subject=$2

    body=$3

    /usr/local/bin/sendEmail -f 5879555@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 5879555@163.com -xp wdc123 -m "$body"

    # chmod +x mail.sh

     # chown –R zabbix.zabbix mail.sh

    脚本参数说明:

     

    -f:发件人邮箱

    -t:收件人邮箱

    -u:主题

    -o:选项

    -xu:用户名

    -xp:密码

    -m:邮件正文

     

    注:163、qq邮箱需要到设置下面生成授权码,用授权码代替密码才能成功发送邮件。

    通过命令发送邮件成功了,发送邮件脚本也写好了,并且放到zabbix_server配置文件指定的目录里,那么,我们接下来就可以通过zabbix web页面来配置邮件报警了。(可参照博客http://blog.csdn.net/xiegh2014/article/details/52118643)

    配置zabbix web管理页面添加报警

    配置报警媒介类型

    管理 --> 报警媒介类型  --> 创建媒体类型

    创建媒体类型

    添加(更新),

    添加用户,报警媒介

    新的触发条件选择主机,=,xuegod63

    操作,

    默认接收人:

    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

    默认信息:

    告警主机:{HOST.NAME}

    主机IP:  {HOST.IP}

    告警时间:{EVENT.DATE}  {EVENT.TIME}

    告警等级:{TRIGGER.SEVERITY}

    告警名称:{TRIGGER.NAME}

    问题详情:{ITEM.NAME}:{ITEM.VALUE}

    事件ID:  {EVENT.ID}

    恢复操作,

    默认接收人:

    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

    默认信息:

    告警主机:{HOST.NAME}

    主机IP:  {HOST.IP}

    告警时间:{EVENT.DATE}  {EVENT.TIME}

    告警等级:{TRIGGER.SEVERITY}

    告警名称:{TRIGGER.NAME}

    目前状态:{TRIGGER.STATUS}

    事件ID:  {EVENT.ID}

    报警URL: {TRIGGER.URL}

     

  • 相关阅读:
    https://pingcap.com/blog-cn/flame-graph/
    https://software.intel.com/sites/landingpage/pintool/docs/97998/Pin/html/
    http://boostorg.github.io/stacktrace/stacktrace/getting_started.html#stacktrace.getting_started.how_to_print_current_call_stack
    线程局部存储
    slice 切片实现 Slice object interface
    网络分裂 redis 集群
    vscode-sftp
    Sizes of integer types 整形字节长度 系统字节
    学件中心
    源码 版本
  • 原文地址:https://www.cnblogs.com/wangchunniu1314/p/6339666.html
Copyright © 2011-2022 走看看