Memantau server Windows pada MS SQL murni, dan bagaimana saya diam-diam mengimplementasikannya

Suatu ketika, di galaksi yang jauh, jauh, ada perusahaan yang telah lama tumbuh dari startup, tetapi masih tetap sangat kompak dan efisien. Perusahaan ini meng-host (pada perangkat kerasnya) ratusan server Windows, dan ini harus dipantau. Bahkan sebelum saya sampai di sana, NetIQ dipilih sebagai solusinya.

Saya diperintahkan untuk mengatur NetIQ, dan orang yang melakukan ini sebelum saya tidak mengatakan sepatah kata pun tentang itu. Dicetak Saya segera menyadari mengapa. Steve Jobs mungkin berputar di kubur, melihat antarmuka yang serupa:

gambar

Dalam satu baris, logika "burung" positif (acara Angkat). Di negatif lain (Jangan angkat acara). Bagaimana "Hanya memunculkan peristiwa saat" bekerja dengan sekumpulan kotak centang yang berbeda, saya umumnya hanya memahami secara eksperimental (dan sudah lupa).

Namun, fitur NetIQ yang jauh lebih buruk adalah kerapuhannya. Agennya, yang diinstal pada setiap server, secara signifikan lebih rentan daripada Windows itu sendiri. Memori tidak cukup? Agen terbang keluar. CPU 100%? Agen tidak merespons. 0 byte tersisa di disk - apa yang akan Anda pikirkan? Untuk mengirim pesan, agen pertama-tama harus membuatnya di disk, sebagai file ... Ya, Anda mengerti.

Namun demikian, mereka entah bagaimana hidup dengannya sampai perusahaan dibeli oleh perusahaan bahkan lebih. Ketika monster memakan firma kecil, firma itu larut seperti setetes air di laut. Dalam kasus kami, kami sendiri, menurut standar TI, hanya sedikit lebih sedikit daripada mereka yang membeli kami, dan segera jelas bahwa proses merger akan sangat sulit. Sangat rumit sehingga untuk beberapa waktu kami tidak tersentuh sama sekali dan secara internal semua proses tetap sama. Keadaan ini mirip dengan saat Cincin Mahakuasa jatuh di lava, tetapi belum mulai mencair:


Sementara itu, saya memutakhirkan NetIQ dari versi 7 ke 8 dan kemudian ke 9, ketika masalah kami mulai. NetIQ memantau hanya beberapa hal: ketersediaan server itu sendiri, memori, CPU, disk, dan yang paling penting - layanan. Jika layanan yang kami tulis sendiri dalam Otomatis, maka mereka seharusnya bekerja. Seharusnya tidak seperti ini:


Peristiwa ini dalam banyak kasus dan berhenti memantau NetIQ. Setelah satu minggu percobaan dan satu minggu bekerja dengan dukungan, kami menemukan bahwa "ini bukan bug, ini adalah fitur" dan bahwa peringatan hanya dihasilkan dengan kode keluar tertentu. Dan layanan kami terkadang jatuh dengan kode apa pun.

Banyak waktu berlalu dan sudah terlambat untuk mundur. Seperti yang Anda pahami, setelah menemukan bahwa infrastruktur kritis kami tidak dipantau, kami segera ... eh ... tidak melakukan apa-apa. Karena pada saat ini, "pembubaran" perusahaan kami di sebagian besar telah memasuki fase aktif, dan itu terlihat seperti ini:


Gemuruh guntur, teriakan, kilat mencapai kejauhan, dan sepertinya nasib dunia sedang diputuskan, dan saya mendaki dengan semacam masalah teknis kecil ... Tapi saya tidak bisa tidur dengan damai, mengetahui bahwa pemantauan kami setengah buta.

Menyadari bahwa tidak ada tempat untuk menunggu bantuan, saya memutuskan untuk dengan cepat menulis pemindai layanan yang akan mem-bypass semua server dan mengirim email jika ada sesuatu yang tidak seperti yang dilakukan NetIQ. Anda mungkin berpikir saya menggunakan Powershell? Tidak. Jika Anda memiliki palu di tangan Anda, maka semuanya adalah paku, dan jika Anda telah menggunakan DBA dan bekerja dengan SQL sejak versi 6.0, maka ... Kutipan singkat dari kode sehingga Anda dapat memahami tentang apa itu:


