首页 > 其他 > 详细

大作业之zabbix

时间:2018-08-20 00:26:29      阅读:296      评论:0      收藏:0      [点我收藏+]
1、二进制安装JDK(1.8):用于java-geteway
上传JDK到/usr/local/src/目录下,解压:

[root@localhost src]# tar zxf jdk-8u181-linux-x64.tar.gz
[root@localhost src]# mv jdk1.8.0_181/ /usr/local/jdk1.8

2、添加环境变量

[root@localhost src]# vim /etc/profile                  #在最后面添加以下内容
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

[root@localhost src]# source /etc/profile   # 使配置文件立即生效

3、验证环境变量是否生效

[root@localhost src]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

源码安装LNMP环境
参考:http://blog.51cto.com/13736286/2135537 需要注意的是php的编译参数有点不同,使用如下的php编译参数安装php

./configure --prefix=/usr/local/php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --enable-mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-ldap --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --with-gettext --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=php-fpm --with-fpm-group=php-fpm --enable-opcache=no  --enable-ftp

如果出现以下错误:

configure: error: Cannot find ldap.h
安装 :
yum install -y openldap
yum install -y openldap-devel

configure: error: Cannot find ldap libraries in /usr/lib
解决办法:
cp -frp /usr/lib64/libldap* /usr/lib/

编译:

make&& make install

如果编译过程出现如下错误:

/usr/bin/ld: ext/ldap/ldap.o: undefined reference to symbol ‘ber_scanf‘
//usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1
解决办法:
编辑MakeFile
找到 开头是 ‘EXTRA_LIBS = ‘ 这一行 在结尾加上 ‘-llber‘ 然后再执行 make && make install

编译完成后编辑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
always_populate_raw_post_data = -1

4、源码安装zabbix
依赖包

yum install -y net-snmp net-snmp-devel fping unixODBC-devel openssl-devel OpenIPMI-devel libevent libevent-devel pcre-devel

创建zabbix用户,下载zabbix源码包并安装

[root@localhost src]# useradd zabbix -s /sbin/nologin
[root@localhost src]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.12/zabbix-3.4.12.tar.gz
[root@localhost src]# tar zxf zabbix-3.4.12.tar.gz
[root@localhost src]# cd zabbix-3.4.12
[root@localhost zabbix-3.4.12]# ./configure --prefix=/usr/local/zabbix-3.4.2 --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl
[root@localhost zabbix-3.4.12]# make && make install

mysql中创建zabbix库,并授权用户

mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to ‘zabbix‘@‘localhost‘ identified by ‘zabbix‘;

导入zabbix源码包中的数据到mysql,源码包在/usr/local/src下

[root@localhost ~]# cd /usr/local/src/zabbix-3.4.12/database/mysql/
[root@localhost mysql]# ll
总用量 4876
-rw-r--r-- 1 mysql mysql 2877497 7月  30 19:41 data.sql
-rw-r--r-- 1 mysql mysql 1978341 7月  30 19:41 images.sql
-rw-r--r-- 1 mysql mysql  134791 7月  30 19:41 schema.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < schema.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < images.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < data.sql

拷贝源码包的启动脚本到/etc/init.d

[root@localhost mysql]# cd /usr/local/src/zabbix-3.4.12/misc/init.d/fedora/core
[root@localhost core]# cp zabbix_* /etc/init.d/
[root@localhost core]# ln -s /usr/local/zabbix/etc/ /etc/zabbix    #把配置文件链接到/etc下

修改启动脚本

]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_server 
]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_agentd

修改zabbix服务端配置文件

[root@localhost core]# vi /etc/zabbix/zabbix_server.conf  #修改如下内容
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>       #数据库中zabbix用户的密码
DBSocket=/data/mysql/mysql.sock
Timeout=4
LogSlowQueries=3000

修改zabbix客户端配置文件

[root@localhost core]# vi /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1            # 被动模式中服务端或代理端的IP地址
ServerActive=127.0.0.1      # 主动模式中服务端或代理端的IP地址
Hostname=zabbix             # 当前客户端所在服务器的主机名;

复制源码包中zabbix站点web文件到nginx站点目录

