官网下载地址:www.zabbix.com/downloadphp
下载并安装:java
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
修改MySQL配置文件/etc/my.cnf,增长一行内容:mysql
character_set_server = utf8linux
而后重启mysqld服务,进入mysql命令行,建立zabbix库和用户,并导入数据。ios
退出mysql,而后导入数据:nginx
cd /usr/share/doc/zabbix-server-mysql-3.2.11/ gzip -d create.sql.gz mysql -uroot -p'123456' zabbix < create.sql
启动httpd服务:web
systemctl start httpd; systemctl enable httpd /若是报错,通常是80端口被占用,关闭nginx便可。
编辑zabbix的配置文件:sql
vim /etc/zabbix/zabbix_server.conf 在DBName=zabbix上面增长一行:DBHost=127.0.0.1 在DBuser下面增长一行:DBPassword=zabbix
保存后退出,启动zabbix服务:数据库
systemctl start zabbix-server /启动zabbix systemctl enable zabbix-server /开机启动
能够看到zabbix服务端监听的端口是10051:apache
[root@jin-120 zabbix-server-mysql-3.2.11]# netstat -lntp |grep zabbix tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 3113/zabbix_server tcp6 0 0 :::10051 :::* LISTEN 3113/zabbix_server
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm yum install -y zabbix-agent 修改配置文件:vim /etc/zabbix/zabbix_agentd.conf Server=127.0.0.1修改成Server=192.168.6.120 //定义服务端的ip(被动模式) ServerActive=127.0.0.1修改成ServerActive=192.168.6.120 //定义服务端的ip(主动模式) Hostname=Zabbix server修改成Hostname=jin-123 //这是自定义的主机名,一会还须要在web界面下设置一样的主机名 systemctl start zabbix-agent systemctl enable zabbix-agent
查看zabbix-agent监听的端口,能够发现,客户端监听的端口是10050:
[root@jin-123 src]# netstat -lntp |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1731/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 1731/zabbix_agentd
至此,Zabbix服务端和客户端安装均已完成。
在服务端(120)上查看文件vim /usr/share/zabbix/include/defines.inc.php,搜索ZBX_FONTPATH
它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont
windows字体路径为“C:\Windows\Fonts\”,找到“simhei.ttf”(其实就是那个黑体简体),先把它复制到桌面上,而后上传到linux的/usr/share/zabbix/fonts/,而且更名为graphfont.ttf。
mv /root/simhei.ttf /usr/share/zabbix/fonts/ mv graphfont.ttf graphfont.ttf.bak ln -s simhei.ttf graphfont.ttf [root@jin-120 fonts]# ll 总用量 9524 lrwxrwxrwx 1 root root 10 1月 19 22:09 graphfont.ttf -> simhei.ttf lrwxrwxrwx 1 root root 33 1月 19 11:28 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font -rw-r--r-- 1 root root 9751960 6月 11 2009 simhei.ttf
此时再刷新图形界面,就能够看到中文正常显示了。
点击配置-自动发现-建立发现规则 名称:自动发现网络主机(自定义),IP范围:192.168.0.1-254,检查类型:SSH,而后点”添加“。
(1)监控各个主机基础指标,CPU,内存,硬盘,网卡流量成图,web站点的可用性 。
添加主机:
先添加主机组zhangjin-test,再添加主机,建立主机,主机名称和可见名称都写jin-123,群组选择zhangjin-test ,IP地址填写客户端的ip 192.168.6.123
建立模板:
模板名称:test,群组选择Templates,连接的模板选择Template OS Linux,而后点添加,再选择“取消连接”,点更新。
自动发现网卡和硬盘 :
把两个自动发现的更新时间修改成 30s, 当图形中有了自动发现的图形后能够改回30m 或者1h。
这两个自动发现会自动建立网卡流量和硬盘状态的图形。
检测web站点的可用性 :
在zbx-server中写入一条 hosts:
echo '192.168.6.123 www.test-zabbix.com' >> /etc/hosts
在zabbix的web页面选择 配置 -- 主机 -- zbx-server -- web监测 -- 右上角建立web场景
场景选项卡中填写
名称:web可用性检测
新的应用集: web_check
客户端:随意选择一个,这里选择的是“Chrome 38.0(Windows)”
步骤选项卡填写:
点击步骤框中的添加,添加一个步骤, 填写一个自定义的步骤名称 填写要检测的站点的URL: http://www.baidu.com 填写最下面的状态码 200 ,点击最下边的添加按钮完成步骤的添加。
点击添加按钮完成web场景的添加。
再按照前面的步骤将web站点也添加上。
添加完成过几十秒就能够在监测中 -- web检测 中查看状态了。
(2)监控web服务器(80端口)的并发链接数 。
在客户端目录/usr/local/sbin下编写一个名为estab.sh的脚本,内容以下:
#!/bin/bash ##获取80端口并发链接数 netstat -ant |grep ':80 ' |grep -c ESTABLISHED
授授予755权限
chmod 755 /usr/local/sbin/estab.sh
再编辑zabbix客户端的配置文件:vim /etc/zabbix/zabbix_agentd.conf,搜索UnsafeUserParameters,去掉前面的#号,并把0改成1,再搜索UserParameter,去掉前面的#号,并在后面加上=my.estab.count[*],/usr/local/sbin/estab.sh,保存后退出并重启客户端的zabbix服务:
systemctl restart zabbix-agent
再到服务端执行如下命令进行验证:
[root@jin-120 ~]# zabbix_get -s 192.168.6.123 -p 10050 -k 'my.estab.count' 0 其中,参数-s表示源地址,-p表示端口,-k表示键,结果为0,表示没有任何链接。
进入zabbix服务器的web页面,给主机建立监控项,名字为“并发链接数”,键值为“my.estab.count”,其余保持默认。
再给主机建立图形,名字为“并发链接数”,监控项添加并发链接数,,而后添加。
再选择触发器,建立触发器,表达式为“{jin-123:my.estab.count.last()}>100”,其余默认,而后保存。
(3)检测Mysql队列,超过300报警
在客户端中进入目录/usr/local/sbin,编写名称为process_count.sh的脚本,内容以下:
[root@jin-123 ~]# cd /usr/local/sbin [root@jin-123 sbin]# vim process_count.sh #!/bin/bash export MYSQL_PWD=123456 process_count=`mysql -uroot -e "SHOW FULL PROCESSLIST" |wc -l` echo $process_count
保存并赋予x权限后,修改客户端的配置文件zabbix_agentd.conf,搜索UserParameter,并将其路径更改成:process.count[*],/usr/local/sbin/process_count.sh,而后重启zabbix客户端:
systemctl restart zabbix-agent
在浏览器进入zabbix网页,选择“配置”-->“主机”-->“监控项”-->“建立监控项”
名称写“检测Mysql队列”,键值填写“process.count[*]”,其余默认,而后点“添加”。
再选择“配置”-->“主机”-->“触发器”-->“建立触发器”
名称为“jin-123: 检测Mysql队列”,严重性选择“警告”,表达式为“{jin-123:process.count[*].last()}>300”,而后点“添加”便可。
(4)监控mysql的慢查询日志,每分钟超过60条日志须要告警。
客户端中进入目录/usr/local/sbin,编写名称为slow_query_count.sh的脚本,内容以下:
#!/bin/bash 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
保存后赋予x权限,而后更改配置文件zabbix-agentd.conf,搜索UserParameter,将其路径改成:slow.query.count[*],/usr/local/sbin/slow_query_count.sh,再重启zabbix-agent服务。
systemctl restart zabbix-agent
在浏览器进入zabbix网页,选择“配置”-->“主机”-->“监控项”-->“建立监控项”
名称写“Mysql的慢查询日志”,键值填写“slow.query.count[*]”,其余默认,而后点“添加”。
再选择“配置”-->“主机”-->“触发器”-->“建立触发器”
名称为“jin-123: Mysql的慢查询日志”,严重性选择“警告”,表达式为“{jin-123:slow.query.count[*].last()}>60”,而后点“添加”便可。
(5)利用jmx,在zabbix上监控tomcat
以前的zabbix安装方式是yum安装的,咱们再用源码包安装,进入目录/usr/local/src,下载zabbix安装包,解压并编译安装:
[root@jin-120 src]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.12/zabbix-3.4.12.tar.gz [root@jin-120 src]# tar zxf zabbix-3.4.12.tar.gz [root@jin-120 src]# cd zabbix-3.4.12 [root@jin-120 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 --enable-java [root@jin-120 zabbix-3.4.12]# make [root@jin-120 zabbix-3.4.12]# make install
安装完成后,编辑文件/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" START_POLLERS=5 TIMEOUT=3
编辑zabbix服务端的配置文件/usr/local/zabbix-3.42/etc/zabbix_server.conf,内容以下:
LogFile=/tmp/zabbix_server.log //指明zabbix_server的日志文件地址 DBHost=localhost //链接的数据库地址 DBName=zabbix //链接的数据库名称 DBUser=zabbix //链接数据库的用户名 DBPassword=zabbix //链接数据库密码 JavaGateway=192.168.6.120 //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/zabbix3.4.2/share/zabbix/alertscripts //zabbix额外的脚本地址
拷贝源码包的启动脚本到/etc/init.d
[root@jin-120 zabbix-3.4.12]# cd /usr/local/src/zabbix-3.4.12/misc/init.d/fedora/core [root@jin-120 core]# ls zabbix_agentd zabbix_server [root@jin-120 core]# cp zabbix_* /etc/init.d/ [root@jin-120 core]# ln -s /usr/local/zabbix-3.4.2/etc/ /etc/zabbix
修改启动脚本:
[root@jin-120 core]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_server [root@jin-120 core]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_agentd
重启zabbix server服务,以及启动zabbix java支持服务
[root@jin-120 core]# /etc/init.d/zabbix_server restart Reloading systemd: [ 肯定 ] Restarting zabbix_server (via systemctl): [ 肯定 ] [root@jin-120 core]# cd /usr/local/zabbix-3.4.2/sbin/zabbix_java && sh startup.sh
修改tomcat的配置文件/vim /usr/local/tomcat/bin/catalina.sh,在第2行添加如下内容:
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.6.123"
重启tomcat应用服务器,同时查看端口12345是否处于监听状态。
[root@jin-120 bin]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@jin-120 bin]# netstat -lntp |grep 12345 tcp6 0 0 :::12345 :::* LISTEN 27241/java
下载对应的java jmx监控的相关jar包并复制到tomcat对应的目录下。
[root@jin-120 tomcat]# cd /usr/local/src [root@jin-120 src]# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/extras/catalina-jmx-remote.jar [root@jin-120 src]# cp catalina-jmx-remote.jar /usr/local/tomcat/lib/
而后在zabbix网页中添加对应的模板便可。