1.自定义监控模板
1.1实验内容
- 案例:自定义监控客户端服务器登录的人数
- 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息
1.2 实验具体操作
1.在客户端创建自定义key,明确需要执行的 linux 命令
who | wc -l
2.创建 zabbix 的监控项配置文件
用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
321 # Format: UserParameter=,
3.到服务器中去检查一下自己做的键是否生成正确
4.我们在zabbix中的wab界面中创建模板
5.在这个模板下创建他的监控项、触发器、图形等
6.将我们设置好的监控模板与我们的客户机相连接
2.使用邮件来监控管理我们的服务器
2.1实验内容
让我们的监控软件24小时进行监控,如果出现报警就发邮件通知我们
2.2具体操作
1.创建媒介类型
2.进行配置设置
3.密码必须到qq邮箱里面进行授权获取
4.先不要急着点添加,设置message templates
5.点击测试来发送给我自己看看是否正常发送
6.让我们这个设置好的qq邮箱发送关联到我们的触发器上
7.来进行测试我们的邮件是否能正确的发送报警信息
3.使用zabbix来监控我们的nginx服务
3.1 实验内容
我们使用zabbix来查看nginx服务的并发量,与在线状态人数等详细信息
3.2 具体操作
1.先在我们的客户机上面安装nginx
2.查看nginx安装的模块
3.配置nginx的配置文件,输入状态页面配置
location /status {
stub_status on;
access_log off;
}
4.先去浏览器访问一下是否设置好了
5.我们可以使用nginx脚本导入创建监控模块
#!/bin/bash
HOST="localhost"
PORT="80"
stub_status=status
function check() {
if [ -f /sbin/pidof ]; then
/sbin/pidof nginx | wc -w
else
ps ax | grep -v "grep" | grep -c "nginx:"
fi
}
function active() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function accepts() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function reading() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
case "$1" in
check)
check
;;
active)
active
;;
accepts)
accepts
;;
handled)
handled
;;
requests)
requests
;;
reading)
reading
;;
writing)
writing
;;
waiting)
waiting
;;
*)
echo $"Usage $0 {check|active|accepts|handled|requests|reading|writing|waiting}"
exit
esac
6.到我们的子配置文件中创建配置文件
7.去我们的服务端中去测试我们这个脚本是否有用
8.将我们这个键名加入到我们的监控项中
9.我们可以再添加一个监控项
10.设置触发器
11.另外一个监控项也添加触发器
12.创建一个图形
13.将我们的图形与我们的客户端进行关联
14.到监控中主机里查看nginx的信息
4.zabbix的自动发现
4.1 zabbix的自动发现是什么
abbix 自动发现(对于 agent2 是被动模式)
zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
4.2 zabbix自发现的配置操作
1.我们先在一台新的服务器上配置zabbix agent组件
2.修改新zabbix agent服务器的配置文件
3.新机器配置好后,我们先在主机中把之前配置好的客户机删除掉,等会让他自动加入
4.在web页面中创建自动加入
5.到配置的主机中查看,稍微等会就会自动发现其他的agent主机
5.zabbix的自动注册
5.1 zabbix自动注册是什么
zabbix agent2 会主动上报自己的信息,发给 zabbix server。
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
5.2 具体操作
1.先将我们刚才的自动发现选项关闭
2.把配置主机中自动发现的主机删除掉
3.到我们的客户端中去修改配置文件
4.回到web页面上去创建注册动作
5.这个时候去配置主机中查看是否有主机自动添加进来了
6.部署zabbix的代理服务器
6.1 分布式监控的作用
- 分担 server 的集中式压力
- 解决多机房之间的网络延时问题
6.2 部署的具体操作
1.我们到zabbix的官网上去跟着官网的下载步骤去进行部署
2.我们使用一台新的服务器,修改主机名并添加hosts文件(每个机器都要添加哦)
3.安装zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
4.部署数据库mariadb
cat > /etc/yum.repos.d/mariadb.repo n -> Y (设置root密码,如abc123) -> 后面一路 Y
mysql -u root -pabc123
6.创建数据库并指定字符集,创建 zabbix 数据库用户并授权
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
7.导入数据库信息
rpm -ql zabbix-sql-scripts
#查询 sql 文件的位置
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy
8.修改zabbix_proxy的配置文件
9.然后到我们的web页面中进行配置,先将我们的自动注册关闭
10.创建agent代理程序
11.修改两台agent主机的配置文件,把他们的server地址指向我们的代理服务器
12.在web页面当中创建主机
7.部署zabbix的高可用
1.在主节点server中配置
2.之后在另外一台server主机上配置一样的地方,注意主机名不一样
3.重启server服务,去到web页面进行查看
4.去配置客户端上的配置,