cp -a /usr/local/src/zabbix-3.4.2/frontends/php/* /usr/local/nginx/html/

启动zabbix服务

/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start

访问zabbix页面,绑定windows的host,输入域名
技术分享图片
下一步,
技术分享图片
如果有出现fail的情况,修改php.ini里参数改成对应的值即可
配置完数据库信息后,一直下一步即可
技术分享图片
如果出现Unable to create the configuration file.
解决方法:
设置 web服务器用户在zabbix网页的conf/目录具有写权限,配置文件会自动保存。
至此,zabbix源码安装完成
1、zabbix配置中文语言
登陆zabbix网页,默认,用户名admin,密码zabbix,点击administrator-user,点击admin用户,修改密码,Language选择chinese把 语言修改成中文,然后更新,保存,退出重新登陆即可
2、图形界面中文乱码解决,修改zabbix网页文件的 fonts目录下的字体文件

]# yum install wqy-microhei-fonts -y
]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/nginx/html/fonts/DejaVuSans.ttf
或者把windows系统里的楷体常规上传到服务器上:C:\Windows\Fonts\simkai.ttf
]# cd /usr/local/nginx/html/fonts
]# rz simkai.ttf
]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
]# mv simkai.ttf DejaVuSans.ttf

3、创建自动发现规则,发出网络上的主机并监控
点击配置-自动发现-创建发现规则
技术分享图片

4、所有监控主机都需要安装zabbix-agent,编辑zabbix_agent.conf文件,修改如下内容

Server=192.168.118:109定义被动模式的server端
ServerActive=192.168.118.109定义主动模式的server端

5、添加监控项目
需求1,
监控各个主机基础指标,CPU,内存,硬盘,网卡流量成图,web站点的可用性
创建模板,

创建方式:链接 OS Linux模板 然后取消链接,删除多余的监控项
模板名 Template_Base 模板应用到的所有主机
监控项保留下面这几个CPU内存相关的监控项,其余的都可以删除掉,没有监控项的应用集也可以删除
Agent ping CPU user time Number of processes Number of running processes Processor load (1 min average per core) Total memory 

自动发现网卡和硬盘

把两个自动发现的更新时间修改为 30s 当图形中有了自动发现的图形后可以改回30m 或者1h
这两个自动发现会自动创建 网卡流量 和 硬盘状态 的图形

检测web站点的可用性

在zbx-server中写入一条 hosts:
echo ‘192.168.118.109 bbs.yuankeedu.com blog.yuankeedu.com‘ >> /etc/hosts
在zabbix的web页面选择 配置 -- 主机 -- zbx-server -- web监测 -- 右上角创建web场景
场景选项卡中填写
名称:web可用性检测
新的应用集: web_check
客户端:随意选择一个,就是模拟什么浏览器访问监测的站点
步骤选项卡填写:
点击步骤框中的添加添加一个步骤, 填写一个自定义的步骤名称 填写要检测的站点的URL: http://www.yuankeedu.com 填写最下面的状态码 200 点击最下边的添加按钮完成步骤的添加
点击添加按钮完成web场景的添加
再按照前面的步骤将其他两个web站点也添加上
添加完成过几十秒就可以在 监测中 -- web检测 中查看状态了

自定义监控项(监控80端口连接数)
需要到客户端定义脚本:

$ sudo vim /usr/local/sbin/estab.sh 
//内容如下
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED
给脚本授权:
$ sudo chmod 755 /usr/local/sbin/estab.sh
修改配置文件
$ sudo vim /etc/zabbix/zabbix_agentd.conf
//增加
UnsafeUserParameters=1  //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 

//自定义监控项的key为my.estab.count(也就是在监控项中需要填写的键值),后面的[*]里面写脚本的参数,如果没有参数则可以省略,如果有需要用逗号分隔,脚本为/usr/local/sbin/estab.sh
重启客户端的zabbix服务:

$ sudo systemctl restart zabbix-agent

到服务端验证,执行命令:

zabbix_get -s 192.168.14.103 -p 10050 -k ‘my.estab.count‘
0

-s:源地址
-p: 端口
-k: 键值

如上显示0即为没有任何连接。
进入zabbix服务器的web页面,给每一台web主机创建监控项和图形
然后创建触发器:

名称:web1:并发连接数
严重性:警告
表达式:{web1:my.estab.count.last(,30)}>100
点击最下边的添加按钮完成触发器的添加
再将这个触发器复制到其他web主机,修改一下名称

自定义监控项:检测Mysql队列,超过300报警(mysql主机)
在客户端开启自定义监控脚本。修改客户端的配置文件zabbix_agent.conf,加入过修改以下内容:

UnsafeUserParameters=1
UserParameter=process.count[*],/usr/local/sbin/process_count.sh

脚本

#!/bin/bash
# script name: process_count.sh
export  MYSQL_PWD=123456           #这里可以先定义密码,下面的命令就可以省略-p
process_count=`mysql -uroot  -e "SHOW FULL PROCESSLIST;" |wc -l`
echo $process_count

修改脚本权限,并重启zabbix-agent

sudo chmod 755 /usr/local/sbin/process_count.sh
systemctl restart zabbix-agent

进入zabbix网页,配置-主机-监控项-创建监控项
键值填process.count[*],就是上面自定义的键值,然后再为该项目创建触发项

自定义监控项:mysql慢查询日志,查询日志超过60条/分钟告警

修改/etc/my.cn 配置文件 加入以下内容, 开启慢查询日志 slow_query_log = ON slow_query_log_file = /data/mysql/slow.log long_query_time = 2 # 查询超过2秒就记录慢查询日志 3.重启MySQL服务 service mysqld restart

先修改zabbix-agent.conf,添加以下字段

UnsafeUserParameters=1                 #表示使用自定义脚本                 
UserParameter=slow.query.count[*],/usr/local/sbin/slow_query_count.sh     #定义键值和脚本存放路径

创建慢查询统计脚本sudo vim /usr/local/sbin/slow_query_count.sh

#!/bin/bash
# script name: slow_query_count.sh
slow_log=/data/mysql/dbm-slow.log
grep ‘timestamp‘ $slow_log | awk -F ‘=‘ ‘{print $2}‘ |awk -F ‘;‘ ‘{print $1}‘|sort -r > /tmp/timestamp.log
now=`sed -n ‘1‘p /tmp/timestamp.log`
alert_num=60
one_min_ago=$[$now-60]
num=0
##### 判断两个时间戳之前的差值
slow_query_sum() {
    if [ $1 -ge $2 ]
    then
        num=$[$num+1]
    else
    break
    fi
}
##### 获取在一分钟内的慢查询数

for n in `cat /tmp/timestamp.log`
do
    slow_query_sum $n $one_min_ago
done
##### 删除临时文件
rm -f /tmp/timestamp.log
# There are $num slow query in a minute.
echo $num

修改脚本权限,并重启zabbix-agent

sudo chmod 755 /usr/local/sbin/slow_query_count.sh
systemctl restart zabbix-agent

同上,然后在zabbix网页上添加自定义监控项,和触发器
zabbix使用jmx监控tomcat
前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项。
1、zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix-3.4.2。

[root@localhost fonts]# vi /usr/local/zabbix-3.4.2/sbin/zabbix_java/settings.sh   #修改如下字段的值
 LISTEN_IP="0.0.0.0"            //监听的服务器地址
 LISTEN_PORT=10052            //监听的端口
 PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址
 START_POLLERS=5
TIMEOUT=3

2、编辑/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址
DBHost=localhost                //连接的数据库地址
DBName=zabbix                //连接的数据库名称
DBUser=zabbix                //连接数据库的用户名
DBPassword=zabbix            //连接数据库密码
JavaGateway=192.168.118.109        //java网关地址,即server端ip地址
JavaGatewayPort=10052            //java网关监听端口
Timeout=20                    //超时时间
FpingLocation=/usr/sbin/fping    //fping命令绝对地址
LogSlowQueries=3000
AllowRoot=1                    //允许root启动
User=root                    //zabbix服务的启动用户
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    //zabbix额外的脚本地址

3、重启zabbix server服务,以及启动zabbix java支持服务。

/etc/init.d/zabbix_server restart
cd /usr/local/zabbix-3.4.2/sbin/zabbix_java && sh startup.sh

4、在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件。我的tomcat目录:/usr/local/tomcat/bin。

vi /usr/local/tomcat/bin/catalina.sh        #在开头添加如下内容,注意要加在第二行
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.118.110"

其中,hostname=192.168.118.110需要修改为agent部署的服务器地址。更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态。
[root@localhost fonts]# netstat -lnp|grep 12345
tcp6       0      0 :::12345                :::*                    LISTEN      13453/java 

5、在zabbix agent部署的tomcat服务器上,下载对应的java jmx监控的相关jar包并复制到tomcat对应的目录下。

wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/extras/catalina-jmx-remote.jar   #我的tomcat是8.5.32
cp catalina-jmx-remote.jar /usr/local/tomcat/lib/

6、在zabbix网页界面添加相应模板即可

大作业之zabbix

原文:http://blog.51cto.com/13736286/2161662

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!