zabbix
- 1.zabbix自带的数据库实验
- 2. percona监控数据库
- 2.1 安装percona软件
- 2.2 切换到模板目录
- 2.3 导入刚才的模板
- 3. java应用的监控方法
- 3.1 下载安装tomcat
- 3.2 安装java并配置文件
- 3.3 server1上添加java网关并配置文件
- 3.4 web界面server2添加JMX接口,实现监控
- 4. 优化监控,客户端主动回传数据
- 4.1 第一种修改客户端配置文件
- 4.1第二种,批量设置(server端)
- 5. 分布式监控(proxy)
- 5.1 使用server3来做proxy的一些前期配置
- 5.2安装proxy软件,并安装数据库软件,proxy、server都是基于数据库的
- 5.3 web添加代理
- 5.4 server2上设置配置文件
- 5.5 jmx的设置
- 6. 报警系统(zabbix+睿象云)
- 6.1 安装探针
- 6.2 配置网页上的睿象云
- 6.3 测试是否会报警
1.zabbix自带的数据库实验
直接在服务端进行操作!!
server1查看agent下自带的数据库文件。
也是键值对的形式,HOME表示现在HOME文件夹下读取文件,然后执行后面的值。
先给数据库设置一个密码,创建对应文件
[root@server1 zabbix_agentd.d]# mysqladmin password westos
[root@server1 zabbix_agentd.d]# ll /var/lib/zabbix
ls: cannot access /var/lib/zabbix: No such file or directory
[root@server1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix
[root@server1 zabbix]# vim .my.cnf
[root@server1 zabbix]# ll /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Jan 17 08:28 /var/lib/mysql/mysql.sock
[root@server1 zabbix]# cat .my.cnf
[mysql]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[root@server1 zabbix]# systemctl restart zabbix-agent.service ##c重启agent服务,让zabbix可以读取到文件信息
[root@server1 zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k "mysql.ping" ##这里的ip必须和web界面的一致,也就是zabbix配置文件中的一致
1
[root@server1 zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k "mysql.version"
mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
通过zabbix命令行形式查看
通过zabbix的web界面查看
图形只有两项,监控项只有14
2. percona监控数据库
2.1 安装percona软件
[root@server1 ~]# ll percona-zabbix-templates-1.1.8-1.noarch.rpm
-rwxr-xr-x 1 root root 28296 Jan 17 10:33 percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... (100################################# [100%]
Updating / installing...
1:percona-zabbix-templates-1.1.8-1 ( 18################################# [100%]
Scripts are installed to /var/lib/zabbix/percona/scripts ##脚本位置
Templates are installed to /var/lib/zabbix/percona/templates ##模板位置
2.2 切换到模板目录
[root@server1 ~]# 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/ ##复制到agent读取文件位置
[root@server1 templates]# systemctl restart zabbix-agent.service ##重启agent
[root@server1 templates]# wc -l userparameter_percona_mysql.conf
190 userparameter_percona_mysql.conf ## 190个监控项
[root@server1 templates]# cd ..
[root@server1 percona]# ls
scripts templates
[root@server1 percona]# cd scripts/
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@server1 scripts]# vim get_mysql_stats_wrapper.sh ##抓取数据库里面的数据
[root@server1 scripts]# vim ss_get_mysql_stats.php ##修改使用的数据库用户名和密码,负责数据库的登陆
执行脚本拿取对应gg这个键对应的值,然后输出到/tmp下
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@server1 scripts]# ./get_mysql_stats_wrapper.sh gg
5 ##测试结果
[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
localhost-mysql_cacti_stats.txt
systemd-private-a5e3b8d7c0384949b7949f334fecfc35-httpd.service-ydNjFW
systemd-private-a5e3b8d7c0384949b7949f334fecfc35-mariadb.service-fIktFl
systemd-private-e9771d3fd47f4c999dd5fe6b8fd196a9-httpd.service-ng94e3
systemd-private-e9771d3fd47f4c999dd5fe6b8fd196a9-mariadb.service-27rpgD
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt
[root@server1 tmp]# ll localhost-mysql_cacti_stats.txt
-rw-r--r-- 1 root root 1359 Jan 17 10:44 localhost-mysql_cacti_stats.txt
[root@server1 tmp]# rm -fr localhost-mysql_cacti_stats.txt ##删除原因在下面
2.3 导入刚才的模板
删除原来的数据库模板
添加新的模板
这个没问题就没问题!!!
在进行操作会变成zabbix操作的
检查问题
3. java应用的监控方法
3.1 下载安装tomcat
tomcat官网 监控配置模板
[root@server2 ~]# ll apache-tomcat-7.0.37.tar.gz
-rwxr-xr-x 1 root root 7814288 Jan 17 11:37 apache-tomcat-7.0.37.tar.gz
[root@server2 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ll
total 0
drwxr-xr-x 9 root root 160 Jan 17 11:38 apache-tomcat-7.0.37
drwxr-xr-x. 2 root root 6 Dec 15 2017 bin
drwxr-xr-x. 2 root root 6 Dec 15 2017 etc
drwxr-xr-x. 2 root root 6 Dec 15 2017 games
drwxr-xr-x. 2 root root 6 Dec 15 2017 include
drwxr-xr-x. 2 root root 6 Dec 15 2017 lib
drwxr-xr-x. 2 root root 6 Dec 15 2017 lib64
drwxr-xr-x. 2 root root 6 Dec 15 2017 libexec
drwxr-xr-x. 2 root root 6 Dec 15 2017 sbin
drwxr-xr-x. 5 root root 49 Dec 31 18:39 share
drwxr-xr-x. 2 root root 6 Dec 15 2017 src
[root@server2 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server2 local]# cd tomcat/
[root@server2 tomcat]# ls
bin lib logs RELEASE-NOTES temp work
conf LICENSE NOTICE RUNNING.txt webapps
3.2 安装java并配置文件
需要安装JDK环境,直接安装java,自带JDK。
[root@server2 tomcat]# yum install -y java-1.8.0-openjdk.x86_64
[root@server2 bin]# pwd
/usr/local/tomcat/bin
[root@server2 bin]# vim catalina.sh
#写入配置文件,大概在102行、
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888 ##这个端口可以自己设置
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
[root@server2 bin]# ./startup.sh ##启动tomcat
[root@server2 bin]# netstat -antlp | grep :8888
tcp6 0 0 :::8888 :::* LISTEN 5908/java
启动tomcat
3.3 server1上添加java网关并配置文件
[root@server1 ~]# yum install -y zabbix-java-gateway.x86_64 ##服务端需要安装一个java网关,使用10052端口,不然是访问不到8888端口的
#访问流程:server1 -> java-gateway (10052)-> server2(tomcat8888)
[root@server1 zabbix]# pwd
/etc/zabbix
[root@server1 zabbix]# ls
web zabbix_java_gateway.conf
zabbix_agentd.conf zabbix_java_gateway_logback.xml
zabbix_agentd.d zabbix_server.conf
[root@server1 zabbix]# vim zabbix_java_gateway.conf
[root@server1 zabbix]# systemctl enable --now zabbix-java-gateway.service
[root@server1 zabbix]# netstat -antlp | grep :10052
tcp6 0 0 :::10052 :::* LISTEN 2280/java
[root@server1 zabbix]# vim zabbix_server.conf
JavaGateway=172.25.13.1 ##最关键
JavaGatewayPort=10052
StartJavaPollers=10
[root@server1 zabbix]# systemctl restart zabbix-server.service
3.4 web界面server2添加JMX接口,实现监控
4. 优化监控,客户端主动回传数据
每隔一段时间,客户端回传数据到server端,而不是让server端一直主动去取数据,不然server端工作量太大
4.1 第一种修改客户端配置文件
禁用server主动访问的ip,设置StartAgent=0,相当于关闭了10050端口
这个意思是ahent主动传数据给server端
以上就是设置方法,但是这样设置还需要web界面,也就是server端设置。这个位置必须设置成主动方式才可以实现,不然访问会出错。
一个一个修改比较耗时!!
4.1第二种,批量设置(server端)
然后下面添加
修改成主动回传数据的方式
取消原来客户端server3的模板,重新添加新的模板
5. 分布式监控(proxy)
5.1 使用server3来做proxy的一些前期配置
5.2安装proxy软件,并安装数据库软件,proxy、server都是基于数据库的
安装数据库并配置数据库信息
[root@proxy ~]# yum install -y mariadb-server.x86_6
[root@proxy ~]# systemctl enable --now mariadb.service
[root@proxy ~]# mysql
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'westos';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=westos
导入数据库文件
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.27/
[root@proxy zabbix-proxy-mysql-4.0.27]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@proxy zabbix-proxy-mysql-4.0.27]# zcat schema.sql.gz | mysql -uzabbix -pwestos zabbix_proxy
安装proxy并配置系统文件
[root@proxy ~]# yum install zabbix-proxy-mysql.x86_64 -y
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
Hostname=proxy
Server=172.25.13.1
5.3 web添加代理
创建代理
为server2添加代理
5.4 server2上设置配置文件
让server2通过proxy代理回传数据!!
[root@server2 zabbix]# vim zabbix_agentd.conf
Server=172.25.13.3
ServerActive=172.25.13.3
[root@server2 zabbix]# systemctl restart zabbix-agent.service
重启server1,查看server1的日志,看是否查看连接到proxy
[root@server1 zabbix]# systemctl restart zabbix-server.service
[root@server1 zabbix]# cat /var/log/zabbix/zabbix_server.log
查看proxy端日志,是否代理了server2
[root@proxy ~]# systemctl restart zabbix-proxy.service
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log
5.5 jmx的设置
proxy端进行设置,java网关在server1上
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
JavaGateway=172.25.13.1
JavaGatewayPort=10052
StartJavaPollers=10
[root@proxy ~]# systemctl restart zabbix-proxy.service
6. 报警系统(zabbix+睿象云)
6.1 安装探针
先把没用的删除掉!!
wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz ##探针下载地址
https://www.aiops.com/docs/ca/integration/zabbix/ ##集成zabbix的帮助文档地址
[root@server1 ~]# ll ca_zabbix_release-2.1.0.tar.gz
-rwx--x--x 1 root root 3470 Jan 17 17:00 ca_zabbix_release-2.1.0.tar.gz
[root@server1 ~]# tar zxf ca_zabbix_release-2.1.0.tar.gz -C /usr/lib/zabbix/alertscripts/
[root@server1 ~]# cd /usr/lib/zabbix/alertscripts/
[root@server1 alertscripts]# ls
cloudalert
[root@server1 alertscripts]# cd cloudalert/
[root@server1 cloudalert]# ls
首先要保证服务端有网络,不然警报发不出去,因为用的是网络报警!!
[root@server1 alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@server1 alertscripts]# vim /etc/zabbix/zabbix_server.conf
6.2 配置网页上的睿象云
注册,查看免费额度
开始配置zabbix
现在需要通过key启动探针
[root@server1 alertscripts]# ls
cloudalert
[root@server1 alertscripts]# cd cloudalert/bin/
[root@server1 bin]# ls
alert.sh install.sh log.sh update.sh
[root@server1 bin]# ./install.sh d6a550ee-9bf0-4c70-b913-2ccc1b617a8b
./log.sh: line 6: /usr/lib/zabbix/alertscripts/cloudalert/bin/cloudalert.conf: No such file or directory
start to create config file...
Zabbix管理地址: http://172.25.13.1/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码:
配置报警策略
6.3 测试是否会报警
停止掉后,默认是5分钟,会自动发送报警信息到手机微信,也可以查看zabbix网页信息。微信警告就不发了,没办法截图。