1.安装nginx 服务
rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm
2.编辑nginx的配置文件cd /etc/nginx/conf.d/
vim default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /status {
stub_status on;
# Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure –with-http_stub_status_module
access_log off;
# 关闭日志记录
allow 127.0.0.1; # 只允许本机访问
deny all;
}
3.利用curl http://127.0.0.1/status访问nginx用来做测试
4.过滤监控参数(访问次数,连接次数等等)
curl -s http://127.0.0.1/status | grep Active | awk ‘{print $NF}’
将过滤出来的参数以key—value键值对的形式存储:
cd /etc/zabbix/zabbix_agentd.d
cp userparameter_mysql.conf userparameter_nginx.conf # 利用监控mysql服务的配置文件模版复制一份给nginx服务
vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $NF}' # 获取连接数
UserParameter=nginx.accepts,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}' # 获取接受请求数
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 ,可以在监控主机中监控
/etc/init.d/zabbix-agent start
6.在监控主机中(server1)中安装rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key是否能正常获取到数据,在测试自定义监控的时候特别有用
获取agent端的键值:zabbix_get -s 172.25.1.4 -p 10050 -k ‘nginx.active’
7.在zabbix网页中加入监控项和图形,开始检测
(1)选择监控主机
(2)添加监控项(可多次添加)
(3)添加监控图形
在server1(zabbix监控端)中:
1.安装percona-zabbix模版
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
2.拷贝userparameter_percona_mysql.conf 文件到被监控的mysql服务器上(此时也是server1主机)
cd /var/lib/zabbix/percona/templates
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
3.测试percona的脚本,过滤监控项有190个
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg # 测试脚本
cd /etc/zabbix/zabbix_agentd.d
cat userparameter_percona_mysql.conf # 监控项
systemctl restart zabbix_agent
4.由于percona的监控脚本是使用php写的,所以需要准备好php运行环境,这里直接用yum安装.安装完成后将zabbix的数据库和密码写入php脚本中…
yum install php php_fpm
vim ~zabbix/.my.cnf
[client]
user = root
password =jay
systemctl restart zabbix-agent
5.在zabbix的web端导入模版
在模版库中查看:
可以尝试在让某台主机使用该模版,添加进去则为成功:
1.在server4(agent的客户端)上安装tomcat和jdk,并打开tomcat
rpm -ivh jdk-8u121-linux-x64.rpm
tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
cd /usr/local/
ln -s apache-tomcat-7.0.90/ tomcat # 做软连接
cd bin/
./startup.sh
netstat -antlp
查看8080端口是否被打开:
2.向tomcat中添加JMX的参数
—–JMX全称Java Management Extensions, 为Java应用提供管理扩展功能
vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
# 监听端口号,方便远程访问
-Dcom.sun.management.jmxremote.ssl=false
# 是否对连接开启SSL加密,默认开启
-Dcom.sun.management.jmxremote.authenticate=false'
# 是否需要开启用户认证,默认开启
# OS specific support. $var _must_ be set to either true or false.
./shutdown.sh
./startup.sh # 重新启动tomcat
3.在server1(zabbix服务端)上:
yum install zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm
systemctl start zabbix-java-gateway
4.在zabbix的web界面
(1)选择监控主机
(2)添加模版
当我们在zabbix设置好了种种需要监控的主机和服务时,如果某个服务出错需要人为解决,那么我们怎样才能第一时间得知,有一个很好的告警系统—one alter云告警系统来及时将告警信息通知到我们..
1.在zabbix的配置文件中查看zabbix的监控告警目录
vim /etc/zabbix/zabbix_server.conf
2.获取应用key
(1)登陆云告警系统(www.oneitem.com)并设置个人信息,如果需要告警发送到微信,则需要绑定微信
(2)在配置—>应用—->添加应用—–>zabbix
3.在zabbix的监控告警目录下解压安装告警软件(必须在该路径下,否则会报错,告警不能及时送达)
tar zxf oneitsm_zabbix_release-1.2.0.tar.gz
cd oneitsm/bin/
./install.sh 17fbfa27-5581-c92b-da67-1d90f2832bb6 # 利用应用key安装
4.在zabbix的web界面中添加告警媒介
管理—–>告警媒介类型—–>创建媒体类型(右上角)
5.排除别的可以触发告警的告警源(在该实验环境下,我们监控的mysql数据库没有slave端,这时可以触发告警的,所以我们需要将与mysql的slave相关的全部禁用)
6.查看告警用户
7.触发器触动告警条件
8.测试:在server4端关闭zabbix-agent
过了告警处理时间,告警系统会根据你设定的告警媒介发送告警消息,同时在告警系统中也可以看到告警情况,当有人认领该告警接着处理告警后,也会在告警系统中送达,:
在zabbix的web端也可以看到告警的处理情况: