运维知识体系

运维知识体系

运维知识体系总结,持续更新,欢迎转载。
缓存知识体系

缓存知识体系

运维知识体系之缓存,分层多级缓存体系。
DevOps学院

DevOps学院

中国新一代IT在线教育平台
我买云

我买云

企业级开源运维解决方案

iTop自定义CI模型

赵班长 发表了文章 • 0 个评论 • 94 次浏览 • 2019-01-07 12:44 • 来自相关话题

iTop自定义CI模型,需要Toolkit工具,附件中。   1.下载附件中的Toolkit。直接解压到对应的webroot下。   2.直接访问http://xxx/toolkit访问。  
iTop自定义CI模型,需要Toolkit工具,附件中。
 
1.下载附件中的Toolkit。直接解压到对应的webroot下。
 
2.直接访问http://xxx/toolkit访问。
 
 

Zabbix API初步入门

Zabbix赵班长 发表了文章 • 0 个评论 • 163 次浏览 • 2018-12-30 18:42 • 来自相关话题

    Zabbix API是实现Zabbix自动化监控的主要手段之一,你可以使用Zabbix Agent的自动注册功能,也可以使用网络自动发现功能,但是这些功能各有各的缺点。如果编写脚本对你来说没有压力,我跟建议Zabbix的所有自动化功能全部使用API的方 ...查看全部
    Zabbix API是实现Zabbix自动化监控的主要手段之一,你可以使用Zabbix Agent的自动注册功能,也可以使用网络自动发现功能,但是这些功能各有各的缺点。如果编写脚本对你来说没有压力,我跟建议Zabbix的所有自动化功能全部使用API的方式来完成。
 

图片1.png

 
 
1.登录API接口
 
## 登录认证
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

 


执行完毕,会访问一个Auth Token,需要保留下来,后面的操作中需要使用


 
2.使用Python调用Zabbix API
 
#!/usr/bin/env python
# -*- coding:utf-8 -*-

import requests
import json

url = 'http://zabbix.unixhot.com/zabbix/api_jsonrpc.php'
post_data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "api-user",
"password": "zabbix"
},
"id": 1
}
post_header = {'Content-Type: application/json'}

ret = requests.post(url, data=json.dumps(post_data), headers=post_header)
print ret.text

 
3.显示所有主机:注意替换auth token。
 
## 显示所有主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host"]
},
"auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool

 
查询所有主机组:
## 显示所有主机组
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "hostgroup.get",
"params": {
"output": "extend"
},
"auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool

 
查询所有模板:
## 显示所有模版
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend"
},
"auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool

SaltStack自动化部署Zabbix Agent

SaltStack赵班长 发表了文章 • 0 个评论 • 148 次浏览 • 2018-12-30 17:22 • 来自相关话题

     Zabbix Agent建议在系统初始化的时候直接使用SaltStack进行自动化部署,以后的管理和变更均使用SaltStack来完成。   1.准备SaltStack环境(略)   注:可以参考Sal ...查看全部
     Zabbix Agent建议在系统初始化的时候直接使用SaltStack进行自动化部署,以后的管理和变更均使用SaltStack来完成。
 
1.准备SaltStack环境(略)
 
注:可以参考SaltStack专栏里面的SaltStack快速入门。
 
2.创建对应的目录
[root@linux-node1 ~]# mkdir /srv/salt/base/zabbix/files/ -p

3.准备Zabbix配置文件,手动安装zabbix-agent后,copy文件到files目录下:
[root@linux-node1 ~]# yum install -y zabbix-agent
[root@linux-node1 ~]# cp /etc/zabbix/zabbix_agentd.conf /srv/salt/base/zabbix/files/

4.修改zabbix_agentd.conf为模板文件
[root@linux-node1 ~]# vim /srv/salt/base/zabbix/files/zabbix_agentd.conf 
Server={{ ZABBIX_SERVER }}
ServerActive={{ ZABBIX_ACTIVE_SERVER }}
Hostname={{ AGENT_HOSTNAME }}

5.编写状态文件:
 
[root@linux-node1 ~]# vim /srv/salt/base/zabbix/zabbix-agent.sls
zabbix-repo:
cmd.run:
- name: rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- unless: rpm -qa | grep zabbix-release

zabbix-agent:
pkg.installed:
- name: zabbix-agent
- version: 4.0.2-1.el7
- require:
- cmd: zabbix-repo
file.managed:
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- template: jinja
- defaults:
ZABBIX_SERVER: 192.168.56.11,192.168.56.12
ZABBIX_ACTIVE_SERVER: 192.168.56.11:10051,192.168.56.12:10051
AGENT_HOSTNAME: {{ grains['fqdn'] }}
- require:
- pkg: zabbix-agent
service.running:
- enable: True
- watch:
- pkg: zabbix-agent
- file: zabbix-agent

6.执行状态
 
