server1:172.25.28.1 rhel7.3
server2:172.25.28.2 rhel6.3
server3:172.25.28.3 rhel6.3
一,nginx手动编写代码
1,安装nginx
[root@server2 ~]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm
2,修改配置文件
[root@server2 ~]# cd /etc/nginx/
[root@server2 nginx]# cd conf.d/
[root@server2 conf.d]# vim default.conf
注意: 1,stub_status是nginx的一个统计功能模块,利用nginx -V可以查看该模块是否安装,在浏览器输入ip/status就会显示nginx上次启动以来工作状态的统计的结果
2,关闭access_log,即不记录访问日志
3,只允许本地访问,拒绝所有
[root@server2 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server2 conf.d]# /etc/init.d/nginx start
Starting nginx: [ OK ]
3,访问测试
[root@server2 conf.d]# curl http://127.0.0.1/status 成功访问
Active connections: 1 #当前nginx正在处理的活动连接数
server accepts handled requests
2 2 8
Reading: 0 Writing: 1 Waiting: 0
accepts:处理的连接数
handled:成功创建的tcp握手数(没有失败的)
requests:总共处理的请求数
Reading: nginx读取到客户端的Header信息数.
Writing: nginx返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是nginx已经处理完成,正在等候下一次请求指令的驻留连接。
[root@server2 conf.d]# curl http://172.25.28.2/status 访问失败
The requested URL /status was not found on this server.
4,建立读取文件,仿照mysql的配置写
[root@server2 conf.d]# cd /etc/zabbix/
[root@server2 zabbix]# cd zabbix_agentd.d/
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
抓取数据测试
[root@server2 conf.d]# curl -s http://127.0.0.1/status | grep Active | awk '{print $NF}'
1
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
19
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
20
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
27
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $NF}' NF表示最后一列
可以理解为:键 键值
UserParameter=nginx.accepts,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}' NR表示行数
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
5,重启zabbix-agent
[root@server2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [FAILED]
Starting Zabbix agent: [ OK ]
如果在server1上没有启动zabbix-server,那么zabbix-agent会启动失败
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@server1 ~]# systemctl start zabbix-server
[root@server1 ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@server1 ~]# systemctl start zabbix-agent
[root@server1 ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@server2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
[root@server2 zabbix_agentd.d]# chkconfig zabbix-agent on
server1
1,安装软件获取键值
[root@server1 ~]# rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
2,测试获取键值
[root@server1 ~]# zabbix_get -s 172.25.28.2 -p 10050 -k 'nginx.active'
1
[root@server1 ~]# zabbix_get -s 172.25.28.2 -p 10050 -k 'nginx.accepts'
23
[root@server1 ~]# zabbix_get -s 172.25.28.2 -p 10050 -k 'nginx.handled'
24
[root@server1 ~]# zabbix_get -s 172.25.28.2 -p 10050 -k 'nginx.requests'
31
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl enable httpd
浏览器
1,创建图形,名字任意
2,选择要监控的参数
3,更新
4,查看图形>预览
二,Percona 数据库模版
1,安装percona-zabbix数据库模板
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
2,复制模板文件到agentd
[root@server1 percona]# cd /var/lib/zabbix/percona/scripts
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@server1 scripts]# cd /var/lib/zabbix/percona/templates
[root@server1 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# cat userparameter_percona_mysql.conf
这里面的内容都是键值,脚本,脚本变量的形式,这和我们编写的nginx脚本格式类似
3,用php写mysql的登录文件
[root@server1 scripts]# pwd
/var/lib/zabbix/percona/scripts
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
[root@server1 scripts]# cat ss_get_mysql_stats.php.cnf
5,重启服务,执行脚本,如果没有报错那么说明配置成功
[root@server1 zabbix_agentd.d]# systemctl restart zabbix-agent
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php ss_get_mysql_stats.php.cnf
[root@server1 scripts]# ./get_mysql_stats_wrapper.sh gg
4
6,删除脚本执行的临时文件
[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
localhost-mysql_cacti_stats.txt
systemd-private-495ab6c76b754929a96d02da3c3e7ccc-httpd.service-ljwgWj
systemd-private-495ab6c76b754929a96d02da3c3e7ccc-mariadb.service-vXoIt6
systemd-private-6ba4990530d24e25821ca28fcdb461dd-httpd.service-QjYtKU
systemd-private-6ba4990530d24e25821ca28fcdb461dd-mariadb.service-B0Xptz
[root@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt 必须要删除
7,测试,获取键对应的值
[root@server1 tmp]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_percona_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_percona_mysql.conf
UserParameter=MySQL.Threads-connected,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh iu
[root@server ~]# systemctl restart zabbix-agent
[root@server1 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k 'MySQL.Threads-cached'
0
客户端下载模块
zbx_percona_mysql_template.xml
浏览器添加模块
1,右上角导入
2,选择模块,模块的位置
3,按照官方的要求,添加聚合图形
4,点击导入,模板导入如下
5,主机>模块
6,选择模块Percona MYSQL模块,更新
7,主机>图形>预览
三,java模块--JMX
http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
server2
1,安装jdk和tomcat
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ln -s apache-tomcat-7.0.90/ tomcat
2,测试启动tomcat
[root@server2 local]# cd tomcat/bin
[root@server2 bin]# ls
bootstrap.jar configtest.bat setclasspath.sh tomcat-native.tar.gz
catalina.bat configtest.sh shutdown.bat tool-wrapper.bat
catalina.sh daemon.sh shutdown.sh tool-wrapper.sh
catalina-tasks.xml digest.bat startup.bat version.bat
commons-daemon.jar digest.sh startup.sh version.sh
commons-daemon-native.tar.gz setclasspath.bat tomcat-juli.jar
[root@server2 bin]# ./startup.sh 尝试启动
Tomcat started.
[root@server2 bin]# netstat -antlp 查看端口看是否成功启动
3,修改catalina.sh脚本文件
[root@server2 bin]# vim catalina.sh
官网查看 http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
指定端口为8888
4,重启
[root@server2 bin]# ./shutdown.sh
[root@server2 bin]# ./startup.sh
Tomcat started.
[root@server2 bin]# netstat -antlp | grep :8888 查看java端口
tcp 0 0 :::8888 :::* LISTEN 14097/java
server1
1,安装java-gateway,这个网关不会对网路造成影响
[root@server1 ~]# yum install -y zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# ls
web zabbix_agentd.d zabbix_java_gateway_logback.xml
zabbix_agentd.conf zabbix_java_gateway.conf zabbix_server.conf
2,启动zabbix-java-gateway,默认端口是10052
[root@server1 zabbix]# systemctl start zabbix-java-gateway
[root@server1 zabbix]# netstat -antlp | grep 10052
tcp6 0 0 :::10052 :::* LISTEN 13196/java
3,修改zabbix-server服务的配置文件
[root@server1 zabbix]# vim zabbix_server.conf
5是并发连接数,在zabbix_java_gateway.conf里可以看到说明
4,重启zabbix-server
[root@server1 zabbix]# systemctl restart zabbix-server
浏览器
1,主机添加JMX接口,更新
2,主机>模版
3,选择添加通用性的JMX,tomcat的功能少
4,更新
5,等待JMX变成绿色才算成功
6,查看图形
注意:查看图形的方法
选择主机>图形>列出的全部都是可以查看的图>点击名称>预览
四,onealert云报警平台
http://wiki.onealert.com/integration/zabbix-new.html
1,注册onealert
2,添加应用获取key,我们采用zabbix监控应用
3,添加通知策略
4,真机可以上网的前提下,把虚拟机配置为可以上网
[root@foundation28 pub]# iptables -t nat -I POSTROUTING -s 172.25.28.0/24 -j MASQUERADE
[root@server1 zabbix_agentd.d]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.25.28.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@server1 zabbix_agentd.d]# route add default gw 172.25.28.250
[root@server1 zabbix_agentd.d]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.28.250 0.0.0.0 UG 0 0 0 eth0
172.25.28.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@server1 zabbix_agentd.d]# vim /etc/resolv.conf
[root@server1 zabbix_agentd.d]# cat /etc/resolv.conf
nameserver 114.114.114.114
[root@server1 zabbix_agentd.d]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=51 time=52.7 ms
3,查看报警脚本的路径AlertScriptsPath,安装oneitsm_zabbix软件
[root@server1 zabbix_agentd.d]# vim /etc/zabbix/zabbix_server.conf
直接搜索AlertScriptsPath
[root@server1 zabbix_agentd.d]# cd /usr/lib/zabbix/alertscripts
[root@server1 alertscripts]# ls 注意下载的路径
lftp 172.25.28.250:/pub> get oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 alertscripts]# tar zxf oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 alertscripts]# ls
oneitsm oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 bin]# ls
alert.sh install.sh log.sh update.sh
[root@server1 bin]# ./install.sh 72facccf-994e-33d2-42ad-a62171d8cd09
注意:这个脚本后面跟的字符是zabbix的key值
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: http://172.25.28.1/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码: #zabbix登录密码
start to auth by zabbix admin user and password...
create action success!
安装成功.
浏览器:
1,启用oneitsm action
2,在管理>动作里面可以看到调用了api接口
3,报警媒介类型禁用以下,因为没有配置,避免造成干扰
4,查看oneitsm用户:
智能报警测试:
关闭zabbix-agent
[root@server2 bin]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent: [ OK ]
在监控>问题里面查看
同时会执行onealert中的通知策略
启动zabbix-agent
[root@server2 bin]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
问题解决!
五,主动模式
浏览器
1,选择该模板
2,全克隆模板,修改名称
3,添加
4,选者监控项,全部选中,批量更新
5,修改类型为主动式,更新
主动模式模板创建成功!
server3
1,安装zabbix-agent
[root@server3 ~]# rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm
[root@server3 ~]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
2,修改zabbix-agent服务配置文件
[root@server3 zabbix]# vim zabbix_agentd.conf
注释Server=127.0.0.1
设置为0,看不到端口信息
zabbix-server所在ip
注意做好解析
3,启动zabbix-agent,查看不到10050端口
[root@server3 zabbix]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
[root@server3 zabbix]# netstat -antlupe
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8154 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 8376 971/master
tcp 0 0 172.25.28.3:22 172.25.28.250:58882 ESTABLISHED 0 9063 1372/sshd
tcp 0 0 :::22 :::* LISTEN 0 8156 895/sshd
tcp 0 0 ::1:25 :::* LISTEN 0 8378 971/master
4,重新修改zabbix-agent的配置文件
[root@server3 zabbix]# vim zabbix_agentd.conf
5,重启服务,查看到10050端口
[root@server3 zabbix]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
[root@server3 zabbix]# netstat -antlupe
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8154 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 8376 971/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 498 9695 1486/zabbix_agentd
tcp 0 0 172.25.28.3:22 172.25.28.250:58882 ESTABLISHED 0 9063 1372/sshd
tcp 0 0 :::22 :::* LISTEN 0 8156 895/sshd
tcp 0 0 ::1:25 :::* LISTEN 0 8378 971/master
tcp 0 0 :::10050 :::* LISTEN 498 9696 1486/zabbix_agentd
浏览器
1,主机>创建主机>添加
主机名server3,ip 172.25.28.3 端口 10050
2,模板,选择之前我们自己创建的模板,添加,更新
3,等待sevrer3被发现
成功!!
六,Agent代理
https://www.zabbix.com/documentation/3.4/manual/appendix/install/db_scripts
1,浏览器删除server3,停止zabbix-agent服务
[root@server3 ~]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent: [ OK ]
2,安装zabbix-proxy代理软件和依赖
[root@server3 ~]# yum install zabbix-proxy-mysql-3.4.6-1.el6.x86_64.rpm fping-2.4b2-16.el6.x86_64.rpm -y
3,安装数据库,启动数据库
[root@server3 zabbix]# yum install -y mysql-server
[root@server3 zabbix]# /etc/init.d/mysqld start
4,修改配置文件
[root@server3 zabbix]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_proxy.conf zabbix_agentd.conf zabbix_agentd.d
[root@server3 zabbix]# vim zabbix_proxy.conf
5,数据库建立用户授权
[root@server3 zabbix]# mysql
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)
6,导入数据
[root@server3 doc]# cd zabbix-proxy-mysql-3.4.6/
[root@server3 zabbix-proxy-mysql-3.4.6]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@server3 zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password:
[root@server3 zabbix-proxy-mysql-3.4.6]#
7,启动代理软件
[root@server3 zabbix-proxy-mysql-3.4.6]# /etc/init.d/zabbix-proxy start
Starting Zabbix proxy: [ OK ]
浏览器:
1,打开server2的zabbix-agent服务,并让zabbix发现server2
2,创建代理
3,代理server2
4,此时可以看到,只不过server3:server2的ZBX是红色状态,需要进行如下配置
5,修改sever2的配置文件
[root@server2 zabbix]# vim zabbix_agentd.conf
由于我们是通过server3代理,所以这里需要做修改
[root@server2 zabbix]# /etc/init.d/zabbix-agent restart