大做业之zabbix

一、二进制安装JDK(1.8):用于java-geteway
上传JDK到/usr/local/src/目录下,解压:php

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

二、添加环境变量html

[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   # 使配置文件当即生效

三、验证环境变量是否生效java

[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://www.javashuo.com/article/p-onjjtyzn-d.html 须要注意的是php的编译参数有点不一样,使用以下的php编译参数安装phpmysql

./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

若是出现如下错误:linux

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/

编译:nginx

make&& make install

若是编译过程出现以下错误:web

/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修改以下参数的值:sql

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

四、源码安装zabbix
依赖包数据库

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

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

[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,输入域名
大做业之zabbix
下一步,
大做业之zabbix
若是有出现fail的状况,修改php.ini里参数改为对应的值便可
配置完数据库信息后,一直下一步便可
大做业之zabbix
若是出现Unable to create the configuration file.
解决方法:
设置 web服务器用户在zabbix网页的conf/目录具备写权限,配置文件会自动保存。
至此,zabbix源码安装完成
一、zabbix配置中文语言
登录zabbix网页,默认,用户名admin,密码zabbix,点击administrator-user,点击admin用户,修改密码,Language选择chinese把 语言修改为中文,而后更新,保存,退出从新登录便可
二、图形界面中文乱码解决,修改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

三、建立自动发现规则,发出网络上的主机并监控
点击配置-自动发现-建立发现规则
大做业之zabbix

四、全部监控主机都须要安装zabbix-agent,编辑zabbix_agent.conf文件,修改以下内容

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

五、添加监控项目
需求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该选项。
一、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

二、编辑/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额外的脚本地址

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

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

四、在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

五、在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/

六、在zabbix网页界面添加相应模板便可

相关文章
相关标签/搜索