zabbix日志路径
服务端日志:/tmp/zabbix_server.log
客户端yum安装的agent日志:/var/log/zabbix/zabbix_agentd.log
zabbix更改字体
#1. 在Windows上找个看着舒服的字体文件
C:\Windows\Fonts\
#2. 上传到zabbix代码目录下替换掉DejaVuSans.ttf
[root@zabbix /code/zabbix/assets/fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix /code/zabbix/assets/fonts]# mv 方正粗黑宋简体.ttf DejaVuSans.ttf
客户端安装agent
- 注意服务端也要安装agent,要自己监控自己
#1.安装zabbix-agent
[root@web01 ~]# yum -y install zabbix-agent
#2.配置zabbix-agent指向服务端172.16.1.71
[root@web01 ~]# grep -n ^Server /etc/zabbix_agentd.conf
115:Server=172.16.1.81
#3.启动+开机自启
systemctl enable --now zabbix-agent
#4.检查端口
[root@web01 ~]# netstat -tupln | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1515/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 1515/zabbix_agentd
添加资产
zabbix自定义监控=.=
一、系统当前登录连接数量
- 取值:只要能取值,就能监控
- 配置到zabbix-agent.conf
- 在zabbix服务端取值测试
- 将自定义的key添加到zabbix页面进行监控
#1.客户端取出系统当前登录连接数量
uptime | awk '{print $(NF-6)}'
#2.客户端写入到客户端配置文件user_login自定义名字,相当于变量赋值。zabbix调用变量。注意UserParameter大小写
UserParameter=user_login,uptime | awk '{print $(NF-6)}'
#3.客户端重启agent
systemctl restart zabbix-agent
#4.客户端查看有没有这个key值,zabbix_agentd -p全部的key值,可以grep过滤user_login
zabbix_agentd -p
#4.服务端调用检查是否自定义key值成功取出
zabbix_get -s 172.16.1.7 -k user_login
#5.配置到web监控页面(下图)
- 配置–>主机–>点击web01监控项–>右上角创建监控项
二、监控nginx端口状态
- 1.取值:UserParameter=nginx_port,netstat -tupln | grep nginx | wc -l
- 2.配置到zabbix-agent.conf并重启agent
- 3.zabbix用户没有使用netstat命令的权限,加权限。chmod u+s /usr/bin/netstat(s的含义?)
- 4.服务端zabbix_get -s 172.16.1.7 -k nginx_port测试。非0就表示nginx端口正常
- 5.配置到web监控页面(下图)
三、zabbix自带key值监控
- zabbix自带有key值,有的不需要自己定义
- 比如说监控80端口那key值就是net.tcp.listen[80]
- (其他key值看下图)
#1.未自定义net.tcp.listen[80]服务端测试,也是可以的
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k net.tcp.listen[80]
1
四、规范自定义监控配置文件
- 跟nginx一样,类似conf.d下所有.conf结尾的都incalude包含识别
#1.需要自己创建文件夹,让后zabbix-agent.conf配置include包含。类似nginx
[root@web01 ~]# mkdir /etc/zabbix_agentd.conf.d/
#2.更改zabbix-agent.conf配置文件添加include
[root@web01 /etc/zabbix_agentd.conf.d]# grep -n Include /etc/zabbix_agentd.conf | grep 314
314:Include=/etc/zabbix_agentd.conf.d/*.conf
#3.创建配置文件,配置key值
[root@web01 ~]# echo "UserParameter=nginx_port,netstat -tupln | grep nginx | wc -l" > /etc/zabbix_agentd.conf.d/os.conf
#4.删除之前zabbix_agentd.conf里的(UserParameter=nginx_port,netstat -tupln | grep nginx | wc -l)并重启
[root@web01 ~]# systemctl restart zabbix-agent
五、监控内存使用率
#1.内存百分比$3/$2*100
echo "free | free | awk 'NR==2{print $3/$2*100}'" >> /etc/zabbix_agentd.conf.d/os.conf
#2.重启服务
[root@web01 ~]# systemctl restart zabbix-agent
#3.服务端web界面配置监控
zabbix触发器报警=.=
1.设置用户登录数超过两个则告警,默认告警到zabbix页面上
- 配置–>主机–>点击web01触发器–>右上角创建触发器
2.设置内存百分比超过80报警
3.联合告警,并且或者
zabbix告警发送邮件
1.配置告警媒介为email
2.配置动作
配置–>动作–>启用Report problems to Zabbix administrators–>点击Report problems to Zabbix administrators配置
3.配置收件人
告警前远程执行命令
- 比如nginx挂了告警,先让他重启一下试试,如果不成功再报警
- zabbix做一下sudo提权,没有systemctl权限
- visudo 添加zabbix ALL=(ALL) NOPASSWD:ALL
#1.zabbix做一下sudo提权,没有systemctl权限visudo 添加
zabbix ALL=(ALL) NOPASSWD:ALL
#2.客户端开启远程执行命令功能/etc/zabbix_agentd.conf
EnableRemoteCommands=1
#3.重启客户端服务
微信告警通知
- 注册企业微信,登录。https://work.weixin.qq.com/wework_admin/register_wx?from=myhome
- 下载weixin.py脚本上传到zabbix服务端。更改脚本的刚才记住secret码
#1. 更改weixin.py里的这三个值。这三个值下图获得
corpid='ww1a349c09a7517061'
appsecret='wU3Iw494sAsfDAv5v7JfPNY_s6xwI0v_LKIqYi3zA'
agentid=1000002
#2. 安装python2版本,安装python2-pip(用来安装python依赖),安装运行python脚本的依赖
yum -y install python2
yum -y install python2-pip
pip2.7 install requests
# 测试脚本,命令
python2.7 weixin.py "HaoShuaiCong" "今天天气真好" "你的zabbix现在怎么样了"
# 这里其他信息也可以发了,比如备份是否成功,md5校验是否成功。
[root@zabbix ~]# md5sum /etc/hostname
6e1749683f40eb14cc78a188165f9263 /etc/hostname
[root@zabbix ~]# md5sum /etc/hostname >> /tmp/1.log
[root@zabbix ~]# md5sum -c /tmp/1.log
/etc/hostname: OK
/etc/nginx.conf: OK
/etc/wer.conf: OK
# 定时脚本,监控是否变化,是否变化发送到企业微信。或者只发错误的
python2.7 weixin.py "HaoShuaiCong" "今日md5校验结果" "`md5sum -c /tmp/1.log`"
#当然还有很多用处通知微信,比如下面zabbix告警
zabbix配置企业告警
# 1.把weixin.py放到/usr/local/share/zabbix/alertscripts/目录下,因为zabbix执行默认去这个目录下找脚本
[root@zabbix /]# cp /root/weixin.py /usr/local/share/zabbix/alertscripts/
[root@zabbix /]# chmod +x weixin.py
# 2.授权/tmp/weixin.log因为刚才手动命令行执行脚本,生成的log文件属主属组是root
chown zabbix.zabbix /tmp/weixin.log
{ALERT.SENDTO} #发给谁
{ALERT.SUBJECT} #报警标题
{ALERT.MESSAGE} #报警内容
默认标题:
故障: {EVENT.NAME}
消息内容:
报警主机: {HOST.NAME1}
报警服务: {ITEM.NAME}
报警key1: {ITEM.KEY1}: {ITEM.VALUE1}
报警key2: {ITEM.KEY2}: {ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
恢复操作
默认标题:
恢复: {EVENT.NAME}
消息内容:
恢复主机: {HOST.NAME1}
恢复服务: {ITEM.NAME}
恢复key1: {ITEM.KEY1}: {ITEM.VALUE1}
恢复key2: {ITEM.KEY2}: {ITEM.VALUE2}
- 这里的自定义消息也可以在,媒介–>点开weixin–>消息模版,中配置