知识点
1.查找一个目录下最近30天没被改动过的所有文件:
find 目录 -mtime +30
2.临时加网关:
route add default gw 172.25.254.100
安装zabbix服务端
server1(172.25.254.1 系统redhat7.3):
查看yum仓库中的php版本:
[root@server1 ~]# yum list php
...
php.x86_64 5.4.16-42.el7 @rhel7.3
#一会安装zabbix时依赖性里面需要的所有php插件都必须保持和这个版本一致
#访问官网https://www.zabbix.com/download,可以根据官网给出的步骤安装zabbix
#安装zabbix3.0的yum仓库
rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
或者
链接:https://pan.baidu.com/s/1Bf6OPAcSQ9AQPgvvWyMvPw
提取码:ebco
#在线安装zabbix
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
#提示找不到php-bcmath php-mbstring,去其他网站(如https://pkgs.org/)下载这两个包并安装,版本号一定要是5.4.16-42.el7才行(和本机yum仓库中的php版本一致)
链接:https://pan.baidu.com/s/1WCOauNNvIDadDC9l1cFpiA #链接提供的是3.4.6版本的zabbix,注意后面zcat操作的时候选择的目录版本号,以及zabbix客户端安装的版本要一致
提取码:7z9q
yum localinstall -y php-bcmath-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm
#现在安装zabbix就可以在线安装成功了
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
Tip:
#安装zabbix之前先修改yum配置文件
vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 #将这里修改为1,表示保留yum安装时从网上下载的包
#安装完zabbix之后可以看到/var/cache/yum/x86_64/7Server目录下有安装zabbix的包和依赖包,将这些包复制出来下次就可以离线安装了
[root@server1 packages]# ls /var/cache/yum/x86_64/7Server/zabbix/packages/zabbix-agent-3.4.7-1.el7.x86_64.rpm
zabbix-server-mysql-3.4.7-1.el7.x86_64.rpm
zabbix-web-3.4.7-1.el7.noarch.rpm
zabbix-web-mysql-3.4.7-1.el7.noarch.rpm
[root@server1 packages]# ls /var/cache/yum/x86_64/7Server/zabbix-non-supported/packages/
fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm
#安装数据库
yum install -y mariadb-server mariadb
systemctl start mariadb
mysql_secure_installation #初始化数据库(回车->输密码->一路回车)
mysql -predhat
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; #创建zabbix库,并使zabbix库支持utf8格式
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat'; #创建zabbix库和zabbix用户,并给它使用zabbix库的权限
MariaDB [(none)]> flush privileges;
#使用zcat在线查看zabbix给出的数据库压缩文件并导入zabbix库
zcat /usr/share/doc/zabbix-server-mysql-3.4.7/create.sql.gz |mysql -uzabbix -predhat zabbix
#修改php时区
vim /etc/php.ini
878 date.timezone = Asia/Shanghai
#修改zabbix配置文件
vim /etc/zabbix/zabbix_server.conf
107 DBUser=zabbix
115 DBPassword=redhat
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#开启zabbix服务
systemctl start zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd mariadb
#服务端的日志在/var/log/zabbix/zabbix_server.log
访问172.25.254.1/zabbix完成安装:
#mysql中设置的用户是zabbix密码是redhat
#默认用户名Admin密码zabbix(Admin是超级用户)
#点击可以修改系统语言
安装zabbix客户端
server2(172.25.254.2 系统redhat6.5):
.el6版本客户端下载地址:http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/
链接:https://pan.baidu.com/s/1Pc9n6gz8sptug9XfKxV0Pg
提取码:y2yf
rpm -ivh zabbix-agent-3.4.7-1.el6.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf #修改客户端配置文件
97 Server=172.25.254.1
138 ServerActive=172.25.254.1
149 Hostname=server2
vim /etc/hosts #做好解析,同时server1也要做解析
172.25.254.2 server2
#关闭防火墙:
service iptables stop
chkconfig iptables off
/etc/init.d/zabbix-agent start
netstat -antpl |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1170/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 1170/zabbix_agentd
添加被监控主机
1.手动添加
以手动的方式添加安装了zabbix客户端的主机
配置-->主机-->创建主机
#然后点击添加即可
2.自动发现
服务端端自动寻找网段内zabix客户端主机并添加进来
#删除无关项
配置-->自动发现
#修改系统默认的发现规则中的IP范围
#启动
配置-->动作-->事件源(切换为自动发现)
#启动系统默认动作
#为了测试效果,server1重新启动zaabbix-server,可以看到主机界面自动添加了server2主机
3.自动注册
zabbix客户端自动寻找服务端,并自动注册进来
#删除无关项
配置-->主机-->删除server2
配置-->动作-->停用Auto discovery. Linux servers.
配置-->自动发现-->停用Local network
配置-->动作-->事件源(切换为自动注册)-->创建动作
#点击添加
#为了测试效果,server2重启zabbix-agent
添加监控项
1.增加http(实验主机server2)
#在server2模板中添加Template App HTTP Service
#点击更新
#server2上安装http服务
[root@server2 ~]# yum install -y httpd
[root@server2 ~]# /etc/init.d/httpd start
#配置-->主机-->server2-->监控项中可以看到多出了HTTP service
#现在停止http服务
[root@server2 ~]# /etc/init.d/httpd stop
#监控界面上有报错产生(可能有延迟)
2.增加数据库(实验主机server1)
server1上也安装了zabbix-agent,所以server1既是服务端又是客户端,也受到zabbix服务监控
2.1使用默认模板:
[root@server1 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf #这个文件记录了访问mariadb的脚本,其中访问路径如下所示
5 UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | aw k '{print $$2}'
[root@server1 ~]# mkdir /var/lib/zabbix #创建这个目录
[root@server1 ~]# vim /var/lib/zabbix/.my.cnf #访问数据库的用户密码可以写在.my.cnf中,注意".",这是个隐藏文件
[mysql]
host=localhost
user=root
password=redhat
[mysqladmin]
host=localhost
user=root
password=redhat
[root@server1 ~]# systemctl restart zabbix-agent
#添加mysql模板Template DB MySQL
#server1监控项中多出了MYSQL并监控mysql服务14个状态
2.2使用Percona插件、并增加外部监控模板
Percona是通过改进MYSQL后的数据库,该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
这里只是套用Percona的percona-zabbix-templates插件,让zabbix可以监控更多的MYSQL数据库参数
2.2.1增加插件:
#插件下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/
链接:https://pan.baidu.com/s/1XZ4ujghcy0qEejhrF2-Xxw
提取码:eei7
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.7-2.noarch.rpm
[root@server1 ~]# ls /var/lib/zabbix/percona/templates/
userparameter_percona_mysql.conf #这个是配置文件,将放到agent端的/etc/zabbix/zabbix_agentd.d/目录下
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.7.xml #这是一个监控模板文件
[root@server1 ~]# ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh #这个脚本是监控获取mysql状态的
ss_get_mysql_stats.php #这个.php保存连接mysql的用户名密码
[root@server1 ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
#新建一个.cnf文件,名字与php文件一样
[root@server1 ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
[root@server1 ~]# systemctl restart zabbix-agent
#测试一下脚本是否可以生效
[root@server1 ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
3
#修改/var/lib/zabbix/下的.my.cnf文件
[root@server1 ~]# vim /var/lib/zabbix/.my.cnf
[client]
user=root
password=redhat
#在agent端检测一下是否生效
[root@server1 percona]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
0
2.2.2增加监控模板:
这个模板(zbx_percona_mysql_template.xml)从其他地方下载得到:
链接:https://pan.baidu.com/s/15SIkrz48lzPkhIeVAwl_5A
提取码:7wsf
配置-->模板-->创建模板-->加选聚合图形-->点击导入
#在模板中将群组切换为Percona Templates可以看到新加的模板
#在server1主机上删除原先的Template DB MySQL模板添加Template Percona MySQL Server模板
#查看server1的MYSQL监控项,可以看到监控mysql共191个参数,而zabbix默认MYSQL模板只监控14项
#缓存文件默认在/tmp目录下
[root@server1 ~]# ls /tmp/localhost-mysql_cacti_stats.txt #这个文件即使删掉也会立刻产生
systemd-private-de21613e1e704b4ab1bbc514ff5120cb-httpd.service-XoABpX
systemd-private-de21613e1e704b4ab1bbc514ff5120cb-mariadb.service-ulcjx2
3.增加nginx(实验主机server2)
#取消Template App HTTP Service模板
#停止http服务
[root@server2 ~]# /etc/init.d/httpd stop
#安装nginx
链接:https://pan.baidu.com/s/1IqGLCWC6zB_R87yuxnMtqQ
提取码:8ht9
[root@server2 ~]# tar zxf nginx-1.12.0.tar.gz
[root@server2 ~]# vim nginx-1.12.0/src/core/nginx.h
14 #define NGINX_VER "nginx"
[root@server2 ~]# vim nginx-1.12.0/auto/cc/gcc
172 #CFLAGS="$CFLAGS -g"
[root@server2 ~]# cd nginx-1.12.0
[root@server2 nginx-1.12.0]# yum install -y gcc pcre-devel openssl-devel
[root@server2 nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@server2 nginx-1.12.0]# make && make install
[root@server2 nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#添加一个状态模块
[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf
52 error_page 500 502 503 504 /50x.html;
53 location = /50x.html {
54 root html;
55 }
56 57 location /status { 58 stub_status on; 59 access_log off; 60 allow 127.0.0.1; 61 deny all; 62 }
#开启nginx
[root@server2 ~]# nginx
#访问nginx状态模块,并过滤出包含Active的最后一个字符
[root@server2 ~]# curl -s http://127.0.0.1/status |grep Active |awk '{print $NF}'
1
#进入配置文件目录,创建一个nginx配置文件
[root@server2 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[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}'
#重启服务
[root@server2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
#在server1上做一个测试
[root@server1 ~]# rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm ^C
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.active"
1
#添加监控项nginx.active
#添加图形nginx.active下方的监控项选nginx.active
[root@server2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
#取curl 127.0.0.1/status结果中第三行第一个字符
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status |awk NR==3|awk '{print $1}'
151
#修改配置文件
[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}'UserParameter=nginx.accepts,curl -s curl -s http://127.0.0.1/status |awk NR==3|awk '{print $1}'
#重启服务
[root@server2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
#在server1做测试
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.accepts"
168
#添加nainx.accepts监控项
#在刚才建立的图形中加选nainx.accepts监控项,为了测试效果明显可以将绘图风格改为梯度线
添加java支持
监控报警
#去110云报警(http://www.onealert.com/)注册一个帐号,并“添加应用”
#选择zabbix
#保存并获取应用key
#安装相应插件
[root@server1 ~]# cd /usr/lib/zabbix/alertscripts/
Tip:查看zabbix脚本目录方法:
vi /etc/zabbix/zabbix_server.conf
查找关键字AlertScriptsPath
[root@server1 alertscripts]# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 alertscripts]# tar zxf oneitsm_zabbix_release-1.2.0.tar.gz
[root@server1 alertscripts]# cd oneitsm/bin/
[root@server1 bin]# bash install.sh 5f7717de-34d4-eb7d-6a2f-1bd2d0a2af87 #这个是刚才创建的应用key
start to create config file...
Zabbix管理地址: http://172.25.254.1/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码: #输入zabbix
...
create action success!
安装成功.
#进入onealert的个人中心-->绑定邮箱、手机、微信
#启动相关报警媒介
#然后尝试关闭一些监控的服务或主机,稍等片刻会收到来自微信、邮件和电话的报警