赞
踩
Zabbix是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标,适用于任何IT基础架构、服务、应用程序和资源的解决方案
SERVER
基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。
tips:
Zabbix 的所有配置信息都存储在 Server和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。
数据库
WEB 界面
AGENT
PROXY
Java 网关
被监控: 即 Zabbix 监控的主机或设备
监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等
应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集
触发器Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过80%等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作
告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误 host—> items—> triggers --> action
Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问
模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:
使用模板是减少工作量并简化Zabbix配置的好方法。
模板分为内置模板和自定义模板
#解决依赖关系 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel libevent-devel java-1.8.0-openjdk-devel -y #建立管理用户 groupadd zabbix useradd -g zabbix zabbix #解压包 tar xf zabbix-4.0.30.tar.gz #编译安装主要组件 server agent java-gateway ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java make make install
客户端安转agent
./configure --prefix=/apps/zabbix --enable-agent
数据库可以安装在本地也可以分离
yum install mariadb-server.x86_64 -y systemctl start mariadb mysql_secure_installation 安全加固脚本 #输入当前密码 #修改root密码 #移除匿名用户 #移除测试数据库 #不让 root 远程登录 #刷新 mysql -uroot -p create database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by 'zabbix'; grant all privileges on zabbix.* to zabbix@localhost; set global log_bin_trust_function_creators = 1; quit;
导入zabbix数据库文件
cd /data/zabbix-4.0.30/database/mysql
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
#必须最后 导入 data.sql
安装web apapche
yum install httpd -y
systemctl start httpd
cd /data/zabbix-4.0.30/frontends/php/
cp -a /data/zabbix-4.0.30/frontends/php/ /var/www/html/zabbix/
# 将前端页面拷贝过去
#浏览器访问
ip/zabbix
修改zabbix配置
vim /apps/zabbix_server/etc/zabbix_server.conf
118 行修改 下 密码 其他不用修改
118 DBPassword= zabbix
grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix
LogSlowQueries=3000
准备service文件
vim /usr/lib/systemd/system/zabbix-server.service [Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf" EnvironmentFile=-/etc/default/zabbix-server Type=forking Restart=on-failure PIDFile=/tmp/zabbix_server.pid KillMode=control-group ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=infinity User=zabbix Group=zabbix [Install] WantedBy=multi-user.target chown zabbix:zabbix /apps/zabbix_server/ -R systemctl daemon-reload systemctl start zabbix-server.service systemctl status zabbix-server.service
升级php版本
yum install php-gettext php-xml php-net-socket php-gd php-mysql -y
修改php 软件的配置
vim /etc/php.ini
384 max_execution_time = 300
394max_input_time = 600
672 post_max_size = 16M
878 date.timezone = Asia/Shanghai
#改完 以后
systemctl restart httpd
192.168.10.101/zabbix
默认用户名:Admin
密码: zabbix
对nginx的活动连接和当前状态等运行状态进行监控
需要先安装好nginx
#修改nginx配置文件
vim /etc/nginx/nginx.conf
location /status {
stub_status;
}
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
curl 192.168.10.101/status
准备nginx监测脚本
vim /data/nginx.sh #!/bin/bash nginx_status_fun() { # 函数内容 NGINX_PORT=$1 # 端口,函数的第一个参数是端口号 NGINX_COMMAND=$2 # 命令,函数的第二个参数是命令 nginx_active() { # 获取nginx_active数量 /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Active connections' | awk '{print $3}' } nginx_reading() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Reading' | awk '{print $2}' } nginx_writing() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Writing' | awk '{print $4}' } nginx_waiting() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Waiting' | awk '{print $6}' } nginx_accepts() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $1}' } nginx_handled() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $2}' } nginx_requests() { /usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $3}' } case $NGINX_COMMAND in active) nginx_active ;; reading) nginx_reading ;; writing) nginx_writing ;; waiting) nginx_waiting ;; accepts) nginx_accepts ;; handled) nginx_handled ;; requests) nginx_requests ;; *) echo "Invalid command: $NGINX_COMMAND" ;; esac } main() { # 主函数内容 case $1 in nginx_status) nginx_status_fun $2 $3 ;; *) echo "Usage: $0 {nginx_status key}" ;; esac } main $1 $2 $3 #测试脚本 bash nginx.sh nginx_status 80 active 1 #第一个参数 nginx_status #第二个参数 80 端口 #第三个参数 active 获取的状态 #状态类型: #reading #writing #waiting #accepts #handled #requests
修改配置文件
vim /apps/zabbix/etc/zabbix_agentd.conf
UserParameter=nginx_status[*],/usr/bin/bash /data/nginx.sh $1 $2 $3
#在主服务器上测试
zabbix_get -s 192.168.91.102 -p 10050 -k "nginx_status["nginx_status","80","active"]"
1![请添加图片描述](https://i-blog.csdnimg.cn/direct/76024a892e844a44902f46aabf42dac8.png)
登入web上的zabbix创建自定义模版
创建自定义模版完成后就可以应用在nginx主机上了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。