Saya melakukannya dalam beberapa jam. Selama beberapa hari berikutnya, ada audit terhadap pesan, parameter, dan barang lainnya. Setelah membaca tentang perintah WMIC, saya tidak bisa berhenti. Kemudian beberapa minggu dalam kabut. Saya terbangun ketika semua yang kami gunakan di NetIQ ditulis ulang dan bekerja dengan keras.

Fungsionalitas tidak hanya disalin - saya menyadari semua fantasi saya, semua yang saya inginkan dari sistem seperti itu. LOWDISK - Anda juga mendapatkan grafik tentang bagaimana ruang kosong pada disk berperilaku akhir-akhir ini - apakah pertumbuhan ini normal atau ada yang salah. Tidak ada cukup memori - ini adalah jadwal, dan daftar proses dan berapa banyak yang mereka ambil, dan untuk w3wp.exe kita akan menyelesaikan nama kumpulan aplikasi, pengingat cerdas dan banyak lagi. Omong-omong, sistem dapat mengambil daftar server sendiri dari VMware. Satu pandangan cepat pada subjek peringatan di telepon sudah cukup untuk memahami apa yang terjadi:


Programmer modern sangat terbiasa berpikir secara abstrak sehingga mereka tidak dapat menulis sistem pemantauan selain 'untuk server kami menjalankan serangkaian skrip pemantauan abstrak, dan kami tidak peduli apa yang ada di dalamnya', sambil memantau setiap negara bagian - disk, memori, CPU, layanan - dengan caranya sendiri unik. Menyadari hal ini "secara abstrak", Anda melakukan hal yang sama buruknya untuk setiap kasus, dan inilah yang terjadi: (Ini adalah tangkapan layar dari email dari SCOM. Tentunya dilakukan secara ketat sesuai dengan TOR)


Kelebihan besar dari sistem baru adalah bahwa itu tanpa agen, masing-masing, tidak ada masalah dengan menginstal agen, crash-nya - tidak ada yang jatuh di sana. Sistemnya sederhana dan dapat diandalkan seperti palu.

Beberapa bulan berikutnya saya datang untuk bekerja di pagi hari, berdiri di depan gagasan saya, seperti seorang seniman di depan kanvas, dan menerapkan beberapa pukulan, membuatnya bahkan lebih ideal. Karena saya tidak memiliki tenggat waktu, hutang teknis diminimalkan. Pada titik tertentu, saya masih memaksakan diri untuk berhenti.

NetIQ masih berfungsi, tetapi semua orang lebih menyukai peringatan jenis baru, dan secara bertahap saya memindahkan semua orang ke peringatan dari sistem baru, tanpa mematikan yang lama. Sementara itu, proses "fusi" telah memasuki tahap akhir:


Nah, dongeng itu seharusnya berakhir. Saya sendiri terkejut bahwa saya bisa bersenang-senang di perusahaan birokrasi besar. Setelah satu bulan persiapan, mereka memberi tahu saya bahwa dalam seminggu, kami memadamkan NetIQ, dan kami beralih ke SCOM. Saya mematikan NetIQ (saya akui, saya sangat membencinya sehingga saya sangat senang) dan mulai menunggu SCOM. Tetapi pada waktu yang ditentukan dia tidak ada di sana. Tidak setelah satu minggu, dan setelah satu bulan.

SCOM muncul hanya enam bulan kemudian - seseorang lupa berapa banyak server yang kami miliki dan berapa banyak lisensi yang kami butuhkan untuk SCOM. Dalam enam bulan, begitu banyak sistem mulai bergantung pada sistem saya, yang mulai menyimpan inventaris, metrik, dan banyak lagi, yang diam-diam tetap nomor dua - tidak resmi. Untuk auditor, ada SCOM, dan semua yang benar-benar berguna ada di sistem kedua.

Terkadang manajer dari berbagai tingkatan bertanya-tanya - dari mana datangnya email otomatis ini? Saya baru-baru ini menjelaskan secara rinci kepada mereka kisah yang saya sampaikan di artikel ini, dan mereka tertawa riang. Meskipun kadang-kadang masih sangat lucu bagi saya, bagaimana di sebuah perusahaan birokrasi besar Anda dapat "menyeret ke dalam glander yang sunyi" banyak hal. Ya, dan senang menulis kode, seperti di masa lalu yang indah.

Source: https://habr.com/ru/post/id430662/


All Articles