[root@linux-node1 ~]# salt '*' state.sls zabbix.zabbix-agent
linux-node1.example.com:
----------
ID: zabbix-repo
Function: cmd.run
Name: rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Result: True
Comment: unless condition is true
Started: 17:19:44.412981
Duration: 938.341 ms
Changes:
----------
ID: zabbix-agent
Function: pkg.installed
Result: True
Comment: All specified packages are already installed and are at the desired version
Started: 17:19:49.124383
Duration: 2037.406 ms
Changes:
----------
ID: zabbix-agent
Function: file.managed
Name: /etc/zabbix/zabbix_agentd.conf
Result: True
Comment: File /etc/zabbix/zabbix_agentd.conf is in the correct state
Started: 17:19:51.165575
Duration: 53.529 ms
Changes:
----------
ID: zabbix-agent
Function: service.running
Result: True
Comment: The service zabbix-agent is already running
Started: 17:19:51.220700
Duration: 56.149 ms
Changes:

Summary for linux-node1.example.com
------------
Succeeded: 4
Failed: 0
------------
Total states run: 4
Total run time: 3.085 s
linux-node2.example.com:
----------
ID: zabbix-repo
Function: cmd.run
Name: rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Result: True
Comment: unless condition is true
Started: 17:19:45.512368
Duration: 1108.944 ms
Changes:
----------
ID: zabbix-agent
Function: pkg.installed
Result: True
Comment: All specified packages are already installed and are at the desired version
Started: 17:19:49.699172
Duration: 1787.491 ms
Changes:
----------
ID: zabbix-agent
Function: file.managed
Name: /etc/zabbix/zabbix_agentd.conf
Result: True
Comment: File /etc/zabbix/zabbix_agentd.conf is in the correct state
Started: 17:19:51.490851
Duration: 53.646 ms
Changes:
----------
ID: zabbix-agent
Function: service.running
Result: True
Comment: The service zabbix-agent is already running
Started: 17:19:51.546009
Duration: 63.202 ms
Changes:

Summary for linux-node2.example.com
------------
Succeeded: 4
Failed: 0
------------
Total states run: 4
Total run time: 3.013 s

 
 
 

Zabbix告警脚本-Python发送邮件

Zabbix赵班长 发表了文章 • 0 个评论 • 119 次浏览 • 2018-12-30 10:08 • 来自相关话题

自定义Zabbix告警,首先需要编写告警脚本,告警脚本需要支持3个参数:        1.告警接收人      2.主题      3.内容   生产建议使用Shell脚本作为告警脚本, ...查看全部
自定义Zabbix告警,首先需要编写告警脚本,告警脚本需要支持3个参数:
 
     1.告警接收人
     2.主题
     3.内容
 
生产建议使用Shell脚本作为告警脚本,同时需要日志记录,也可以在Shell脚本中完成,然后可以再使用Shell脚本调用其它的脚本。这样可以随时更换告警介质,也可以做好日志记录。
 
 
1.最简单的告警脚本
 
[root@linux-node1 alertscripts]# cat pymail.sh 
#!/bin/bash
echo $1 $2 $3 >> /tmp/alter.txt

 
2.编写告警脚本
#!/usr/bin/python
#coding: utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
from email.Utils import COMMASPACE

receiver = sys.argv[1]
subject = sys.argv[2]
mailbody = sys.argv[3]
smtpserver = 'smtp.qq.com'
username = 'username'
password = 'passwd'
sender = username

msg = MIMEText(mailbody,'html','utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = username
msg['To'] = receiver

smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(username, password)
smtp.starttls()
smtp.sendmail(msg['From'], msg['To'], msg.as_string())
smtp.quit()

 
测试邮件发送
 
[root@linux-node1 alertscripts]# python pymail.py 57459267@qq.com testmail test

 
加入到告警脚本中
 
#!/bin/bash
/usr/local/bin/python /usr/lib/zabbix/alertscripts/pymail.py "$1" "$2" "$3"

老大让用saltstack管理windows部署软件,一直搞不定,希望赵班长可以指点迷津,谢谢了。

回复

SaltStack 发起了问题 • 1 人关注 • 0 个回复 • 326 次浏览 • 2018-11-21 10:53 • 来自相关话题

请问谁有用saltstack管理过windows吗?批量部署那种,网上资料很少,希望大家帮帮忙,谢谢了。

回复

SaltStack 发起了问题 • 1 人关注 • 0 个回复 • 233 次浏览 • 2018-11-21 10:51 • 来自相关话题

寻找运维的下一站-腾讯蓝鲸技术沙龙

回复

SaltStack赵班长 发起了问题 • 1 人关注 • 0 个回复 • 254 次浏览 • 2018-11-20 10:46 • 来自相关话题

请问saltstack 选择哪个版本比较好

SaltStack 回复了问题 • 3 人关注 • 6 个回复 • 1132 次浏览 • 2018-08-10 20:24 • 来自相关话题

saltstack的file.managed模块下的源source理念不清楚

SaltStack赵班长 回复了问题 • 2 人关注 • 1 个回复 • 690 次浏览 • 2018-05-08 19:04 • 来自相关话题

关于saltstack openstack的安装

SaltStack赵班长 回复了问题 • 2 人关注 • 2 个回复 • 2096 次浏览 • 2018-05-04 19:31 • 来自相关话题